/* 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-medon-speaks {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 60%, #deb887 100%);
  font-size: 0;
}
.scn-medon-speaks .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #87CEEB 100%);
  animation: ms-sky 8s ease-in-out infinite alternate;
}
.scn-medon-speaks .sun {
  position: absolute; top: 8%; left: 70%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8dc 10%, #ffd700 50%, transparent 70%);
  border-radius: 50%;
  animation: ms-sun 12s ease-in-out infinite alternate;
}
.scn-medon-speaks .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #deb887 0%, #8b4513 100%);
}
.scn-medon-speaks .speaker {
  position: absolute; bottom: 30%; left: 30%;
  width: 50px; height: 90px;
  background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ms-speaker 3s ease-in-out infinite;
}
.scn-medon-speaks .listener-a {
  position: absolute; bottom: 30%; right: 25%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #4e342e 0%, #2c1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ms-listen-a 4s ease-in-out infinite;
}
.scn-medon-speaks .listener-b {
  position: absolute; bottom: 30%; right: 40%;
  width: 42px; height: 76px;
  background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ms-listen-b 3.5s ease-in-out infinite;
}
.scn-medon-speaks .shadow {
  position: absolute; bottom: 32%; left: 28%; width: 120px; height: 10px;
  background: rgba(0,0,0,0.3); border-radius: 50%;
  filter: blur(4px);
  animation: ms-shadow 3s ease-in-out infinite;
}
@keyframes ms-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ms-sun { 0% { transform: translateY(0) scale(1); opacity:0.85 } 50% { transform: translateY(-2px) scale(1.05); opacity:1 } 100% { transform: translateY(0) scale(1); opacity:0.9 } }
@keyframes ms-speaker { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ms-listen-a { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes ms-listen-b { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ms-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

.scn-halitherses-speaks {
  background: linear-gradient(180deg, #f5deb3 0%, #e0c9a0 40%, #b0c4de 100%);
  font-size: 0;
}
.scn-halitherses-speaks .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4682b4 0%, #1e90ff 100%);
}
.scn-halitherses-speaks .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  animation: hs-sky 10s ease-in-out infinite alternate;
}
.scn-halitherses-speaks .sun {
  position: absolute; top: 10%; left: 50%;
  width: 70px; height: 70px;
  background: radial-gradient(circle, #fff8dc 10%, #ffd700 50%, transparent 70%);
  border-radius: 50%;
  animation: hs-sun 15s ease-in-out infinite alternate;
}
.scn-halitherses-speaks .old-man {
  position: absolute; bottom: 35%; left: 25%;
  width: 55px; height: 100px;
  background: linear-gradient(180deg, #8b7355 0%, #5c4033 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hs-oldman 4s ease-in-out infinite;
}
.scn-halitherses-speaks .staff {
  position: absolute; bottom: 35%; left: 30%; width: 6px; height: 110px;
  background: linear-gradient(180deg, #a0522d 0%, #8b4513 100%);
  border-radius: 4px;
  animation: hs-staff 4s ease-in-out infinite;
}
.scn-halitherses-speaks .listener-c {
  position: absolute; bottom: 35%; right: 30%;
  width: 35px; height: 70px;
  background: linear-gradient(180deg, #4e342e 0%, #2c1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hs-listen 5s ease-in-out infinite;
}
.scn-halitherses-speaks .cloud {
  position: absolute; top: 15%; left: 10%;
  width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: hs-cloud 40s linear infinite;
}
@keyframes hs-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hs-sun { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(1.03) } 100% { transform: translateX(-5px) scale(1) } }
@keyframes hs-oldman { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes hs-staff { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes hs-listen { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes hs-cloud { 0% { transform: translateX(-30px) } 100% { transform: translateX(100vw) } }

.scn-crowd-divided {
  background: linear-gradient(180deg, #ff8c00 0%, #f4a460 40%, #deb887 100%);
  font-size: 0;
}
.scn-crowd-divided .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffd700 0%, #ffb347 100%);
  animation: cd-sky 6s ease-in-out infinite alternate;
}
.scn-crowd-divided .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #cd853f 0%, #8b4513 100%);
}
.scn-crowd-divided .group-left {
  position: absolute; bottom: 30%; left: 5%;
  width: 100px; height: 120px;
  background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%);
  border-radius: 30% 20% 20% 30% / 50% 50% 50% 50%;
}
.scn-crowd-divided .group-right {
  position: absolute; bottom: 30%; right: 5%;
  width: 100px; height: 120px;
  background: linear-gradient(180deg, #6d4c41 0%, #4e342e 100%);
  border-radius: 20% 30% 30% 20% / 50% 50% 50% 50%;
}
.scn-crowd-divided .gap {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 120px;
  background: linear-gradient(180deg, transparent 0%, #cd853f 100%);
  border-left: 2px solid #8b4513; border-right: 2px solid #8b4513;
  animation: cd-gap 3s ease-in-out infinite;
}
.scn-crowd-divided .dust {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(218,165,32,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: cd-dust 4s ease-in-out infinite;
}
@keyframes cd-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cd-gap { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.3) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes cd-dust { 0% { transform: translateY(0) scale(1); opacity:0.6 } 50% { transform: translateY(-5px) scale(1.2); opacity:1 } 100% { transform: translateY(0) scale(1); opacity:0.6 } }
@keyframes cd-group { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } } /* applied to both groups via animation-name below */

.scn-crowd-divided .group-left { animation: cd-group 6s ease-in-out infinite; }
.scn-crowd-divided .group-right { animation: cd-group 6s ease-in-out infinite 0.5s; }

.scn-jove-decrees-peace {
  background: linear-gradient(180deg, #fff8dc 0%, #f0e68c 40%, #b0c4de 100%);
  font-size: 0;
}
.scn-jove-decrees-peace .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  animation: jd-sky 12s ease-in-out infinite alternate;
}
.scn-jove-decrees-peace .sun-rays {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 200px; height: 100%;
  background: repeating-linear-gradient(45deg, rgba(255,215,0,0.1) 0px, rgba(255,215,0,0.1) 10px, transparent 10px, transparent 20px);
  animation: jd-rays 8s linear infinite;
}
.scn-jove-decrees-peace .throne {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 100px;
  background: linear-gradient(180deg, #b8860b 0%, #daa520 50%, #b8860b 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}
.scn-jove-decrees-peace .scepter {
  position: absolute; bottom: 50%; left: 50%; transform: translateX(-50%);
  width: 8px; height: 150px;
  background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%);
  border-radius: 4px;
  animation: jd-scepter 4s ease-in-out infinite;
}
.scn-jove-decrees-peace .dove {
  position: absolute; bottom: 60%; left: 30%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #f5f5dc 0%, #e8e8d0 100%);
  border-radius: 50%;
  animation: jd-dove 10s ease-in-out infinite;
}
.scn-jove-decrees-peace .scroll {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #fffdd0 0%, #f5deb3 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: jd-scroll 5s ease-in-out infinite;
}
.scn-jove-decrees-peace .olive-branch {
  position: absolute; bottom: 65%; right: 25%;
  width: 40px; height: 8px;
  background: linear-gradient(90deg, #6b8e23 0%, #556b2f 100%);
  border-radius: 50%;
  animation: jd-olive 6s ease-in-out infinite;
}
@keyframes jd-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes jd-rays { 0% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(180deg) } }
@keyframes jd-scepter { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes jd-dove { 0% { transform: translate(0,0) scale(1) } 25% { transform: translate(10px,-10px) scale(1.05) } 50% { transform: translate(20px,0) scale(0.95) } 75% { transform: translate(10px,10px) scale(1) } 100% { transform: translate(0,0) scale(1) } }
@keyframes jd-scroll { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes jd-olive { 0% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(0deg) } }

/* Minerva puts suitors to sleep */
.scn-minerva-puts-suitors-to-sleep { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #1e1e32 100%), radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 60%); }
.scn-minerva-puts-suitors-to-sleep .hall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a3a54 0%, #1a1a2e 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; }
.scn-minerva-puts-suitors-to-sleep .table { position:absolute; bottom:22%; left:10%; width:80%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-minerva-puts-suitors-to-sleep .figure-suitor-1 { position:absolute; bottom:20%; left:20%; width:40px; height:40px; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(15deg); animation: su-slump 8s ease-in-out infinite; }
.scn-minerva-puts-suitors-to-sleep .figure-suitor-2 { position:absolute; bottom:18%; left:45%; width:38px; height:42px; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-20deg); animation: su-slump 10s ease-in-out infinite reverse; }
.scn-minerva-puts-suitors-to-sleep .figure-suitor-3 { position:absolute; bottom:22%; left:65%; width:36px; height:38px; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(5deg); animation: su-slump 12s ease-in-out infinite; }
.scn-minerva-puts-suitors-to-sleep .cup { position:absolute; bottom:26%; left:28%; width:12px; height:16px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 0 4px 4px; transform: rotate(-30deg); animation: su-drop 6s ease-in-out infinite; }
.scn-minerva-puts-suitors-to-sleep .wine-stain { position:absolute; bottom:25%; left:32%; width:20px; height:10px; background: radial-gradient(circle, #4a2020 0%, transparent 70%); border-radius: 50%; filter: blur(2px); }
.scn-minerva-puts-suitors-to-sleep .minerva-shadow { position:absolute; top:0; right:10%; width:50px; height:90%; background: linear-gradient(180deg, rgba(10,10,20,0.6) 0%, transparent 100%); transform: skewX(-10deg); animation: su-fade 15s ease-in-out infinite; }
@keyframes su-slump { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(20deg) translateY(2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes su-drop { 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-40deg) translateY(3px) } 100% { transform: rotate(-30deg) translateY(0) } }
@keyframes su-fade { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

/* Telemachus joins goddess */
.scn-telemachus-joins-goddess { background: linear-gradient(180deg, #0e1a2a 0%, #1a2a3a 40%, #0e1a2a 100%), radial-gradient(ellipse at 50% 10%, #2a3a5a 0%, transparent 70%); }
.scn-telemachus-joins-goddess .night-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); }
.scn-telemachus-joins-goddess .moon { position:absolute; top:12%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #c0c8d0 0%, #a0aab8 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(160,170,184,0.4); animation: tg-moon-glow 8s ease-in-out infinite alternate; }
.scn-telemachus-joins-goddess .ship-hull { position:absolute; bottom:30%; left:20%; width:60%; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 0 40% 0 0 / 0 30px 0 0; }
.scn-telemachus-joins-goddess .sail-folded { position:absolute; bottom:42%; left:22%; width:20px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 4px 4px 0 0; transform: skewX(-5deg); }
.scn-telemachus-joins-goddess .telemachus-silhouette { position:absolute; bottom:34%; left:30%; width:16px; height:30px; background: #0a0a14; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: tg-step 6s ease-in-out infinite; }
.scn-telemachus-joins-goddess .goddess-silhouette { position:absolute; bottom:33%; left:45%; width:18px; height:32px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: tg-step 6s ease-in-out infinite 0.5s; }
.scn-telemachus-joins-goddess .water-rise { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(10,20,30,0.8) 0%, transparent 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; animation: tg-water 12s ease-in-out infinite alternate; }
@keyframes tg-moon-glow { 0% { opacity:0.7; box-shadow: 0 0 20px 5px rgba(160,170,184,0.2) } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(160,170,184,0.5) } 100% { opacity:0.8; box-shadow: 0 0 30px 10px rgba(160,170,184,0.3) } }
@keyframes tg-step { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tg-water { 0% { transform: translateY(0) } 100% { transform: translateY(3px) } }

/* Boarding the ship */
.scn-boarding-the-ship { background: linear-gradient(180deg, #0a1220 0%, #1a2230 40%, #0a1220 100%), radial-gradient(ellipse at 50% 60%, #2a3a4a 0%, transparent 60%); }
.scn-boarding-the-ship .dock-bg { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-boarding-the-ship .ship-side { position:absolute; bottom:30%; left:30%; width:55%; height:60px; background: linear-gradient(90deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.6); }
.scn-boarding-the-ship .gangplank { position:absolute; bottom:33%; left:25%; width:30%; height:6px; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); transform: rotate(-10deg); transform-origin: left center; border-radius: 2px; }
.scn-boarding-the-ship .crew-figure-1 { position:absolute; bottom:28%; left:40%; width:14px; height:28px; background: #0a0a14; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: bs-carry 8s ease-in-out infinite; }
.scn-boarding-the-ship .crew-figure-2 { position:absolute; bottom:28%; left:52%; width:14px; height:28px; background: #0a0a14; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: bs-carry 8s ease-in-out infinite 0.8s; }
.scn-boarding-the-ship .cargo-crate { position:absolute; bottom:30%; left:48%; width:20px; height:16px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 3px; animation: bs-load 10s ease-in-out infinite; }
.scn-boarding-the-ship .torch-light { position:absolute; bottom:38%; left:20%; width:10px; height:14px; background: radial-gradient(circle, #d09040 0%, #a06020 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(160,96,32,0.6); animation: bs-flicker 3s ease-in-out infinite alternate; }
.scn-boarding-the-ship .mast-shadow { position:absolute; bottom:40%; left:42%; width:8px; height:60px; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); transform: skewX(-5deg); }
@keyframes bs-carry { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes bs-load { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bs-flicker { 0% { opacity:0.7; box-shadow: 0 0 20px 5px rgba(160,96,32,0.4) } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(160,96,32,0.8) } 100% { opacity:0.8; box-shadow: 0 0 30px 10px rgba(160,96,32,0.6) } }

/* Telemachus arrives at Pylos */
.scn-telemachus-arrives-at-pylos { background: linear-gradient(180deg, #1a2a3a 0%, #3a4a5a 30%, #5a6a7a 60%, #8a9aaa 100%), radial-gradient(ellipse at 60% 20%, #8a9aaa 0%, transparent 50%); }
.scn-telemachus-arrives-at-pylos .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a3a4a 0%, #6a7a8a 60%, #aab4be 100%); animation: tp-sky 20s ease-in-out infinite alternate; }
.scn-telemachus-arrives-at-pylos .sea { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; }
.scn-telemachus-arrives-at-pylos .shore-sand { position:absolute; bottom:20%; left:0; right:0; height:15%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 40% 60% 0 0 / 60% 40% 0 0; }
.scn-telemachus-arrives-at-pylos .altar-rock { position:absolute; bottom:25%; left:35%; width:80px; height:50px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-telemachus-arrives-at-pylos .bull-silhouette { position:absolute; bottom:28%; left:42%; width:30px; height:20px; background: #1a1a0a; border-radius: 60% 30% 20% 20% / 50% 40% 30% 40%; transform: scaleX(-1); animation: tp-bull 12s ease-in-out infinite; }
.scn-telemachus-arrives-at-pylos .priest-figure { position:absolute; bottom:32%; left:50%; width:16px; height:30px; background: #2a2a1a; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: tp-priest 10s ease-in-out infinite; }
.scn-telemachus-arrives-at-pylos .smoke-column { position:absolute; bottom:60%; left:40%; width:20px; height:40px; background: radial-gradient(ellipse, rgba(160,140,120,0.6) 0%, transparent 100%); filter: blur(4px); animation: tp-smoke 15s ease-in-out infinite alternate; }
@keyframes tp-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes tp-bull { 0% { transform: scaleX(-1) translateY(0) } 50% { transform: scaleX(-1) translateY(-2px) } 100% { transform: scaleX(-1) translateY(0) } }
@keyframes tp-priest { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tp-smoke { 0% { transform: translateY(0) scaleY(1); opacity:0.5 } 50% { transform: translateY(-10px) scaleY(1.5); opacity:0.3 } 100% { transform: translateY(0) scaleY(1); opacity:0.5 } }

.scn-minos-judging {
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #2a1a3e 100%),
              radial-gradient(ellipse at 50% 50%, #2a1a3e 0%, #0d0d1a 70%);
}
.scn-minos-judging .hades-bg {
  position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #12121f 0%, #1a1a2e 100%); animation:mjs-sky 20s ease-in-out infinite alternate;
}
.scn-minos-judging .throne {
  position:absolute; bottom:30%; left:50%; width:90px; height:100px; transform:translateX(-50%);
  background:linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%); border-radius:20% 20% 10% 10%; box-shadow:0 8px 20px rgba(0,0,0,.6); animation:mjs-throne 6s ease-in-out infinite;
}
.scn-minos-judging .minos-fig {
  position:absolute; bottom:36%; left:50%; width:40px; height:60px; transform:translateX(-50%) scale(1.2);
  background:linear-gradient(180deg, #2a1a0a 0%, #0d0d0d 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:mjs-fig 8s ease-in-out infinite;
}
.scn-minos-judging .sceptre-glow {
  position:absolute; bottom:42%; left:54%; width:6px; height:30px; background:linear-gradient(180deg, #f0c060 0%, #b08030 100%); border-radius:3px;
  box-shadow:0 0 20px 8px #f0c060, 0 0 40px 16px rgba(240,192,96,.3); animation:mjs-sceptre 3s ease-in-out infinite alternate;
}
.scn-minos-judging .ghost {
  position:absolute; bottom:40%; background:linear-gradient(180deg, rgba(255,255,255,.05) 0%, rgba(255,255,255,.02) 100%); border-radius:50px 50px 20px 20px; filter:blur(4px);
  animation:mjs-ghost 15s ease-in-out infinite alternate;
}
.scn-minos-judging .ghost.a { left:20%; width:20px; height:40px; animation-delay:-4s; }
.scn-minos-judging .ghost.b { left:70%; width:18px; height:36px; animation-delay:-10s; }
.scn-minos-judging .ground {
  position:absolute; bottom:0; height:25%; left:0; right:0; background:linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); box-shadow:inset 0 10px 20px rgba(0,0,0,.5);
}
@keyframes mjs-sky { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes mjs-throne { 0%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(-2px)} 100%{transform:translateX(-50%) translateY(0)} }
@keyframes mjs-fig { 0%{transform:translateX(-50%) scale(1.2) rotate(-1deg)} 50%{transform:translateX(-50%) scale(1.22) rotate(1deg)} 100%{transform:translateX(-50%) scale(1.2) rotate(-1deg)} }
@keyframes mjs-sceptre { 0%{box-shadow:0 0 15px 4px #f0c060,0 0 30px 10px rgba(240,192,96,.2); opacity:.9} 50%{box-shadow:0 0 28px 10px #ffd080,0 0 50px 20px rgba(255,208,128,.4); opacity:1} 100%{box-shadow:0 0 18px 5px #f0c060,0 0 36px 12px rgba(240,192,96,.25); opacity:.92} }
@keyframes mjs-ghost { 0%{opacity:.3; transform:translateY(0)} 50%{opacity:.6; transform:translateY(-6px)} 100%{opacity:.2; transform:translateY(2px)} }

.scn-tantalus-sisyphus {
  background: linear-gradient(180deg, #0a0a1a 0%, #12122e 30%, #1a1a3e 100%),
              radial-gradient(ellipse at 30% 80%, #1a1a3e 0%, transparent 60%);
}
.scn-tantalus-sisyphus .underworld {
  position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #0a0a1a 0%, #12122e 100%); animation:tss-sky 25s ease-in-out infinite alternate;
}
.scn-tantalus-sisyphus .water {
  position:absolute; bottom:10%; left:0; right:0; height:30%; background:linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:40% 40% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.5); animation:tss-water 6s ease-in-out infinite;
}
.scn-tantalus-sisyphus .tantalus {
  position:absolute; bottom:32%; left:30%; width:30px; height:50px; transform:translateX(-50%);
  background:linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:tss-tantalus 5s ease-in-out infinite;
}
.scn-tantalus-sisyphus .fruit-branch {
  position:absolute; top:25%; left:25%; width:8px; height:40px; background:linear-gradient(180deg, #4a2a0a 0%, #2a1a0a 100%); border-radius:4px; transform:rotate(-15deg); animation:tss-branch 8s ease-in-out infinite;
}
.scn-tantalus-sisyphus .rock {
  position:absolute; bottom:10%; right:25%; width:40px; height:40px; background:radial-gradient(circle at 40% 30%, #5a4a3a 0%, #2a1a0a 100%); border-radius:50%; box-shadow:0 6px 12px rgba(0,0,0,.6); animation:tss-rock 4s linear infinite;
}
.scn-tantalus-sisyphus .sisyphus {
  position:absolute; bottom:15%; right:30%; width:24px; height:44px; transform:translateX(50%);
  background:linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:tss-sisyphus 4s linear infinite;
}
.scn-tantalus-sisyphus .ground {
  position:absolute; bottom:0; height:10%; left:0; right:0; background:linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
}
@keyframes tss-sky { 0%{opacity:.6} 50%{opacity:.9} 100%{opacity:.7} }
@keyframes tss-water { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes tss-tantalus { 0%{transform:translateX(-50%) translateY(0) rotate(-2deg)} 25%{transform:translateX(-50%) translateY(-4px) rotate(0deg)} 50%{transform:translateX(-50%) translateY(0) rotate(2deg)} 75%{transform:translateX(-50%) translateY(-2px) rotate(0deg)} 100%{transform:translateX(-50%) translateY(0) rotate(-2deg)} }
@keyframes tss-branch { 0%{transform:rotate(-18deg)} 50%{transform:rotate(-12deg)} 100%{transform:rotate(-18deg)} }
@keyframes tss-rock { 0%{transform:translateX(0) translateY(0) rotate(0deg)} 25%{transform:translateX(-10px) translateY(-4px) rotate(20deg)} 50%{transform:translateX(-20px) translateY(0) rotate(40deg)} 75%{transform:translateX(-10px) translateY(-2px) rotate(60deg)} 100%{transform:translateX(0) translateY(0) rotate(80deg)} }
@keyframes tss-sisyphus { 0%{transform:translateX(50%) translateY(0)} 25%{transform:translateX(50%) translateY(-6px)} 50%{transform:translateX(50%) translateY(0)} 75%{transform:translateX(50%) translateY(-3px)} 100%{transform:translateX(50%) translateY(0)} }

.scn-hercules-ghost {
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #2a1a3e 100%),
              radial-gradient(ellipse at 40% 60%, #2a1a3e 0%, #0d0d1a 80%);
}
.scn-hercules-ghost .hades-sky {
  position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #101020 0%, #1a1a2e 100%); animation:hgs-sky 30s ease-in-out infinite alternate;
}
.scn-hercules-ghost .hercules-phantom {
  position:absolute; bottom:30%; left:50%; width:60px; height:100px; transform:translateX(-50%) scale(1.1);
  background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 0 20px 4px rgba(255,255,255,.05); opacity:.5; animation:hgs-herc 12s ease-in-out infinite;
}
.scn-hercules-ghost .bird {
  position:absolute; width:8px; height:6px; background:linear-gradient(90deg, transparent 0%, #4a3a2a 50%, transparent 100%); border-radius:50%; animation:hgs-bird 10s linear infinite;
}
.scn-hercules-ghost .bird1 { top:30%; left:-10%; animation-delay:-2s; }
.scn-hercules-ghost .bird2 { top:25%; left:-5%; width:6px; height:5px; animation-delay:-6s; }
.scn-hercules-ghost .bird3 { top:35%; left:-15%; width:7px; height:5px; animation-delay:-8s; }
.scn-hercules-ghost .hades-ground {
  position:absolute; bottom:0; height:30%; left:0; right:0; background:linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); box-shadow:inset 0 8px 16px rgba(0,0,0,.6);
}
@keyframes hgs-sky { 0%{opacity:.5} 50%{opacity:.85} 100%{opacity:.6} }
@keyframes hgs-herc { 0%{opacity:.4; transform:translateX(-50%) scale(1.1) rotate(-2deg)} 50%{opacity:.7; transform:translateX(-50%) scale(1.15) rotate(2deg)} 100%{opacity:.5; transform:translateX(-50%) scale(1.1) rotate(-2deg)} }
@keyframes hgs-bird { 0%{transform:translateX(0) translateY(0) scale(1); opacity:.8} 50%{transform:translateX(50vw) translateY(-20px) scale(.9); opacity:.5} 100%{transform:translateX(100vw) translateY(-40px) scale(.8); opacity:.2} }

.scn-end-of-nekyia {
  background: linear-gradient(180deg, #060612 0%, #0a0a1a 50%, #12122e 100%),
              radial-gradient(ellipse at 50% 80%, #12122e 0%, transparent 80%);
}
.scn-end-of-nekyia .void-bg {
  position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #060612 0%, #0a0a1a 100%); animation:ens-void 30s ease-in-out infinite alternate;
}
.scn-end-of-nekyia .odysseus {
  position:absolute; bottom:35%; left:30%; width:28px; height:50px; transform:translateX(-50%);
  background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ens-ody 8s ease-in-out infinite;
}
.scn-end-of-nekyia .shadow-fig {
  position:absolute; bottom:38%; background:linear-gradient(180deg, #0a0a1a 0%, #050510 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.3; animation:ens-shadow 12s ease-in-out infinite alternate;
}
.scn-end-of-nekyia .shadow-fig.left { left:65%; width:22px; height:40px; animation-delay:-4s; }
.scn-end-of-nekyia .shadow-fig.right { left:75%; width:20px; height:38px; animation-delay:-8s; }
.scn-end-of-nekyia .ground {
  position:absolute; bottom:0; height:25%; left:0; right:0; background:linear-gradient(180deg, #0a0a1a 0%, #030308 100%);
}
.scn-end-of-nekyia .dust {
  position:absolute; bottom:40%; left:45%; width:2px; height:2px; background:rgba(255,255,255,.05); border-radius:50%; filter:blur(1px); animation:ens-dust 6s ease-in-out infinite;
}
@keyframes ens-void { 0%{opacity:.4} 50%{opacity:.8} 100%{opacity:.5} }
@keyframes ens-ody { 0%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(-3px)} 100%{transform:translateX(-50%) translateY(0)} }
@keyframes ens-shadow { 0%{opacity:.2; transform:translateY(0)} 50%{opacity:.5; transform:translateY(-2px)} 100%{opacity:.3; transform:translateY(1px)} }
@keyframes ens-dust { 0%{opacity:0; transform:translateY(0) scale(1)} 50%{opacity:.6; transform:translateY(-15px) scale(1.5)} 100%{opacity:0; transform:translateY(-30px) scale(.5)} }

.scn-footnote-telemachus-journey-reason { background: linear-gradient(180deg, #2b1e14 0%, #3a2a1c 30%, #1e1410 100%), radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 60%); }
.scn-footnote-telemachus-journey-reason .tjr-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a1f18 0%, #1a1210 100%); opacity:0.6; }
.scn-footnote-telemachus-journey-reason .tjr-table { position:absolute; bottom:15%; left:20%; width:55%; height:12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-footnote-telemachus-journey-reason .tjr-scroll { position:absolute; bottom:20%; left:35%; width:25%; height:8%; background: linear-gradient(90deg, #d4b896 0%, #c8a880 30%, #b89a70 70%, #d0b88a 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: tjr-unroll 12s ease-in-out infinite alternate; }
.scn-footnote-telemachus-journey-reason .tjr-lamp { position:absolute; bottom:22%; left:55%; width:6%; height:10%; background: radial-gradient(circle at 50% 20%, #ffcc80 0%, #b08040 50%, #4a3020 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 8px #b08040, 0 0 40px 16px rgba(176,128,64,0.3); animation: tjr-flicker 3s ease-in-out infinite alternate; }
.scn-footnote-telemachus-journey-reason .tjr-globe { position:absolute; bottom:20%; left:25%; width:8%; height:8%; background: radial-gradient(circle at 40% 40%, #7a8a9a 0%, #3a4a5a 60%, #1a2a3a 100%); border-radius: 50%; box-shadow: inset -2px -2px 4px rgba(0,0,0,0.5); animation: tjr-spin 20s linear infinite; transform-origin: 50% 50%; }
.scn-footnote-telemachus-journey-reason .tjr-shadow { position:absolute; bottom:15%; left:45%; width:20%; height:2%; background: rgba(0,0,0,0.4); filter: blur(4px); animation: tjr-drift 8s ease-in-out infinite alternate; }
@keyframes tjr-unroll { 0% { transform: rotate(-5deg) scaleX(0.8); opacity:0.7 } 50% { transform: rotate(-2deg) scaleX(1); opacity:1 } 100% { transform: rotate(-8deg) scaleX(0.9); opacity:0.85 } }
@keyframes tjr-flicker { 0% { opacity:0.8; box-shadow: 0 0 12px 4px #b08040; } 50% { opacity:1; box-shadow: 0 0 28px 10px #ffcc80; } 100% { opacity:0.85; box-shadow: 0 0 18px 6px #b08040; } }
@keyframes tjr-spin { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes tjr-drift { 0% { transform: translateX(0); opacity:0.3 } 50% { transform: translateX(10px); opacity:0.5 } 100% { transform: translateX(-5px); opacity:0.2 } }

.scn-footnote-sandals { background: linear-gradient(180deg, #1f1812 0%, #2c221c 40%, #18120e 100%), radial-gradient(ellipse at 60% 70%, #3a2a1e 0%, transparent 70%); }
.scn-footnote-sandals .snd-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius: 20% 20% 0 0; }
.scn-footnote-sandals .snd-bench { position:absolute; bottom:18%; left:15%; width:70%; height:15%; background: linear-gradient(180deg, #4a3020 0%, #2e1c12 100%); border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-footnote-sandals .snd-leather { position:absolute; bottom:22%; left:20%; width:30%; height:6%; background: linear-gradient(90deg, #8a6a4a 0%, #6a4a2a 50%, #4a2a1a 100%); border-radius: 2px; transform: rotate(2deg); animation: snd-shape 10s ease-in-out infinite alternate; }
.scn-footnote-sandals .snd-sandal { position:absolute; bottom:20%; left:45%; width:12%; height:8%; background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: snd-weave 6s ease-in-out infinite; }
.scn-footnote-sandals .snd-tools { position:absolute; bottom:25%; left:35%; width:8%; height:4%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 2px; box-shadow: 0 2px 2px rgba(0,0,0,0.3); animation: snd-tap 4s ease-in-out infinite; }
.scn-footnote-sandals .snd-figure { position:absolute; bottom:22%; left:60%; width:14%; height:30%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: snd-bend 8s ease-in-out infinite alternate; }
.scn-footnote-sandals .snd-candle { position:absolute; bottom:32%; left:70%; width:4%; height:12%; background: radial-gradient(circle at 50% 20%, #ffdd99 0%, #cc8833 40%, #4a2211 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 16px 6px #cc8833, 0 0 32px 12px rgba(204,136,51,0.3); animation: snd-glow 3s ease-in-out infinite alternate; }
@keyframes snd-shape { 0% { transform: rotate(2deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.1); } 100% { transform: rotate(0deg) scaleX(0.95); } }
@keyframes snd-weave { 0%,100% { transform: rotate(2deg) scale(1); } 25% { transform: rotate(-3deg) scale(1.05); } 50% { transform: rotate(1deg) scale(0.98); } 75% { transform: rotate(4deg) scale(1.02); } }
@keyframes snd-tap { 0% { transform: translateY(0); } 20% { transform: translateY(-2px); } 40% { transform: translateY(0); } 60% { transform: translateY(-3px); } 80% { transform: translateY(0); } 100% { transform: translateY(-1px); } }
@keyframes snd-bend { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(5deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes snd-glow { 0% { opacity:0.7; box-shadow: 0 0 10px 3px #cc8833; } 50% { opacity:1; box-shadow: 0 0 24px 8px #ffdd99; } 100% { opacity:0.8; box-shadow: 0 0 14px 4px #cc8833; } }

.scn-footnote-dress-chest { background: linear-gradient(180deg, #1e1612 0%, #2c221c 40%, #14100e 100%), radial-gradient(ellipse at 40% 50%, #3a2a1e 0%, transparent 70%); }
.scn-footnote-dress-chest .drs-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a1f18 0%, #1a1210 50%, #0e0a08 100%); opacity:0.5; }
.scn-footnote-dress-chest .drs-chest { position:absolute; bottom:20%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 8px; box-shadow: 0 8px 16px rgba(0,0,0,0.6), inset 0 2px 4px rgba(255,255,255,0.1); animation: drs-breathe 15s ease-in-out infinite alternate; }
.scn-footnote-dress-chest .drs-cover { position:absolute; bottom:38%; left:32%; width:36%; height:6%; background: linear-gradient(180deg, #4a3020 0%, #2e1c12 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-footnote-dress-chest .drs-dress { position:absolute; bottom:25%; left:38%; width:24%; height:20%; background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 60%, #4a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: drs-fold 8s ease-in-out infinite alternate; }
.scn-footnote-dress-chest .drs-ribbon { position:absolute; bottom:30%; left:45%; width:10%; height:2%; background: linear-gradient(90deg, #a06040 0%, #c08060 50%, #a06040 100%); border-radius: 2px; transform: rotate(10deg); animation: drs-sway 6s ease-in-out infinite; }
.scn-footnote-dress-chest .drs-hand { position:absolute; bottom:35%; left:55%; width:8%; height:18%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: drs-reach 10s ease-in-out infinite alternate; }
.scn-footnote-dress-chest .drs-glow { position:absolute; bottom:30%; left:30%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 50%, #ccaa88 0%, transparent 70%); opacity:0.2; animation: drs-light 5s ease-in-out infinite alternate; }
@keyframes drs-breathe { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(0.98); } }
@keyframes drs-fold { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(0.95); } 100% { transform: rotate(-2deg) scaleY(1.02); } }
@keyframes drs-sway { 0%,100% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(3px); } }
@keyframes drs-reach { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(5deg); } 100% { transform: translateY(2px) rotate(-2deg); } }
@keyframes drs-light { 0% { opacity:0.1; } 50% { opacity:0.3; } 100% { opacity:0.15; } }

.scn-footnote-turning-sun { background: linear-gradient(180deg, #1a1e24 0%, #2a2e34 40%, #0e1014 100%), radial-gradient(ellipse at 50% 80%, #3a4a5a 0%, transparent 60%); }
.scn-footnote-turning-sun .tsn-ceiling { position:absolute; top:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a30 0%, #1a1a20 100%); border-radius: 0 0 40% 40%; }
.scn-footnote-turning-sun .tsn-wall { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1e1e22 0%, #121216 100%); }
.scn-footnote-turning-sun .tsn-window { position:absolute; top:20%; left:30%; width:40%; height:40%; background: linear-gradient(135deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 40% 40% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); overflow:hidden; }
.scn-footnote-turning-sun .tsn-compass { position:absolute; bottom:18%; left:38%; width:24%; height:24%; background: radial-gradient(circle at 50% 50%, #5a5a60 0%, #3a3a40 50%, #1a1a20 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 0 20px rgba(0,0,0,0.3); animation: tsn-rotate 15s linear infinite; }
.scn-footnote-turning-sun .tsn-needle { position:absolute; bottom:30%; left:48%; width:4%; height:12%; background: linear-gradient(180deg, #b08040 0%, #806030 100%); border-radius: 2px; transform-origin: bottom center; animation: tsn-swing 6s ease-in-out infinite alternate; }
.scn-footnote-turning-sun .tsn-ray { position:absolute; top:22%; left:35%; width:30%; height:30%; background: radial-gradient(circle at 50% 50%, #c0a080 0%, transparent 60%); opacity:0.15; animation: tsn-beam 8s ease-in-out infinite alternate; }
@keyframes tsn-rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes tsn-swing { 0% { transform: rotate(-20deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(20deg); } }
@keyframes tsn-beam { 0% { opacity:0.05; transform: scale(1); } 50% { opacity:0.2; transform: scale(1.1); } 100% { opacity:0.08; transform: scale(0.9); } }

.scn-footnote-my-property {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #3a2a1a 50%, #2a1f1a 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 60%);
}
.scn-footnote-my-property .bg-wall {
  position: absolute; inset: 0; background: radial-gradient(circle at 40% 20%, #4a3a2a 0%, #1a1510 100%);
  animation: sfmp-bg 12s ease-in-out infinite alternate;
}
.scn-footnote-my-property .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: sfmp-desk 8s ease-in-out infinite alternate;
}
.scn-footnote-my-property .scroll {
  position: absolute; bottom: 25%; left: 35%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 20px 20px 4px 4px; transform: rotate(-2deg);
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: sfmp-scroll 9s ease-in-out infinite;
}
.scn-footnote-my-property .candle {
  position: absolute; bottom: 30%; left: 22%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #e0d0b0 0%, #a08070 100%);
  border-radius: 6px 6px 2px 2px; box-shadow: 0 0 8px rgba(200,150,100,.3);
  animation: sfmp-candle 10s ease-in-out infinite;
}
.scn-footnote-my-property .flame {
  position: absolute; bottom: 48%; left: 23%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #ff8030 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 -8px 24px 8px rgba(255,160,60,.4), 0 0 48px 16px rgba(255,160,60,.2);
  animation: sfmp-flame 2s ease-in-out infinite alternate;
}
.scn-footnote-my-property .inkwell {
  position: absolute; bottom: 26%; left: 65%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #3a2a2a 0%, #1a1010 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: sfmp-inkwell 7s ease-in-out infinite;
}
.scn-footnote-my-property .quill {
  position: absolute; bottom: 32%; left: 68%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #e8d8c0 0%, #a89880 50%, #4a3a2a 100%);
  border-radius: 50% 50% 0 0; transform: rotate(25deg); transform-origin: bottom;
  animation: sfmp-quill 6s ease-in-out infinite;
}
@keyframes sfmp-bg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes sfmp-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sfmp-scroll { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes sfmp-candle { 0% { filter: brightness(1); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes sfmp-flame { 0% { transform: scaleY(1) rotate(-2deg); opacity: .9; } 50% { transform: scaleY(1.1) rotate(2deg); opacity: 1; } 100% { transform: scaleY(0.95) rotate(-1deg); opacity: .85; } }
@keyframes sfmp-inkwell { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes sfmp-quill { 0% { transform: rotate(25deg) translateY(0); } 50% { transform: rotate(23deg) translateY(-1px); } 100% { transform: rotate(25deg) translateY(0); } }

.scn-footnote-ulysses-sleep {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a3e 0%, transparent 70%);
}
.scn-footnote-ulysses-sleep .bg-wall {
  position: absolute; inset: 0; background: radial-gradient(circle at 60% 30%, #2a2a3e 0%, #0a0a1a 80%);
  animation: sus-bg 14s ease-in-out infinite alternate;
}
.scn-footnote-ulysses-sleep .bed {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 20px 20px 8px 8px; box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: sus-bed 10s ease-in-out infinite alternate;
}
.scn-footnote-ulysses-sleep .figure {
  position: absolute; bottom: 18%; left: 40%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sus-figure 12s ease-in-out infinite;
}
.scn-footnote-ulysses-sleep .blanket {
  position: absolute; bottom: 14%; left: 30%; right: 30%; height: 20px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40px 40px 20px 20px; box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: sus-blanket 8s ease-in-out infinite;
}
.scn-footnote-ulysses-sleep .lamp {
  position: absolute; bottom: 35%; left: 18%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #e0d0b0 0%, #a08070 100%);
  border-radius: 6px 6px 2px 2px; box-shadow: 0 0 16px rgba(200,150,100,.3);
  animation: sus-lamp 9s ease-in-out infinite;
}
.scn-footnote-ulysses-sleep .shadow {
  position: absolute; bottom: 12%; left: 35%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: sus-shadow 13s ease-in-out infinite;
}
@keyframes sus-bg { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes sus-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes sus-figure { 0% { transform: rotate(0deg) scaleY(1); } 33% { transform: rotate(2deg) scaleY(1.01); } 66% { transform: rotate(-1deg) scaleY(0.99); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes sus-blanket { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sus-lamp { 0% { filter: brightness(1); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes sus-shadow { 0% { transform: scaleX(1); opacity: .6; } 50% { transform: scaleX(1.05); opacity: .8; } 100% { transform: scaleX(1); opacity: .6; } }

.scn-footnote-translation-dubious {
  background: 
    linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 40%, #3a3a4a 0%, transparent 60%);
}
.scn-footnote-translation-dubious .bg-wall {
  position: absolute; inset: 0; background: radial-gradient(circle at 30% 20%, #3a3a4a 0%, #1a1a2a 100%);
  animation: std-bg 15s ease-in-out infinite alternate;
}
.scn-footnote-translation-dubious .column {
  position: absolute; bottom: 10%; left: 10%; width: 20px; height: 70%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10px 10px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: std-column 12s ease-in-out infinite;
}
.scn-footnote-translation-dubious .shed-roof {
  position: absolute; bottom: 72%; left: 5%; right: 15%; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20px 20px 4px 4px; transform: skewX(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: std-roof 10s ease-in-out infinite alternate;
}
.scn-footnote-translation-dubious .book {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 4px 4px 12px 12px; box-shadow: 0 4px 12px rgba(0,0,0,.4);
  transform: rotate(-3deg);
  animation: std-book 8s ease-in-out infinite;
}
.scn-footnote-translation-dubious .scribe {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: std-scribe 9s ease-in-out infinite;
}
.scn-footnote-translation-dubious .lamp {
  position: absolute; bottom: 40%; left: 55%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #e0d0b0 0%, #a08070 100%);
  border-radius: 6px 6px 2px 2px; box-shadow: 0 0 16px rgba(200,150,100,.3);
  animation: std-lamp 11s ease-in-out infinite;
}
@keyframes std-bg { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes std-column { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes std-roof { 0% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-4deg) translateY(-1px); } 100% { transform: skewX(-5deg) translateY(0); } }
@keyframes std-book { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes std-scribe { 0% { transform: rotate(0deg) scaleY(1); } 33% { transform: rotate(2deg) scaleY(1.01); } 66% { transform: rotate(-1deg) scaleY(0.99); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes std-lamp { 0% { filter: brightness(1); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }

.scn-footnote-hobbling-horses {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a3e 0%, transparent 70%);
}
.scn-footnote-hobbling-horses .bg-wall {
  position: absolute; inset: 0; background: radial-gradient(circle at 20% 60%, #2a2a3e 0%, #0a0a1a 80%);
  animation: shh-bg 13s ease-in-out infinite alternate;
}
.scn-footnote-hobbling-horses .leg-left {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 4px 4px 8px 8px; transform-origin: bottom;
  animation: shh-legL 6s ease-in-out infinite;
}
.scn-footnote-hobbling-horses .leg-right {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 4px 4px 8px 8px; transform-origin: bottom;
  animation: shh-legR 7s ease-in-out infinite;
}
.scn-footnote-hobbling-horses .chain {
  position: absolute; bottom: 30%; left: 35%; width: 100px; height: 6px;
  background: linear-gradient(90deg, #5a4a3a 0%, #8a7a6a 20%, #5a4a3a 40%, #8a7a6a 60%, #5a4a3a 80%, #8a7a6a 100%);
  border-radius: 3px; box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: shh-chain 4s ease-in-out infinite;
}
.scn-footnote-hobbling-horses .hay {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 20px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 30px 30px 10px 10px; filter: blur(2px);
  animation: shh-hay 12s ease-in-out infinite alternate;
}
.scn-footnote-hobbling-horses .lantern {
  position: absolute; bottom: 50%; left: 55%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #e0d0b0 0%, #a08070 100%);
  border-radius: 6px 6px 2px 2px; box-shadow: 0 0 20px rgba(200,150,100,.3);
  animation: shh-lantern 9s ease-in-out infinite;
}
@keyframes shh-bg { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes shh-legL { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes shh-legR { 0% { transform: rotate(0deg); } 25% { transform: rotate(-4deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes shh-chain { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes shh-hay { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes shh-lantern { 0% { filter: brightness(1); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }

/* telemachus-rebukes-mother */
.scn-telemachus-rebukes-mother { background: linear-gradient(180deg, #1a0e0a 0%, #2c1a12 40%, #1f120c 100%), radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 70%); }
.scn-telemachus-rebukes-mother .wall-left { position:absolute; top:0; bottom:0; left:0; width:20%; background: linear-gradient(180deg, #3a2218 0%, #2a1610 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,.6); }
.scn-telemachus-rebukes-mother .wall-right { position:absolute; top:0; bottom:0; right:0; width:20%; background: linear-gradient(180deg, #3a2218 0%, #2a1610 100%); box-shadow: inset 10px 0 20px rgba(0,0,0,.6); }
.scn-telemachus-rebukes-mother .floor { position:absolute; bottom:0; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.7); }
.scn-telemachus-rebukes-mother .fireplace { position:absolute; bottom:20%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #2a1610 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); }
.scn-telemachus-rebukes-mother .fire-glow { position:absolute; bottom:22%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: radial-gradient(circle, #ff8040 0%, #ff6020 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,96,32,.6); animation: trm-fire 2s ease-in-out infinite alternate; }
.scn-telemachus-rebukes-mother .telemachus { position:absolute; bottom:22%; left:35%; width:22px; height:50px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: trm-speak 3s ease-in-out infinite; }
.scn-telemachus-rebukes-mother .mother { position:absolute; bottom:24%; left:55%; width:20px; height:45px; background: linear-gradient(180deg, #3a2218 0%, #1a0e0a 100%); border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%; transform-origin: bottom center; animation: trm-listen 4s ease-in-out infinite; }
.scn-telemachus-rebukes-mother .bard { position:absolute; bottom:22%; left:48%; width:18px; height:40px; background: linear-gradient(180deg, #2a1610 0%, #1a0e0a 100%); border-radius: 35% 35% 25% 25% / 45% 45% 30% 30%; animation: trm-bard 5s ease-in-out infinite; }
.scn-telemachus-rebukes-mother .shadow-bars { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 12px, rgba(0,0,0,.15) 12px, rgba(0,0,0,.15) 24px); animation: trm-flicker 1.5s ease-in-out infinite alternate; }
@keyframes trm-fire { 0% { transform: translateX(-50%) scaleY(0.8); opacity:.9 } 50% { transform: translateX(-50%) scaleY(1.2); opacity:1 } 100% { transform: translateX(-50%) scaleY(0.9); opacity:.85 } }
@keyframes trm-speak { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(-2deg) } 50% { transform: translateX(-2px) rotate(1deg) } 75% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes trm-listen { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(2deg) } }
@keyframes trm-bard { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes trm-flicker { 0% { opacity:.5 } 100% { opacity:.8 } }

/* penelope-retires */
.scn-penelope-retires { background: linear-gradient(180deg, #0e1a2e 0%, #141e33 40%, #0e1628 100%), radial-gradient(ellipse at 50% 100%, #1a2a44 0%, transparent 70%); }
.scn-penelope-retires .bedroom-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a2440 0%, #0e1628 100%); }
.scn-penelope-retires .bed { position:absolute; bottom:10%; left:50%; width:120px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #2a344a 0%, #1a2440 100%); border-radius: 10% 10% 30% 30%; box-shadow: inset 0 5px 15px rgba(0,0,0,.5); }
.scn-penelope-retires .pillow { position:absolute; bottom:30%; left:50%; width:50px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #4a506a 0%, #2a344a 100%); border-radius: 50% 50% 30% 30%; box-shadow: inset 0 3px 8px rgba(0,0,0,.3); animation: pre-breath 6s ease-in-out infinite alternate; }
.scn-penelope-retires .penelope-silhouette { position:absolute; bottom:20%; left:42%; width:24px; height:50px; background: linear-gradient(180deg, #1a2440 0%, #0e1628 100%); border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%; transform-origin: bottom center; animation: pre-sleep 8s ease-in-out infinite; }
.scn-penelope-retires .lamp { position:absolute; top:30%; left:30%; width:12px; height:18px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 30% 30% 10% 10%; }
.scn-penelope-retires .lamp-glow { position:absolute; top:28%; left:30%; width:30px; height:30px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffd080 0%, #ffb050 40%, transparent 70%); box-shadow: 0 0 30px 15px rgba(255,176,80,.3); animation: pre-glow 4s ease-in-out infinite alternate; }
.scn-penelope-retires .curtain-left { position:absolute; top:0; bottom:40%; left:0; width:15%; background: linear-gradient(180deg, #2a344a 0%, #1a2440 100%); border-radius: 0 40% 40% 0; box-shadow: inset -5px 0 15px rgba(0,0,0,.4); animation: pre-curtain 10s ease-in-out infinite alternate; }
.scn-penelope-retires .curtain-right { position:absolute; top:0; bottom:40%; right:0; width:15%; background: linear-gradient(180deg, #2a344a 0%, #1a2440 100%); border-radius: 40% 0 0 40%; box-shadow: inset 5px 0 15px rgba(0,0,0,.4); animation: pre-curtain 10s ease-in-out infinite alternate-reverse; }
.scn-penelope-retires .moonbeam { position:absolute; top:10%; left:40%; width:20%; height:60%; background: linear-gradient(180deg, rgba(200,220,255,.15) 0%, transparent 100%); transform: skewX(-10deg); animation: pre-beam 12s ease-in-out infinite alternate; }
@keyframes pre-breath { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) } }
@keyframes pre-sleep { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(2px) rotate(1deg) } }
@keyframes pre-glow { 0% { opacity:.6; transform: translate(-50%,-50%) scale(0.9) } 50% { opacity:1; transform: translate(-50%,-50%) scale(1.1) } 100% { opacity:.7; transform: translate(-50%,-50%) scale(0.95) } }
@keyframes pre-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes pre-beam { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* telemachus-addresses-suitors */
.scn-telemachus-addresses-suitors { background: linear-gradient(180deg, #1a0e0a 0%, #2c1a12 30%, #1a0e0a 100%), radial-gradient(ellipse at 50% 50%, #3a2218 0%, transparent 70%); }
.scn-telemachus-addresses-suitors .hall-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2c1a12 0%, #1a0e0a 100%); }
.scn-telemachus-addresses-suitors .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:35%; background: repeating-linear-gradient(90deg, transparent, transparent 30px, rgba(0,0,0,.1) 30px, rgba(0,0,0,.1) 32px), linear-gradient(180deg, #2c1a12 0%, #1a0e0a 100%); }
.scn-telemachus-addresses-suitors .telemachus-front { position:absolute; bottom:25%; left:50%; width:28px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2218 0%, #1a0e0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: tas-speak 2.5s ease-in-out infinite; }
.scn-telemachus-addresses-suitors .suitors-left { position:absolute; bottom:25%; left:30%; width:20px; height:55px; background: linear-gradient(180deg, #2a1610 0%, #1a0e0a 100%); border-radius: 35% 35% 25% 25% / 45% 45% 30% 30%; transform-origin: bottom; animation: tas-shift 4s ease-in-out infinite; }
.scn-telemachus-addresses-suitors .suitors-right { position:absolute; bottom:25%; right:30%; width:20px; height:55px; background: linear-gradient(180deg, #2a1610 0%, #1a0e0a 100%); border-radius: 35% 35% 25% 25% / 45% 45% 30% 30%; transform-origin: bottom; animation: tas-shift 4s ease-in-out infinite reverse; }
.scn-telemachus-addresses-suitors .table { position:absolute; bottom:20%; left:45%; width:80px; height:12px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1610 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-telemachus-addresses-suitors .torch-left { position:absolute; bottom:50%; left:15%; width:6px; height:40px; background: linear-gradient(180deg, #6a4a3a 0%, #2a1610 100%); border-radius: 20% 20% 10% 10%; animation: tas-torch 3s ease-in-out infinite alternate; }
.scn-telemachus-addresses-suitors .torch-right { position:absolute; bottom:50%; right:15%; width:6px; height:40px; background: linear-gradient(180deg, #6a4a3a 0%, #2a1610 100%); border-radius: 20% 20% 10% 10%; animation: tas-torch 3s ease-in-out infinite alternate-reverse; }
.scn-telemachus-addresses-suitors .fire-flicker { position:absolute; inset:0; background: radial-gradient(ellipse at 15% 50%, rgba(255,128,32,.2) 0%, transparent 30%), radial-gradient(ellipse at 85% 50%, rgba(255,128,32,.2) 0%, transparent 30%); animation: tas-flicker .8s ease-in-out infinite alternate; }
@keyframes tas-speak { 0% { transform: translateX(-50%) rotate(0deg) } 30% { transform: translateX(-50%) rotate(-2deg) } 60% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes tas-shift { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes tas-torch { 0% { transform: scaleY(1) scaleX(1); opacity:.8 } 50% { transform: scaleY(1.1) scaleX(1.05); opacity:1 } 100% { transform: scaleY(0.95) scaleX(0.95); opacity:.9 } }
@keyframes tas-flicker { 0% { opacity:.3 } 100% { opacity:.6 } }

/* suitors-marvel */
.scn-suitors-marvel { background: linear-gradient(180deg, #1a0e0a 0%, #2c1a12 50%, #1a0e0a 100%), radial-gradient(ellipse at 50% 30%, #3a2218 0%, transparent 70%); }
.scn-suitors-marvel .chamber-back { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2c1a12 0%, #1a0e0a 100%); }
.scn-suitors-marvel .chamber-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2c1a12 0%, #1a0e0a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-suitors-marvel .antinous { position:absolute; bottom:25%; left:40%; width:26px; height:60px; background: linear-gradient(180deg, #3a2218 0%, #1a0e0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: sum-speak 3s ease-in-out infinite; }
.scn-suitors-marvel .suitors-cluster { position:absolute; bottom:25%; left:55%; width:40px; height:50px; background: linear-gradient(180deg, #2a1610 0%, #1a0e0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom; animation: sum-cluster 5s ease-in-out infinite; }
.scn-suitors-marvel .table-food { position:absolute; bottom:18%; left:48%; width:70px; height:10px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1610 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-suitors-marvel .oil-lamp { position:absolute; bottom:40%; left:50%; width:10px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 30% 30% 10% 10%; }
.scn-suitors-marvel .lamp-halo { position:absolute; bottom:38%; left:50%; width:50px; height:50px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffb050 0%, #ff8030 30%, transparent 70%); box-shadow: 0 0 40px 20px rgba(255,128,48,.4); animation: sum-glow 3s ease-in-out infinite alternate; }
.scn-suitors-marvel .shadow-column { position:absolute; bottom:0; left:20%; width:12%; height:60%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); transform: skewX(-5deg); animation: sum-col 6s ease-in-out infinite alternate; }
@keyframes sum-speak { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(-2deg) } 50% { transform: translateX(-2px) rotate(2deg) } 75% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sum-cluster { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes sum-glow { 0% { opacity:.6; transform: translate(-50%,-50%) scale(0.9) } 50% { opacity:1; transform: translate(-50%,-50%) scale(1.1) } 100% { opacity:.7; transform: translate(-50%,-50%) scale(0.95) } }
@keyframes sum-col { 0% { opacity:.3 } 100% { opacity:.6 } }

.scn-dogs-attack-ulysses {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0ff 40%, #f0e68c 70%, #8fbc8f 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.3) 0%, transparent 60%);
}
.scn-dogs-attack-ulysses .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #6eb5ff 0%, #b0d4f1 100%);
  animation: dau-sky 10s ease-in-out infinite alternate;
}
.scn-dogs-attack-ulysses .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, #5a7940 0%, #8FBC8F 30%, #c0d6a0 100%);
  border-radius: 30% 70% 0 0 / 20% 50% 0 0;
}
.scn-dogs-attack-ulysses .dog-1,
.scn-dogs-attack-ulysses .dog-2 {
  position: absolute; bottom: 20%; width: 40px; height: 28px;
  background: linear-gradient(90deg, #8b4513 0%, #654321 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: dau-dog1 1.2s steps(3) infinite;
}
.scn-dogs-attack-ulysses .dog-1 {
  left: 30%; transform-origin: 50% 100%;
}
.scn-dogs-attack-ulysses .dog-2 {
  left: 55%; animation-name: dau-dog2; animation-duration: 1.4s;
}
.scn-dogs-attack-ulysses .ulysses {
  position: absolute; bottom: 22%; left: 42%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #daa520 0%, #b8860b 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: dau-ulysses 3s ease-in-out infinite;
}
.scn-dogs-attack-ulysses .stick {
  position: absolute; bottom: 22%; left: 36%; width: 28px; height: 4px;
  background: linear-gradient(90deg, #8b5e3c 0%, #6b4226 100%);
  border-radius: 2px; transform: rotate(-20deg); animation: dau-stick 2s infinite alternate;
}
.scn-dogs-attack-ulysses .hide {
  position: absolute; bottom: 18%; left: 20%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #c49a6c 0%, #8b5e3c 100%);
  border-radius: 60% 40% 50% 50%; transform: rotate(-10deg);
  animation: dau-hide 1.8s ease-in-out infinite;
}
.scn-dogs-attack-ulysses .shadow {
  position: absolute; inset: 0;
  background: rgba(0,0,0,0); pointer-events: none;
}
.scn-dogs-attack-ulysses .shadow.sharp {
  background: linear-gradient(135deg, rgba(0,0,0,0.2) 0%, transparent 50%);
  animation: dau-shadow 4s ease-in-out infinite alternate;
}
@keyframes dau-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes dau-dog1 { 0% { transform: translateX(0) skewX(0deg); } 50% { transform: translateX(8px) skewX(-5deg); } 100% { transform: translateX(0) skewX(0deg); } }
@keyframes dau-dog2 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-8deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dau-ulysses { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes dau-stick { 0% { transform: rotate(-20deg) scaleX(1); } 100% { transform: rotate(-30deg) scaleX(1.2); } }
@keyframes dau-hide { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes dau-shadow { 0% { opacity: 0.5; } 100% { opacity: 0.8; } }

.scn-eumaeus-welcomes {
  background:
    linear-gradient(180deg, #f5deb3 0%, #deb887 30%, #b8860b 60%, #5c4033 100%),
    radial-gradient(ellipse at 60% 80%, #ffd700 0%, transparent 70%);
}
.scn-eumaeus-welcomes .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, #d2b48c 0%, #c4a882 100%);
}
.scn-eumaeus-welcomes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #8b5e3c 0%, #a07050 100%);
}
.scn-eumaeus-welcomes .rug {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 8%;
  background: radial-gradient(ellipse, #cd853f 0%, #8b4513 70%);
  border-radius: 30%; animation: euw-rug 6s ease-in-out infinite alternate;
}
.scn-eumaeus-welcomes .bed {
  position: absolute; bottom: 15%; left: 55%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #e8cfa0 0%, #c49860 100%);
  border-radius: 20% 20% 50% 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-eumaeus-welcomes .eumaeus,
.scn-eumaeus-welcomes .ulysses {
  position: absolute; bottom: 18%; height: 50px; width: 30px;
  background: linear-gradient(180deg, #8b7355 0%, #5c4033 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-eumaeus-welcomes .eumaeus {
  left: 45%; transform: scaleX(-1); animation: euw-eumaeus 4s ease-in-out infinite;
}
.scn-eumaeus-welcomes .ulysses {
  left: 30%; animation: euw-ulysses 5s ease-in-out infinite;
}
.scn-eumaeus-welcomes .door-light {
  position: absolute; top: 20%; right: 10%; width: 40px; height: 60px;
  background: linear-gradient(135deg, #ffd700, #f0c890 40%, transparent 70%);
  border-radius: 10%; filter: blur(2px); opacity: 0.7;
  animation: euw-doorlight 3s ease-in-out infinite alternate;
}
@keyframes euw-rug { 0% { transform: scaleX(0.95); } 100% { transform: scaleX(1.05); } }
@keyframes euw-eumaeus { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-2px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes euw-ulysses { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes euw-doorlight { 0% { opacity: 0.5; transform: scale(1); } 100% { opacity: 0.9; transform: scale(1.1); } }

.scn-eumaeus-serves-pork {
  background:
    linear-gradient(180deg, #1c1c3c 0%, #2a1a1a 50%, #4a2a1a 80%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 70%, #ff4500 0%, transparent 50%);
}
.scn-eumaeus-serves-pork .night-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #0d0d2b 0%, #1a1a3a 100%);
  animation: esp-sky 12s ease-in-out infinite alternate;
}
.scn-eumaeus-serves-pork .fire-pit {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, #654321 0%, #2a1a0a 100%);
  border-radius: 50%;
}
.scn-eumaeus-serves-pork .fire.flames {
  position: absolute; bottom: 22%; left: 42%; width: 40px; height: 40px;
  background: radial-gradient(ellipse, #ff6600 0%, #ff3300 40%, #cc2200 70%, transparent 100%);
  filter: blur(2px); animation: esp-fire 0.8s ease-in-out infinite alternate;
}
.scn-eumaeus-serves-pork .spit {
  position: absolute; bottom: 30%; left: 38%; width: 80px; height: 4px;
  background: linear-gradient(90deg, #5c4033 0%, #8b5e3c 100%);
  border-radius: 2px; transform: rotate(-5deg);
}
.scn-eumaeus-serves-pork .pig-1,
.scn-eumaeus-serves-pork .pig-2 {
  position: absolute; bottom: 30%; width: 20px; height: 15px;
  background: linear-gradient(180deg, #d2691e 0%, #a0522d 100%);
  border-radius: 50% 50% 40% 40%; 
}
.scn-eumaeus-serves-pork .pig-1 { left: 40%; animation: esp-pig1 3s ease-in-out infinite; }
.scn-eumaeus-serves-pork .pig-2 { left: 50%; animation: esp-pig2 3.5s ease-in-out infinite; }
.scn-eumaeus-serves-pork .eumaeus {
  position: absolute; bottom: 25%; left: 55%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #8b7355 0%, #5c4033 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: esp-eumaeus 2s ease-in-out infinite;
}
.scn-eumaeus-serves-pork .wall-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 40%);
  animation: esp-shadow 5s ease-in-out infinite alternate;
}
@keyframes esp-sky { 0% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes esp-fire { 0% { transform: scaleY(0.9) rotate(-3deg); opacity: 0.8; } 50% { transform: scaleY(1.1) rotate(3deg); opacity: 1; } 100% { transform: scaleY(0.95) rotate(-2deg); opacity: 0.9; } }
@keyframes esp-pig1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes esp-pig2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes esp-eumaeus { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes esp-shadow { 0% { opacity: 0.6; } 100% { opacity: 0.9; } }

.scn-ulysses-asks-about-master {
  background:
    linear-gradient(180deg, #3a1a0a 0%, #4a2a1a 40%, #5a3a2a 70%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 80%, #ff6600 0%, transparent 60%);
}
.scn-ulysses-asks-about-master .hut-wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5c4033 0%, #4a3020 100%);
}
.scn-ulysses-asks-about-master .floor.mat {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #3a1a0a 0%, #5a3a2a 40%, #7a5a3a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-ulysses-asks-about-master .fire-low {
  position: absolute; bottom: 20%; left: 45%; width: 50px; height: 30px;
  background: radial-gradient(ellipse, #ff4500 0%, #cc3300 50%, transparent 80%);
  filter: blur(3px); animation: uam-fire 4s ease-in-out infinite alternate;
}
.scn-ulysses-asks-about-master .ulysses,
.scn-ulysses-asks-about-master .eumaeus {
  position: absolute; bottom: 25%; height: 50px; width: 30px;
  background: linear-gradient(180deg, #8b7355 0%, #5c4033 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-ulysses-asks-about-master .ulysses {
  left: 35%; animation: uam-ulysses 6s ease-in-out infinite;
}
.scn-ulysses-asks-about-master .eumaeus {
  left: 50%; transform: scaleX(-1); animation: uam-eumaeus 5s ease-in-out infinite;
}
.scn-ulysses-asks-about-master .bowl {
  position: absolute; bottom: 28%; left: 42%; width: 20px; height: 12px;
  background: radial-gradient(ellipse, #d2691e 0%, #8b4513 100%);
  border-radius: 50% 50% 30% 30%; animation: uam-bowl 4s ease-in-out infinite;
}
.scn-ulysses-asks-about-master .wine-splash {
  position: absolute; bottom: 30%; left: 43%; width: 8px; height: 8px;
  background: radial-gradient(circle, #722f37 0%, transparent 70%);
  border-radius: 50%; filter: blur(2px); animation: uam-wine 7s ease-in-out infinite alternate;
}
@keyframes uam-fire { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes uam-ulysses { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes uam-eumaeus { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-1px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes uam-bowl { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(0.95); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes uam-wine { 0% { opacity: 0.2; transform: translateY(0); } 50% { opacity: 0.6; transform: translateY(-5px); } 100% { opacity: 0.3; transform: translateY(-2px); } }

/* scene 1: ulysses-wakes-on-ithaca */
.scn-ulysses-wakes-on-ithaca {
  background: 
    linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 40%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 0%, #6a6a7a 0%, transparent 60%);
}
.scn-ulysses-wakes-on-ithaca .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 60%, transparent 100%);
  animation: uw-sky 16s ease-in-out infinite alternate;
}
.scn-ulysses-wakes-on-ithaca .sea {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  animation: uw-sea 12s ease-in-out infinite;
}
.scn-ulysses-wakes-on-ithaca .fog-front {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, rgba(180,180,190,0.25) 0%, transparent 70%);
  filter: blur(8px);
  animation: uw-fog 20s ease-in-out infinite alternate;
}
.scn-ulysses-wakes-on-ithaca .fog-back {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,200,210,0.15) 0%, transparent 60%);
  filter: blur(12px);
  animation: uw-fog 30s ease-in-out infinite alternate-reverse;
}
.scn-ulysses-wakes-on-ithaca .rocks {
  position: absolute; bottom: 28%; left: 10%; width: 40%; height: 12%;
  background: linear-gradient(135deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 40% 60% 10% 10% / 70% 50% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.6);
  animation: uw-rocks 8s ease-in-out infinite alternate;
}
.scn-ulysses-wakes-on-ithaca .figure {
  position: absolute; bottom: 26%; left: 35%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uw-figure 6s ease-in-out infinite;
}
.scn-ulysses-wakes-on-ithaca .treasure {
  position: absolute; bottom: 24%; right: 20%; width: 14px; height: 10px;
  background: radial-gradient(circle at 50% 50%, #a08050 0%, #604020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 6px 2px rgba(160,128,80,0.3);
  animation: uw-treasure 10s ease-in-out infinite;
}
@keyframes uw-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes uw-sea { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.98); } }
@keyframes uw-fog { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.05); } 100% { opacity: 0.2; transform: scale(0.95); } }
@keyframes uw-rocks { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(2px) rotate(1deg); } }
@keyframes uw-figure { 0%,100% { transform: translateY(0) rotate(-2deg); } 33% { transform: translateY(-3px) rotate(1deg); } 66% { transform: translateY(1px) rotate(0); } }
@keyframes uw-treasure { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }

/* scene 2: ulysses-laments */
.scn-ulysses-laments {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 50%, #050510 100%),
    radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, transparent 70%);
}
.scn-ulysses-laments .bg-mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, rgba(100,100,120,0.15) 0%, transparent 60%);
  filter: blur(10px);
  animation: ul-mist 25s ease-in-out infinite alternate;
}
.scn-ulysses-laments .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1a1a 0%, #2a2a2a 50%, #3a3a3a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
}
.scn-ulysses-laments .figure-kneeling {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ul-kneel 7s ease-in-out infinite;
}
.scn-ulysses-laments .cauldron-1 {
  position: absolute; bottom: 14%; left: 30%; width: 24px; height: 18px;
  background: radial-gradient(ellipse at 50% 30%, #6a5a3a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ul-cauldron 12s ease-in-out infinite alternate;
}
.scn-ulysses-laments .cauldron-2 {
  position: absolute; bottom: 16%; right: 25%; width: 20px; height: 15px;
  background: radial-gradient(ellipse at 50% 30%, #5a4a2a 0%, #1a1000 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ul-cauldron 15s ease-in-out infinite alternate-reverse;
}
.scn-ulysses-laments .gold-sparkle {
  position: absolute; bottom: 22%; left: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d4b060 0%, #b09040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(212,176,96,0.4);
  animation: ul-sparkle 4s ease-in-out infinite;
}
.scn-ulysses-laments .shadow-vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 50%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
  animation: ul-vignette 10s ease-in-out infinite alternate;
}
@keyframes ul-mist { 0%,100% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.4; transform: scale(1.03); } }
@keyframes ul-kneel { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-3deg); } 33% { transform: translateX(-50%) translateY(-4px) rotate(2deg); } 66% { transform: translateX(-50%) translateY(2px) rotate(-1deg); } }
@keyframes ul-cauldron { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.97); } }
@keyframes ul-sparkle { 0%,100% { opacity: 0.3; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } }
@keyframes ul-vignette { 0% { opacity: 0.7; } 100% { opacity: 0.5; } }

/* scene 3: minerva-appears */
.scn-minerva-appears {
  background: 
    linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 60%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 0%, #7a7a8a 0%, transparent 50%);
}
.scn-minerva-appears .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 40%, transparent 100%);
  animation: ma-sky 18s ease-in-out infinite alternate;
}
.scn-minerva-appears .sea {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 70%, #1a1a2a 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
  animation: ma-sea 14s ease-in-out infinite;
}
.scn-minerva-appears .shore {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 15%;
  background: linear-gradient(135deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
}
.scn-minerva-appears .figure-ulysses {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ma-ulysses 8s ease-in-out infinite;
}
.scn-minerva-appears .figure-minerva {
  position: absolute; bottom: 19%; right: 30%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: ma-minerva 10s ease-in-out infinite;
}
.scn-minerva-appears .mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(200,200,210,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: ma-mist 22s ease-in-out infinite alternate;
}
@keyframes ma-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes ma-sea { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ma-ulysses { 0%,100% { transform: translateY(0) rotate(-1deg); } 33% { transform: translateY(-4px) rotate(2deg); } 66% { transform: translateY(2px) rotate(-2deg); } }
@keyframes ma-minerva { 0%,100% { transform: translateY(0) translateX(0); } 25% { transform: translateY(-5px) translateX(3px); } 50% { transform: translateY(0) translateX(0); } 75% { transform: translateY(-3px) translateX(-2px); } }
@keyframes ma-mist { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.4; transform: scale(1.04); } 100% { opacity: 0.1; transform: scale(0.96); } }

/* scene 4: minerva-reveals-ithaca */
.scn-minerva-reveals-ithaca {
  background: 
    linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 30%, #3a3a4a 60%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 20%, #6a6a7a 0%, transparent 60%);
}
.scn-minerva-reveals-ithaca .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #6a6a7a 50%, transparent);
  opacity: 0.4;
  animation: mr-horizon 8s ease-in-out infinite alternate;
}
.scn-minerva-reveals-ithaca .land {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(135deg, #4a4a3a 0%, #3a3a2a 40%, #2a2a1a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-minerva-reveals-ithaca .sky-gradient {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 50%, transparent 100%);
  animation: mr-sky 20s ease-in-out infinite alternate;
}
.scn-minerva-reveals-ithaca .figure-minerva-reveal {
  position: absolute; bottom: 22%; left: 60%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: mr-minerva 12s ease-in-out infinite;
}
.scn-minerva-reveals-ithaca .figure-ulysses-listening {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-ulysses 9s ease-in-out infinite;
}
.scn-minerva-reveals-ithaca .olive-branch {
  position: absolute; bottom: 28%; left: 55%; width: 10px; height: 6px;
  background: radial-gradient(ellipse at 50% 50%, #6a7a3a 0%, #3a4a1a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 8px 2px rgba(106,122,58,0.3);
  animation: mr-olive 6s ease-in-out infinite alternate;
}
@keyframes mr-horizon { 0%,100% { opacity: 0.3; } 50% { opacity: 0.5; } }
@keyframes mr-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes mr-minerva { 0%,100% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-5px) rotate(3deg); } 66% { transform: translateY(2px) rotate(-2deg); } }
@keyframes mr-ulysses { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes mr-olive { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(0.9); } }

/* footnote-niggardly-pay */
.scn-footnote-niggardly-pay {
  background: linear-gradient(180deg, #2a1e14 0%, #3a2a1a 50%, #1a1208 100%),
              radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-footnote-niggardly-pay .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e14 100%); }
.scn-footnote-niggardly-pay .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1208 0%, #0d0a04 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-footnote-niggardly-pay .table { position:absolute; bottom:20%; left:50%; width:140px; height:6px; transform:translateX(-50%); background: linear-gradient(90deg, #5a3a1a, #7a4a2a, #5a3a1a); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-footnote-niggardly-pay .coin { position:absolute; bottom:22%; width:12px; height:12px; background: radial-gradient(circle at 30% 30%, #d4a060, #b08030); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-footnote-niggardly-pay .coin-1 { left:38%; animation: np-coin 5s ease-in-out infinite; }
.scn-footnote-niggardly-pay .coin-2 { left:55%; animation: np-coin 5s ease-in-out infinite reverse; }
.scn-footnote-niggardly-pay .hand { position:absolute; bottom:20%; left:45%; width:20px; height:30px; background: linear-gradient(180deg, #8a6a4a, #5a3a1a); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: np-hand 4s ease-in-out infinite; }
.scn-footnote-niggardly-pay .lamp { position:absolute; bottom:30%; left:30%; width:8px; height:14px; background: linear-gradient(180deg, #b08040, #6a4a20); border-radius:4px 4px 2px 2px; box-shadow: 0 0 16px 6px rgba(180,120,60,.5); animation: np-lamp 3s ease-in-out infinite alternate; }
.scn-footnote-niggardly-pay .dust { position:absolute; width:4px; height:4px; background: rgba(200,180,140,.3); border-radius:50%; filter: blur(1px); }
.scn-footnote-niggardly-pay .dust-1 { top:40%; left:20%; animation: np-dust 12s linear infinite; }
.scn-footnote-niggardly-pay .dust-2 { top:55%; left:70%; animation: np-dust 15s linear infinite reverse; }

@keyframes np-coin {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(15deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes np-hand {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(5deg); }
  50% { transform: translateX(12px) rotate(0deg); }
  75% { transform: translateX(8px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes np-lamp {
  0% { box-shadow: 0 0 12px 4px rgba(180,120,60,.4); opacity:.8; }
  50% { box-shadow: 0 0 20px 8px rgba(180,120,60,.6); opacity:1; }
  100% { box-shadow: 0 0 14px 5px rgba(180,120,60,.45); opacity:.85; }
}
@keyframes np-dust {
  0% { transform: translate(0,0) scale(0.8); opacity:0.3; }
  50% { transform: translate(30px,-20px) scale(1.2); opacity:0.6; }
  100% { transform: translate(60px,-40px) scale(0.8); opacity:0; }
}

/* footnote-corrupt-text */
.scn-footnote-corrupt-text {
  background: linear-gradient(180deg, #1e1812 0%, #2a2018 50%, #14100a 100%),
              radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-footnote-corrupt-text .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2018 0%, #1e1812 100%); }
.scn-footnote-corrupt-text .desk { position:absolute; bottom:25%; left:10%; right:10%; height:6px; background: linear-gradient(90deg, #4a3220, #6a4a2a, #4a3220); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-footnote-corrupt-text .scroll { position:absolute; bottom:30%; left:30%; width:80px; height:50px; background: linear-gradient(180deg, #e8d8b0, #c8b090); border-radius:4px 4px 20px 20px; transform: rotate(-3deg); box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: ct-scroll 8s ease-in-out infinite; }
.scn-footnote-corrupt-text .candle { position:absolute; bottom:35%; left:22%; width:6px; height:20px; background: linear-gradient(180deg, #e0d0b0, #a08060); border-radius:2px; box-shadow: 0 0 6px 2px rgba(255,200,100,.3); }
.scn-footnote-corrupt-text .flame { position:absolute; bottom:53%; left:22%; width:8px; height:12px; background: radial-gradient(ellipse at 50% 80%, #ffd060 0%, #ffa020 50%, transparent 100%); border-radius:50%; animation: ct-flame 1.5s ease-in-out infinite alternate; }
.scn-footnote-corrupt-text .inkpot { position:absolute; bottom:28%; left:55%; width:14px; height:16px; background: linear-gradient(180deg, #2a1a10, #0d0804); border-radius:30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-footnote-corrupt-text .blot { position:absolute; bottom:29%; left:48%; width:10px; height:8px; background: radial-gradient(circle, #1a0e06, #0d0602); border-radius:50%; opacity:0.7; animation: ct-blot 6s ease-in-out infinite; }
@keyframes ct-scroll {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes ct-flame {
  0% { transform: scaleY(1) translateY(0); opacity:0.9; }
  25% { transform: scaleY(1.1) translateY(-1px); opacity:1; }
  50% { transform: scaleY(0.95) translateY(1px); opacity:0.85; }
  75% { transform: scaleY(1.05) translateY(-1px); opacity:0.95; }
  100% { transform: scaleY(1) translateY(0); opacity:0.9; }
}
@keyframes ct-blot {
  0% { opacity:0.5; transform: scale(0.9); }
  50% { opacity:0.8; transform: scale(1.1); }
  100% { opacity:0.5; transform: scale(0.9); }
}

/* footnote-afternoon-exaggeration */
.scn-footnote-afternoon-exaggeration {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 20%, #4a4a5a 0%, transparent 60%);
}
.scn-footnote-afternoon-exaggeration .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-footnote-afternoon-exaggeration .window { position:absolute; top:15%; left:35%; width:80px; height:100px; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border:4px solid #2a2a3a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.4); animation: ae-window 10s ease-in-out infinite; }
.scn-footnote-afternoon-exaggeration .shadow-clock { position:absolute; top:45%; left:40%; width:30px; height:30px; background: radial-gradient(circle, #4a4a5a 0%, #2a2a3a 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(0,0,0,.3); animation: ae-clock 6s ease-in-out infinite; }
.scn-footnote-afternoon-exaggeration .figure { position:absolute; bottom:25%; left:25%; width:18px; height:34px; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ae-figure 4s ease-in-out infinite; }
.scn-footnote-afternoon-exaggeration .chair { position:absolute; bottom:20%; left:22%; width:22px; height:28px; background: linear-gradient(180deg, #3a2a1a, #1a1208); border-radius:30% 30% 10% 10%; }
.scn-footnote-afternoon-exaggeration .book { position:absolute; bottom:24%; left:46%; width:14px; height:20px; background: linear-gradient(180deg, #5a3a2a, #2a1a0e); border-radius:2px; transform: rotate(10deg); animation: ae-book 8s ease-in-out infinite; }
@keyframes ae-window {
  0% { opacity:0.7; box-shadow: inset 0 0 20px rgba(0,0,0,.4); }
  50% { opacity:0.9; box-shadow: inset 0 0 30px rgba(80,80,100,.3); }
  100% { opacity:0.7; box-shadow: inset 0 0 20px rgba(0,0,0,.4); }
}
@keyframes ae-clock {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(15deg) scale(0.95); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes ae-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ae-book {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(10deg) translateY(0); }
}

/* footnote-torches */
.scn-footnote-torches {
  background: linear-gradient(180deg, #0a0a12 0%, #1a1a24 40%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, transparent 70%);
}
.scn-footnote-torches .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a12 0%, #1a1a24 100%); }
.scn-footnote-torches .courtyard-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a24 0%, #0a0a12 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-footnote-torches .cloister { position:absolute; bottom:30%; left:8%; right:8%; height:30px; background: linear-gradient(90deg, #2a2a3a, #1a1a24, #2a2a3a); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-footnote-torches .torch { position:absolute; bottom:34%; width:8px; height:30px; background: linear-gradient(180deg, #5a3a1a, #3a2a0a); border-radius:2px; }
.scn-footnote-torches .torch-1 { left:20%; animation: to-torch 2s ease-in-out infinite; }
.scn-footnote-torches .torch-2 { left:50%; animation: to-torch 2.5s ease-in-out infinite reverse; }
.scn-footnote-torches .torch-3 { left:75%; animation: to-torch 3s ease-in-out infinite; }
.scn-footnote-torches .maid { position:absolute; bottom:30%; width:12px; height:40px; background: linear-gradient(180deg, #2a2a3a, #0a0a12); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; }
.scn-footnote-torches .maid-1 { left:18%; animation: to-maid 6s ease-in-out infinite; }
.scn-footnote-torches .maid-2 { left:72%; animation: to-maid 6s ease-in-out infinite reverse; }
.scn-footnote-torches .light-beam { position:absolute; top:20%; left:18%; width:12%; height:60%; background: linear-gradient(180deg, rgba(255,180,60,.15) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: to-beam 4s ease-in-out infinite alternate; }
@keyframes to-torch {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes to-maid {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes to-beam {
  0% { opacity:0.5; transform: skewX(2deg); }
  50% { opacity:0.8; transform: skewX(-2deg); }
  100% { opacity:0.5; transform: skewX(2deg); }
}

/* footnote-iliad-reference */
.scn-footnote-iliad-reference { background: linear-gradient(180deg, #2a1e14 0%, #3a281c 40%, #4a3424 100%), radial-gradient(ellipse at 30% 80%, #4a3424 0%, transparent 70%); }
.scn-footnote-iliad-reference .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 22%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.4); }
.scn-footnote-iliad-reference .wall { position: absolute; inset: 0 0 22% 0; background: linear-gradient(0deg, #3a281c 0%, #2a1e14 100%); }
.scn-footnote-iliad-reference .window { position: absolute; top: 15%; left: 55%; width: 40px; height: 50px; background: radial-gradient(circle at 50% 30%, #d4a060 0%, #b08030 70%); border: 4px solid #5a3a1a; border-radius: 8% 8% 12% 12%; box-shadow: inset 0 0 20px 6px #d4a060, 0 0 30px 8px rgba(212,160,96,0.3); animation: ir-glow 6s ease-in-out infinite alternate; }
.scn-footnote-iliad-reference .woman { position: absolute; bottom: 22%; left: 30%; width: 22px; height: 60px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ir-figure 8s ease-in-out infinite; }
.scn-footnote-iliad-reference .child { position: absolute; bottom: 22%; left: 50%; width: 14px; height: 30px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ir-child 9s ease-in-out infinite alternate; }
.scn-footnote-iliad-reference .lamp { position: absolute; bottom: 35%; left: 20%; width: 10px; height: 14px; background: radial-gradient(circle, #f0c070 0%, #c08030 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 24px 6px #c08030, 0 0 60px 15px rgba(192,128,48,0.4); animation: ir-lamp 4s ease-in-out infinite alternate; }
.scn-footnote-iliad-reference .shadow { position: absolute; bottom: 22%; left: 60%; width: 30px; height: 40px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%); animation: ir-shadow 7s ease-in-out infinite alternate; }
@keyframes ir-glow { 0%,100% { opacity: 0.8; box-shadow: inset 0 0 20px 6px #d4a060, 0 0 30px 8px rgba(212,160,96,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 30px 10px #e8b070, 0 0 60px 15px rgba(232,176,112,0.5); } }
@keyframes ir-figure { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes ir-child { 0%,100% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(3px) scaleY(1.02); } }
@keyframes ir-lamp { 0%,100% { transform: rotate(-3deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.05); } }
@keyframes ir-shadow { 0%,100% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.1); } }

/* footnote-megaron-skioenta */
.scn-footnote-megaron-skioenta { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 50%, #3a3a4e 100%), radial-gradient(ellipse at 40% 60%, #3a3a4e 0%, transparent 70%); }
.scn-footnote-megaron-skioenta .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.6); }
.scn-footnote-megaron-skioenta .colonnade { position: absolute; bottom: 18%; left: 10%; right: 10%; height: 40%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 8px, transparent 8px, transparent 24px); border-radius: 0 0 20% 20%; mask-image: linear-gradient(0deg, #000 0%, #000 50%, transparent 100%); animation: ms-colonnade 20s ease-in-out infinite alternate; }
.scn-footnote-megaron-skioenta .roof { position: absolute; top: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #2a1e14 0%, #3a2a1a 80%); clip-path: polygon(0% 100%, 15% 0%, 85% 0%, 100% 100%); box-shadow: 0 6px 20px rgba(0,0,0,0.5); }
.scn-footnote-megaron-skioenta .table { position: absolute; bottom: 18%; left: 30%; width: 60px; height: 14px; background: linear-gradient(0deg, #4a2a1a 0%, #6a3a2a 100%); border-radius: 6px; transform-origin: center bottom; animation: ms-table 15s ease-in-out infinite alternate; }
.scn-footnote-megaron-skioenta .cup { position: absolute; bottom: 25%; left: 40%; width: 10px; height: 14px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 6px 2px rgba(138,106,74,0.3); animation: ms-cup 10s ease-in-out infinite alternate; }
.scn-footnote-megaron-skioenta .lamp { position: absolute; bottom: 30%; left: 18%; width: 8px; height: 12px; background: radial-gradient(circle, #f0c060 0%, #b08030 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 6px #b08030, 0 0 60px 12px rgba(176,128,48,0.3); animation: ms-lamp 5s ease-in-out infinite alternate; }
.scn-footnote-megaron-skioenta .pillar-shadow { position: absolute; bottom: 18%; left: 50%; width: 10px; height: 50%; background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 100%); transform-origin: bottom; animation: ms-pillar 25s ease-in-out infinite alternate; }
@keyframes ms-colonnade { 0%,100% { opacity: 0.6; } 50% { opacity: 1; } }
@keyframes ms-table { 0%,100% { transform: rotate(0); } 50% { transform: rotate(2deg); } }
@keyframes ms-cup { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ms-lamp { 0%,100% { opacity: 0.6; box-shadow: 0 0 30px 6px #b08030; } 50% { opacity: 1; box-shadow: 0 0 50px 12px #d09040; } }
@keyframes ms-pillar { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.2); opacity: 0.4; } }

/* footnote-door-bolt */
.scn-footnote-door-bolt { background: linear-gradient(180deg, #1a1220 0%, #2a1a30 40%, #3a2a40 100%), radial-gradient(ellipse at 50% 40%, #3a2a40 0%, transparent 70%); }
.scn-footnote-door-bolt .door-panel { position: absolute; bottom: 0; left: 20%; right: 20%; height: 85%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 6px 6px 0 0; box-shadow: 0 0 20px rgba(0,0,0,0.6), inset 0 6px 12px rgba(0,0,0,0.3); border: 3px solid #2a1a0a; }
.scn-footnote-door-bolt .bolt { position: absolute; bottom: 45%; left: 40%; width: 16px; height: 6px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: db-bolt 6s ease-in-out infinite alternate; }
.scn-footnote-door-bolt .slot { position: absolute; bottom: 45%; left: 38%; width: 8px; height: 10px; background: #1a0a00; border-radius: 10%; box-shadow: inset 0 0 4px #000; }
.scn-footnote-door-bolt .wall { position: absolute; top: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #2a1a20 0%, #1a1220 100%); }
.scn-footnote-door-bolt .floor-strip { position: absolute; bottom: 0; left: 0; right: 0; height: 4%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); box-shadow: 0 -2px 6px rgba(0,0,0,0.4); }
.scn-footnote-door-bolt .handle { position: absolute; bottom: 35%; left: 30%; width: 12px; height: 20px; background: radial-gradient(circle at 50% 30%, #c0a060 0%, #8a6a3a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 8px #8a6a3a; animation: db-handle 8s ease-in-out infinite alternate; }
.scn-footnote-door-bolt .shadow { position: absolute; bottom: 0; right: 30%; width: 30px; height: 60%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); transform-origin: bottom; animation: db-shadow 12s ease-in-out infinite alternate; }
@keyframes db-bolt { 0%,100% { transform: translateX(0); } 50% { transform: translateX(6px); opacity: 0.7; } }
@keyframes db-handle { 0%,100% { transform: rotate(0); } 50% { transform: rotate(5deg); } }
@keyframes db-shadow { 0%,100% { opacity: 0.5; } 50% { opacity: 0.8; } }

/* footnote-cooking-his-goose */
.scn-footnote-cooking-his-goose { background: linear-gradient(180deg, #1a0a00 0%, #2a1408 30%, #3a1c10 100%), radial-gradient(ellipse at 50% 100%, #3a1c10 0%, transparent 70%); }
.scn-footnote-cooking-his-goose .hearth { position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); }
.scn-footnote-cooking-his-goose .pot { position: absolute; bottom: 15%; left: 30%; width: 30px; height: 20px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.4); animation: cg-pot 10s ease-in-out infinite alternate; }
.scn-footnote-cooking-his-goose .goose { position: absolute; bottom: 20%; left: 35%; width: 24px; height: 16px; background: radial-gradient(circle at 50% 60%, #a08060 0%, #6a4a2a 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: cg-goose 12s ease-in-out infinite; }
.scn-footnote-cooking-his-goose .chef { position: absolute; bottom: 10%; left: 50%; width: 20px; height: 50px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cg-chef 8s ease-in-out infinite alternate; }
.scn-footnote-cooking-his-goose .table { position: absolute; bottom: 10%; left: 50%; width: 40px; height: 8px; background: linear-gradient(0deg, #4a2a1a 0%, #6a3a2a 100%); border-radius: 4px; transform: translateX(-50%); }
.scn-footnote-cooking-his-goose .fire-glow { position: absolute; bottom: 15%; left: 25%; width: 40px; height: 40px; background: radial-gradient(circle, #f0a050 0%, #c06020 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px #c06020; animation: cg-fire 4s ease-in-out infinite alternate; }
.scn-footnote-cooking-his-goose .wall { position: absolute; top: 0; left: 0; right: 0; height: 70%; background: linear-gradient(180deg, #1a0a00 0%, #2a1408 100%); }
@keyframes cg-pot { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes cg-goose { 0%,100% { transform: rotate(0); } 25% { transform: rotate(5deg); } 50% { transform: rotate(0); } 75% { transform: rotate(-5deg); } }
@keyframes cg-chef { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(8px) rotate(2deg); } }
@keyframes cg-fire { 0%,100% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } }

/* eumaeus-doubts */
.scn-eumaeus-doubts {
  background: linear-gradient(180deg, #2a1b0e 0%, #3d2816 40%, #1a0f06 100%),
              radial-gradient(ellipse at 50% 100%, #4a2a10 0%, transparent 70%);
}
.scn-eumaeus-doubts .hut-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-bottom: 4px solid #1a0f06;
  animation: eu-wall 12s ease-in-out infinite alternate;
}
.scn-eumaeus-doubts .hut-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
}
.scn-eumaeus-doubts .fire-glow {
  position: absolute; bottom: 30%; left: 50%; width: 60%; height: 50%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #c06030 0%, transparent 70%);
  opacity: .6;
  animation: eu-glow 3s ease-in-out infinite alternate;
}
.scn-eumaeus-doubts .fire-flames {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #ffa040 0%, #e06020 40%, transparent 70%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  animation: eu-flame 1.5s ease-in-out infinite alternate;
}
.scn-eumaeus-doubts .figure-left {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a100a 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eu-fig-left 6s ease-in-out infinite;
}
.scn-eumaeus-doubts .figure-right {
  position: absolute; bottom: 25%; right: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a100a 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eu-fig-right 8s ease-in-out infinite;
}
.scn-eumaeus-doubts .shadow-cast {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  animation: eu-shadow 4s ease-in-out infinite alternate;
}
@keyframes eu-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes eu-glow { 0% { opacity: .5; transform: translateX(-50%) scale(1) } 50% { opacity: .7; transform: translateX(-50%) scale(1.02) } 100% { opacity: .55; transform: translateX(-50%) scale(.98) } }
@keyframes eu-flame { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.2) scaleX(.9) } 100% { transform: translateX(-50%) scaleY(1.05) } }
@keyframes eu-fig-left { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes eu-fig-right { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(4px) rotate(1deg) } 66% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes eu-shadow { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }

/* bargain-proposed */
.scn-bargain-proposed {
  background: linear-gradient(180deg, #2a1b0e 0%, #3d2816 50%, #1a0f06 100%),
              radial-gradient(ellipse at 50% 100%, #4a2a10 0%, transparent 60%);
}
.scn-bargain-proposed .hut-wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-bottom: 4px solid #1a0f06; animation: ba-wall 10s ease-in-out infinite alternate; }
.scn-bargain-proposed .hut-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-bargain-proposed .fire-glow { position: absolute; bottom: 30%; left: 50%; width: 60%; height: 50%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #c06030 0%, transparent 70%); opacity: .6; animation: ba-glow 3s ease-in-out infinite alternate; }
.scn-bargain-proposed .fire-flames { position: absolute; bottom: 28%; left: 50%; width: 20px; height: 30px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #ffa040 0%, #e06020 40%, transparent 70%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; animation: ba-flame 1.8s ease-in-out infinite alternate; }
.scn-bargain-proposed .figure-left { position: absolute; bottom: 25%; left: 28%; width: 40px; height: 70px; background: linear-gradient(180deg, #1a100a 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ba-fig-left 5s ease-in-out infinite; }
.scn-bargain-proposed .figure-right { position: absolute; bottom: 25%; right: 28%; width: 40px; height: 70px; background: linear-gradient(180deg, #1a100a 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ba-fig-right 7s ease-in-out infinite; }
.scn-bargain-proposed .figure-hand { position: absolute; bottom: 40%; left: 50%; width: 18px; height: 24px; transform: translateX(-50%); background: linear-gradient(135deg, #1a100a 0%, #0a0604 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ba-hand 4s ease-in-out infinite; }
.scn-bargain-proposed .shadow-cast { position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); animation: ba-shadow 5s ease-in-out infinite alternate; }
@keyframes ba-wall { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes ba-glow { 0% { opacity: .5; transform: translateX(-50%) scale(1) } 50% { opacity: .65; transform: translateX(-50%) scale(1.03) } 100% { opacity: .55; transform: translateX(-50%) scale(.97) } }
@keyframes ba-flame { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.3) scaleX(.85) } 100% { transform: translateX(-50%) scaleY(1.05) } }
@keyframes ba-fig-left { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-2px) rotate(-1deg) } 60% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ba-fig-right { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ba-hand { 0% { transform: translateX(-50%) rotate(0) } 33% { transform: translateX(-50%) rotate(-10deg) translateY(-2px) } 66% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes ba-shadow { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .35 } }

/* supper-prepared */
.scn-supper-prepared {
  background: linear-gradient(180deg, #2a1b0e 0%, #3d2816 45%, #1a0f06 100%),
              radial-gradient(ellipse at 50% 100%, #5a3018 0%, transparent 65%);
}
.scn-supper-prepared .hut-wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-bottom: 4px solid #1a0f06; animation: sp-wall 15s ease-in-out infinite alternate; }
.scn-supper-prepared .hut-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-supper-prepared .fire-glow { position: absolute; bottom: 30%; left: 50%; width: 70%; height: 55%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #d07040 0%, transparent 70%); opacity: .7; animation: sp-glow 2.5s ease-in-out infinite alternate; }
.scn-supper-prepared .fire-flames { position: absolute; bottom: 28%; left: 50%; width: 25px; height: 35px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #ffa040 0%, #e06020 35%, transparent 65%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; animation: sp-flame 1.2s ease-in-out infinite alternate; }
.scn-supper-prepared .spit { position: absolute; bottom: 32%; left: 45%; width: 80px; height: 8px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; transform: rotate(-5deg); animation: sp-spit 4s ease-in-out infinite alternate; }
.scn-supper-prepared .pig-silhouette { position: absolute; bottom: 30%; left: 46%; width: 40px; height: 25px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a04 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: sp-pig 3s ease-in-out infinite alternate; }
.scn-supper-prepared .figure-swineherd { position: absolute; bottom: 25%; right: 20%; width: 38px; height: 65px; background: linear-gradient(180deg, #1a100a 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sp-swine 6s ease-in-out infinite; }
.scn-supper-prepared .shadow-cast { position: absolute; bottom: 20%; left: 15%; right: 15%; height: 35%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); animation: sp-shadow 4.5s ease-in-out infinite alternate; }
@keyframes sp-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes sp-glow { 0% { opacity: .6; transform: translateX(-50%) scale(1) } 50% { opacity: .8; transform: translateX(-50%) scale(1.05) } 100% { opacity: .65; transform: translateX(-50%) scale(.95) } }
@keyframes sp-flame { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.4) scaleX(.8) } 100% { transform: translateX(-50%) scaleY(1.1) } }
@keyframes sp-spit { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes sp-pig { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(-4deg) scale(1.03) translateY(-1px) } 100% { transform: rotate(-5deg) scale(1) } }
@keyframes sp-swine { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sp-shadow { 0% { opacity: .4 } 50% { opacity: .6 } 100% { opacity: .45 } }

/* supper-continues */
.scn-supper-continues {
  background: linear-gradient(180deg, #2a1b0e 0%, #3d2816 40%, #1a0f06 100%),
              radial-gradient(ellipse at 50% 100%, #5a3018 0%, transparent 60%);
}
.scn-supper-continues .hut-wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-bottom: 4px solid #1a0f06; animation: sc-wall 14s ease-in-out infinite alternate; }
.scn-supper-continues .hut-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-supper-continues .fire-glow { position: absolute; bottom: 30%; left: 50%; width: 65%; height: 50%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #d07040 0%, transparent 70%); opacity: .7; animation: sc-glow 3.5s ease-in-out infinite alternate; }
.scn-supper-continues .fire-flames { position: absolute; bottom: 28%; left: 50%; width: 22px; height: 32px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #ffa040 0%, #e06020 40%, transparent 70%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; animation: sc-flame 1.4s ease-in-out infinite alternate; }
.scn-supper-continues .table { position: absolute; bottom: 22%; left: 20%; right: 20%; height: 10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; animation: sc-table 5s ease-in-out infinite alternate; }
.scn-supper-continues .figure-eater { position: absolute; bottom: 25%; left: 35%; width: 42px; height: 72px; background: linear-gradient(180deg, #1a100a 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-eater 6s ease-in-out infinite; }
.scn-supper-continues .figure-sacrifice { position: absolute; bottom: 25%; right: 32%; width: 38px; height: 68px; background: linear-gradient(180deg, #1a100a 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-sacrifice 8s ease-in-out infinite; }
.scn-supper-continues .shadow-cast { position: absolute; bottom: 18%; left: 15%; right: 15%; height: 35%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); animation: sc-shadow 4s ease-in-out infinite alternate; }
@keyframes sc-wall { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes sc-glow { 0% { opacity: .6; transform: translateX(-50%) scale(1) } 50% { opacity: .75; transform: translateX(-50%) scale(1.04) } 100% { opacity: .65; transform: translateX(-50%) scale(.96) } }
@keyframes sc-flame { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.25) scaleX(.85) } 100% { transform: translateX(-50%) scaleY(1.1) } }
@keyframes sc-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sc-eater { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(2px) rotate(2deg) } 40% { transform: translateX(0) rotate(0) } 60% { transform: translateX(-2px) rotate(-2deg) } 80% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc-sacrifice { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(3deg) translateY(-1px) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc-shadow { 0% { opacity: .35 } 50% { opacity: .55 } 100% { opacity: .4 } }

/* Scene: ulysses-weeps */
.scn-ulysses-weeps {
  background: linear-gradient(180deg, #e8c8a0 0%, #c8a070 40%, #a07850 100%), radial-gradient(ellipse at 60% 40%, #e0b080 0%, transparent 70%);
}
.scn-ulysses-weeps .wall    { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #d4b48c 0%, #c8a070 50%, #b89060 100%); animation: uw-wall 12s ease-in-out infinite alternate; }
.scn-ulysses-weeps .window  { position:absolute; top:5%; left:30%; width:40%; height:30%; background: radial-gradient(ellipse at 50% 30%, #ffe0c0 0%, #d4b48c 70%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 40px 20px rgba(255,224,192,0.5); animation: uw-window 6s ease-in-out infinite alternate; }
.scn-ulysses-weeps .bench   { position:absolute; bottom:20%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 8% 8% 4% 4%; transform: perspective(400px) rotateX(5deg); animation: uw-bench 9s ease-in-out infinite; }
.scn-ulysses-weeps .figure  { position:absolute; bottom:20%; left:38%; width:16%; height:55%; background: linear-gradient(180deg, #2a1a1a 0%, #4a2a2a 40%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: uw-figure 6s ease-in-out infinite alternate; }
.scn-ulysses-weeps .mantle  { position:absolute; bottom:22%; left:36%; width:20%; height:50%; background: linear-gradient(180deg, #4a3060 0%, #6a4060 50%, #3a2040 100%); border-radius: 20% 50% 60% 40% / 30% 60% 40% 30%; transform-origin: 20% 80%; clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); animation: uw-mantle 8s ease-in-out infinite; }
.scn-ulysses-weeps .shadow  { position:absolute; bottom:15%; left:30%; width:40%; height:10%; background: radial-gradient(ellipse, rgba(50,30,10,0.6) 0%, transparent 70%); animation: uw-shadow 12s ease-in-out infinite alternate; }
.scn-ulysses-weeps .glow    { position:absolute; top:2%; left:25%; width:50%; height:40%; background: radial-gradient(ellipse at 50% 0%, rgba(255,224,192,0.3) 0%, transparent 70%); animation: uw-glow 6s ease-in-out infinite alternate; }
@keyframes uw-wall    { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes uw-window  { 0% { box-shadow: 0 0 30px 15px rgba(255,224,192,0.4); transform: scale(1); } 50% { box-shadow: 0 0 50px 25px rgba(255,224,192,0.7); transform: scale(1.02); } 100% { box-shadow: 0 0 35px 18px rgba(255,224,192,0.5); transform: scale(1); } }
@keyframes uw-bench   { 0% { transform: perspective(400px) rotateX(5deg) translateY(0); } 50% { transform: perspective(400px) rotateX(5deg) translateY(-2px); } 100% { transform: perspective(400px) rotateX(5deg) translateY(0); } }
@keyframes uw-figure  { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes uw-mantle  { 0% { transform: rotate(-2deg) skewX(2deg); } 50% { transform: rotate(2deg) skewX(-2deg); } 100% { transform: rotate(-1deg) skewX(1deg); } }
@keyframes uw-shadow  { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.1); opacity:0.7; } 100% { transform: scaleX(0.9); opacity:0.6; } }
@keyframes uw-glow    { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* Scene: athletic-games */
.scn-athletic-games {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 60%, #8fbc8f 100%), radial-gradient(ellipse at 70% 20%, #fff8dc 0%, transparent 50%);
}
.scn-athletic-games .sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); animation: ag-sky 20s ease-in-out infinite alternate; }
.scn-athletic-games .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8fbc8f 0%, #6b8e6b 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; animation: ag-ground 15s ease-in-out infinite alternate; }
.scn-athletic-games .sun    { position:absolute; top:10%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #fff8dc 0%, #f0e68c 50%, #ffd700 80%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,215,0,0.3); animation: ag-sun 12s ease-in-out infinite alternate; }
.scn-athletic-games .runner1{ position:absolute; bottom:30%; left:20%; width:14%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ag-runner 3s ease-in-out infinite; }
.scn-athletic-games .runner2{ position:absolute; bottom:32%; left:45%; width:14%; height:40%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ag-runner 3.4s ease-in-out infinite 0.5s; }
.scn-athletic-games .dust1  { position:absolute; bottom:26%; left:18%; width:20%; height:12%; background: radial-gradient(ellipse, rgba(200,180,140,0.6) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: ag-dust 4s ease-in-out infinite; }
.scn-athletic-games .dust2  { position:absolute; bottom:28%; left:42%; width:18%; height:10%; background: radial-gradient(ellipse, rgba(200,180,140,0.5) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: ag-dust 4.5s ease-in-out infinite 0.8s; }
.scn-athletic-games .crowd  { position:absolute; bottom:10%; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 8px, transparent 8px, transparent 16px); background-size: 16px 100%; animation: ag-crowd 8s linear infinite; }
@keyframes ag-sky    { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ag-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes ag-sun    { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 50px 25px rgba(255,215,0,0.3); } 50% { transform: scale(1.05) rotate(5deg); box-shadow: 0 0 70px 35px rgba(255,215,0,0.5); } 100% { transform: scale(0.95) rotate(-3deg); box-shadow: 0 0 55px 28px rgba(255,215,0,0.4); } }
@keyframes ag-runner { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 25% { transform: translateX(10px) translateY(-10px) rotate(5deg); } 50% { transform: translateX(20px) translateY(-5px) rotate(-2deg); } 75% { transform: translateX(30px) translateY(-15px) rotate(6deg); } 100% { transform: translateX(40px) translateY(0) rotate(0); } }
@keyframes ag-dust   { 0% { opacity:0.6; transform: translateX(0) scale(1); } 50% { opacity:0.3; transform: translateX(15px) scale(1.5); } 100% { opacity:0; transform: translateX(30px) scale(2); } }
@keyframes ag-crowd  { 0% { background-position: 0 0; } 100% { background-position: 16px 0; } }

/* Scene: foot-race-and-other-sports */
.scn-foot-race-and-other-sports {
  background: linear-gradient(180deg, #b0e0e6 0%, #f5deb3 40%, #deb887 70%, #a0522d 100%), radial-gradient(ellipse at 30% 20%, #fff8dc 0%, transparent 60%);
}
.scn-foot-race-and-other-sports .track  { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #c8a882 0%, #b09070 100%); border-radius: 10% 10% 0 0; }
.scn-foot-race-and-other-sports .post   { position:absolute; bottom:25%; left:50%; width:4px; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 2px; transform: translateX(-50%); }
.scn-foot-race-and-other-sports .r1     { position:absolute; bottom:30%; left:10%; width:10%; height:50%; background: linear-gradient(180deg, #2a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fr-runner 2.8s ease-in-out infinite; }
.scn-foot-race-and-other-sports .r2     { position:absolute; bottom:32%; left:30%; width:10%; height:50%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fr-runner 3s ease-in-out infinite 0.4s; }
.scn-foot-race-and-other-sports .r3     { position:absolute; bottom:31%; left:55%; width:10%; height:50%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fr-runner 3.2s ease-in-out infinite 0.8s; }
.scn-foot-race-and-other-sports .dust-a { position:absolute; bottom:25%; left:8%; width:15%; height:10%; background: radial-gradient(ellipse, rgba(210,180,140,0.7) 0%, transparent 70%); filter: blur(3px); animation: fr-dust 3s ease-in-out infinite; }
.scn-foot-race-and-other-sports .dust-b { position:absolute; bottom:27%; left:28%; width:12%; height:8%; background: radial-gradient(ellipse, rgba(210,180,140,0.6) 0%, transparent 70%); filter: blur(3px); animation: fr-dust 3.5s ease-in-out infinite 0.6s; }
.scn-foot-race-and-other-sports .dust-c { position:absolute; bottom:26%; left:53%; width:14%; height:9%; background: radial-gradient(ellipse, rgba(210,180,140,0.5) 0%, transparent 70%); filter: blur(3px); animation: fr-dust 4s ease-in-out infinite 1.2s; }
@keyframes fr-runner { 0% { transform: translateX(0) translateY(0) rotate(-4deg); } 20% { transform: translateX(12px) translateY(-8px) rotate(3deg); } 40% { transform: translateX(24px) translateY(-4px) rotate(-1deg); } 60% { transform: translateX(36px) translateY(-10px) rotate(5deg); } 80% { transform: translateX(48px) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(60px) translateY(0) rotate(0); } }
@keyframes fr-dust   { 0% { opacity:0.8; transform: translateX(0) scale(0.8); } 50% { opacity:0.4; transform: translateX(20px) scale(1.5); } 100% { opacity:0; transform: translateX(40px) scale(2); } }

/* Scene: euryalus-challenges-ulysses */
.scn-euryalus-challenges-ulysses {
  background: linear-gradient(180deg, #f5deb3 0%, #deb887 40%, #c8a882 70%, #a0522d 100%), radial-gradient(ellipse at 50% 30%, #fff8dc 0%, transparent 60%);
}
.scn-euryalus-challenges-ulysses .bg         { position:absolute; inset:0; background: linear-gradient(90deg, #e8d8b0 0%, #d4b48c 50%, #b89060 100%); animation: ec-bg 10s ease-in-out infinite alternate; }
.scn-euryalus-challenges-ulysses .column     { position:absolute; top:0; left:20%; width:8%; height:100%; background: linear-gradient(90deg, #d4b48c 0%, #b89060 30%, #a07850 70%); border-radius: 0 0 20% 20%; box-shadow: inset -4px 0 8px rgba(0,0,0,0.2); }
.scn-euryalus-challenges-ulysses .laodamas   { position:absolute; bottom:20%; left:30%; width:14%; height:50%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ec-figure 4s ease-in-out infinite; }
.scn-euryalus-challenges-ulysses .euryalus   { position:absolute; bottom:22%; left:50%; width:14%; height:50%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ec-figure 4.2s ease-in-out infinite 0.5s; }
.scn-euryalus-challenges-ulysses .ground-line{ position:absolute; bottom:15%; left:0; right:0; height:2%; background: linear-gradient(90deg, transparent 0%, #a07850 20%, #a07850 80%, transparent 100%); box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
.scn-euryalus-challenges-ulysses .shadow     { position:absolute; bottom:12%; left:28%; width:18%; height:6%; background: radial-gradient(ellipse, rgba(80,50,20,0.5) 0%, transparent 70%); animation: ec-shadow 6s ease-in-out infinite alternate; }
.scn-euryalus-challenges-ulysses .gleam      { position:absolute; top:10%; right:15%; width:20%; height:15%; background: radial-gradient(ellipse, rgba(255,255,220,0.4) 0%, transparent 70%); animation: ec-gleam 8s ease-in-out infinite; }
@keyframes ec-bg     { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ec-figure { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-4px) rotate(3deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 75% { transform: translateY(-6px) rotate(4deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ec-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.2); opacity:0.7; } 100% { transform: scaleX(0.9); opacity:0.6; } }
@keyframes ec-gleam  { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(0.9); } }

.scn-palace-description {
  background: 
    linear-gradient(180deg, #f5ecd7 0%, #e8d5b5 40%, #c8a97e 100%),
    radial-gradient(ellipse at 50% 100%, #d4b48c 0%, transparent 60%);
}
.scn-palace-description .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b28d5c 0%, #8b6d44 100%);
  clip-path: polygon(0% 20%, 20% 0%, 80% 0%, 100% 20%, 100% 100%, 0% 100%);
  animation: pd-floor 20s ease-in-out infinite;
}
.scn-palace-description .back-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #f0e1c0 0%, #dcc19a 100%);
}
.scn-palace-description .mastiff-left {
  position: absolute; bottom: 32%; left: 15%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at 50% 60%, #ffd700 0%, #b8860b 60%, #8b6508 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: pd-mastiff 8s ease-in-out infinite;
}
.scn-palace-description .mastiff-right {
  position: absolute; bottom: 32%; right: 15%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at 50% 60%, #c0c0c0 0%, #808080 60%, #606060 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: pd-mastiff 8s ease-in-out infinite reverse;
}
.scn-palace-description .seat {
  position: absolute; bottom: 30%; left: 38%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #a0522d 0%, #5c3317 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: pd-seat 12s ease-in-out infinite;
}
.scn-palace-description .column {
  position: absolute; top: 5%; left: 50%; width: 20px; bottom: 30%;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #f5deb3 0%, #d2b48c 50%, #a0895c 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.scn-palace-description .light-shaft {
  position: absolute; top: 0; left: 30%; width: 40%; bottom: 40%;
  background: linear-gradient(180deg, rgba(255,255,240,0.3) 0%, rgba(255,255,240,0) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: pd-light 15s ease-in-out infinite alternate;
}
@keyframes pd-floor {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes pd-mastiff {
  0% { transform: rotate(-2deg); }
  25% { transform: rotate(1deg); }
  50% { transform: rotate(2deg); }
  75% { transform: rotate(-1deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes pd-seat {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.02); }
}
@keyframes pd-light {
  0% { opacity: 0.5; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}

.scn-palace-garden {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #b0e0e6 40%, #f0e68c 100%),
    radial-gradient(ellipse at 50% 100%, #f5f5dc 0%, transparent 60%);
}
.scn-palace-garden .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #87CEEB 0%, #b0e0e6 100%);
  animation: pg-sky 10s ease-in-out infinite alternate;
}
.scn-palace-garden .wall {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b3a 100%);
  border-top: 4px solid #5c4a2e;
  clip-path: polygon(0% 0%, 5% 20%, 95% 20%, 100% 0%, 100% 100%, 0% 100%);
  animation: pg-wall 15s ease-in-out infinite;
}
.scn-palace-garden .tree-left {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 70%, #228b22 0%, #006400 60%, #004d00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: pg-tree 20s ease-in-out infinite;
}
.scn-palace-garden .tree-right {
  position: absolute; bottom: 30%; right: 20%; width: 100px; height: 140px;
  background: radial-gradient(ellipse at 50% 70%, #2e8b57 0%, #006b3e 60%, #004d00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: pg-tree 20s ease-in-out infinite reverse;
}
.scn-palace-garden .fruit-a {
  position: absolute; bottom: 48%; left: 25%; width: 8px; height: 10px;
  background: #ffa07a;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,160,122,0.4);
  animation: pg-fruit 3s ease-in-out infinite;
}
.scn-palace-garden .fruit-b {
  position: absolute; bottom: 55%; left: 40%; width: 8px; height: 10px;
  background: #ffa07a;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,160,122,0.4);
  animation: pg-fruit 3s ease-in-out infinite 1s;
}
.scn-palace-garden .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7ccd7c 0%, #3cb371 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  animation: pg-ground 25s ease-in-out infinite;
}
@keyframes pg-sky {
  0%, 100% { opacity: 0.9; }
  50% { opacity: 1; }
}
@keyframes pg-wall {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(2px); }
}
@keyframes pg-tree {
  0% { transform: rotate(-1deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.03); }
  100% { transform: rotate(-1deg) scale(1); }
}
@keyframes pg-fruit {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(2px, -3px) scale(1.2); }
}
@keyframes pg-ground {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.03); }
  100% { opacity: 0.95; transform: scaleY(1); }
}

.scn-ulysses-enters-palace {
  background: 
    linear-gradient(180deg, #f0e6d2 0%, #dec19a 40%, #b8956a 100%),
    radial-gradient(ellipse at 50% 100%, #c8a67a 0%, transparent 60%);
}
.scn-ulysses-enters-palace .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%);
  clip-path: polygon(10% 10%, 90% 10%, 100% 100%, 0% 100%);
}
.scn-ulysses-enters-palace .back-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 25%;
  background: linear-gradient(180deg, #ecd8b4 0%, #c8a882 100%);
}
.scn-ulysses-enters-palace .threshold {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6b4226 0%, #4a2c14 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-ulysses-enters-palace .figure {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2c1a0e 0%, #1c0f06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ue-figure 6s ease-in-out infinite;
}
.scn-ulysses-enters-palace .altar {
  position: absolute; bottom: 25%; left: 70%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #8b7355 0%, #5c4a2e 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
}
.scn-ulysses-enters-palace .offering {
  position: absolute; bottom: 40%; left: 72%; width: 10px; height: 12px;
  background: radial-gradient(circle, #e8c14a 0%, #b8860b 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(232,193,74,0.4);
  animation: ue-offering 4s ease-in-out infinite alternate;
}
.scn-ulysses-enters-palace .candle {
  position: absolute; bottom: 28%; left: 30%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0e68c 0%, #d2b48c 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%;
  animation: ue-candle 3s ease-in-out infinite;
}
@keyframes ue-figure {
  0%, 100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-45%) translateY(-2px) rotate(3deg); }
  60% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes ue-offering {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.7; }
}
@keyframes ue-candle {
  0%, 100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.05); }
}

.scn-ulysses-supplicates-arete {
  background: 
    linear-gradient(180deg, #c8a87a 0%, #a08050 40%, #6b5030 100%),
    radial-gradient(ellipse at 50% 100%, #5c3a1a 0%, transparent 70%);
}
.scn-ulysses-supplicates-arete .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 10%, 50% 0%, 100% 10%, 100% 100%, 0% 100%);
}
.scn-ulysses-supplicates-arete .throne {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b6914 0%, #5c4510 100%);
  border-radius: 10% 10% 5% 5% / 50% 50% 20% 20%;
  box-shadow: 8px 8px 20px rgba(0,0,0,0.5);
  animation: us-throne 12s ease-in-out infinite;
}
.scn-ulysses-supplicates-arete .queen {
  position: absolute; bottom: 38%; left: 48%; width: 18px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: us-queen 6s ease-in-out infinite;
}
.scn-ulysses-supplicates-arete .suppliant {
  position: absolute; bottom: 28%; left: 30%; width: 16px; height: 35px;
  background: linear-gradient(180deg, #2c1a0e 0%, #1c0f06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: us-supp 4s ease-in-out infinite;
}
.scn-ulysses-supplicates-arete .shadow-floor {
  position: absolute; bottom: 28%; left: 25%; width: 60px; height: 20px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: us-shadow 5s ease-in-out infinite;
}
.scn-ulysses-supplicates-arete .wall-panel {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #b8956a 0%, #8b7355 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
}
.scn-ulysses-supplicates-arete .torch-flame {
  position: absolute; top: 15%; left: 15%; width: 12px; height: 20px;
  background: radial-gradient(circle, #ffa500 0%, #ff6347 60%, #8b0000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: us-torch 2s ease-in-out infinite alternate;
}
@keyframes us-throne {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
}
@keyframes us-queen {
  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 us-supp {
  0%, 100% { transform: translate(0, 0) rotate(0deg) scaleY(1); }
  30% { transform: translate(8px, -2px) rotate(10deg) scaleY(0.9); }
  60% { transform: translate(0, 0) rotate(-5deg) scaleY(1); }
}
@keyframes us-shadow {
  0%, 100% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.2); }
}
@keyframes us-torch {
  0% { transform: scale(1) rotate(-5deg); opacity: 0.8; }
  100% { transform: scale(1.15) rotate(5deg); opacity: 1; }
}

.scn-minerva-descends-to-ithaca {
  background: linear-gradient(180deg, #ffe8b0 0%, #ffcca0 30%, #c89570 60%, #8a6a4a 100%),
              radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 70%);
}
.scn-minerva-descends-to-ithaca .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7ab8d4 0%, #b0e0f0 40%, transparent 100%);
  animation: mi1-sky 10s ease-in-out infinite alternate;
}
.scn-minerva-descends-to-ithaca .sun-rays {
  position: absolute; top: 5%; left: 30%; width: 120px; height: 200px;
  background: linear-gradient(135deg, rgba(255,240,180,0.6) 0%, transparent 70%);
  filter: blur(10px); animation: mi1-rays 6s ease-in-out infinite alternate;
}
.scn-minerva-descends-to-ithaca .clouds {
  position: absolute; border-radius: 50%; filter: blur(6px);
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.2) 100%);
  animation: mi1-drift 40s linear infinite;
}
.scn-minerva-descends-to-ithaca .cloud-a {
  top: 8%; left: 10%; width: 100px; height: 25px;
  animation-delay: 0s;
}
.scn-minerva-descends-to-ithaca .cloud-b {
  top: 18%; right: 5%; width: 130px; height: 30px;
  animation-delay: -15s; animation-direction: reverse;
}
.scn-minerva-descends-to-ithaca .goddess {
  position: absolute; bottom: 35%; left: 45%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #c2a070 0%, #8a6a4a 50%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mi1-descend 8s ease-in-out infinite;
}
.scn-minerva-descends-to-ithaca .spear {
  position: absolute; bottom: 38%; left: 50%;
  width: 4px; height: 80px;
  background: linear-gradient(180deg, #d4b060 0%, #b08040 50%, #705020 100%);
  transform-origin: bottom center;
  animation: mi1-spear 3s ease-in-out infinite alternate;
}
.scn-minerva-descends-to-ithaca .sandals {
  position: absolute; bottom: 34%; left: 42%;
  width: 20px; height: 10px;
  background: radial-gradient(circle, #ffd070 0%, #b08030 100%);
  border-radius: 50%; filter: blur(2px);
  box-shadow: 0 0 20px 8px rgba(255,208,112,0.6);
  animation: mi1-sandal-glow 4s ease-in-out infinite alternate;
}
@keyframes mi1-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mi1-rays { 0% { transform: scale(0.95) rotate(0deg); opacity: 0.6; } 50% { transform: scale(1.05) rotate(5deg); opacity: 0.9; } 100% { transform: scale(0.98) rotate(-3deg); opacity: 0.7; } }
@keyframes mi1-drift { 0% { transform: translateX(-50px); } 50% { transform: translateX(20px); } 100% { transform: translateX(120vw); } }
@keyframes mi1-descend { 0% { transform: translateY(-30px) scale(0.8); opacity: 0.6; } 50% { transform: translateY(0) scale(1); opacity: 1; } 100% { transform: translateY(-10px) scale(0.95); opacity: 0.85; } }
@keyframes mi1-spear { 0% { transform: rotate(-5deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes mi1-sandal-glow { 0% { box-shadow: 0 0 12px 4px rgba(255,208,112,0.5); } 50% { box-shadow: 0 0 30px 12px rgba(255,220,130,0.8); } 100% { box-shadow: 0 0 18px 6px rgba(255,208,112,0.6); } }

.scn-telemachus-sees-stranger {
  background: linear-gradient(180deg, #e8d8b8 0%, #d4c4a0 40%, #b8a080 100%),
              radial-gradient(ellipse at 30% 20%, #f0e6d0 0%, transparent 60%);
}
.scn-telemachus-sees-stranger .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #a09070 0%, #c8b898 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
}
.scn-telemachus-sees-stranger .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%);
}
.scn-telemachus-sees-stranger .door {
  position: absolute; top: 20%; right: 15%; width: 60px; height: 120px;
  background: linear-gradient(90deg, #8a6a4a 0%, #a08060 50%, #7a5a3a 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: ts1-door 12s ease-in-out infinite alternate;
}
.scn-telemachus-sees-stranger .light-beam {
  position: absolute; top: 15%; right: 18%; width: 80px; height: 180px;
  background: linear-gradient(135deg, rgba(240,230,200,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: ts1-beam 6s ease-in-out infinite alternate;
}
.scn-telemachus-sees-stranger .figure-telemachus {
  position: absolute; bottom: 28%; left: 25%;
  width: 28px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ts1-brood 4s ease-in-out infinite;
}
.scn-telemachus-sees-stranger .figure-stranger {
  position: absolute; bottom: 28%; right: 18%;
  width: 26px; height: 54px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 70% 60% 30% 30%;
  animation: ts1-enter 8s ease-in-out infinite;
  box-shadow: 4px 0 12px rgba(0,0,0,0.2);
}
.scn-telemachus-sees-stranger .shadow-suitors {
  position: absolute; bottom: 30%; left: 10%; width: 100px; height: 40px;
  background: rgba(0,0,0,0.08);
  filter: blur(6px);
  animation: ts1-shadows 5s ease-in-out infinite alternate;
}
@keyframes ts1-door { 0% { transform: skewX(0deg); } 50% { transform: skewX(4deg); } 100% { transform: skewX(0deg); } }
@keyframes ts1-beam { 0% { opacity: 0.3; transform: scaleX(0.95); } 50% { opacity: 0.7; transform: scaleX(1.05); } 100% { opacity: 0.4; transform: scaleX(1); } }
@keyframes ts1-brood { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ts1-enter { 0% { transform: translateX(20px) scale(0.95); opacity: 0; } 30% { transform: translateX(0) scale(1); opacity: 1; } 70% { transform: translateX(0) scale(1); opacity: 1; } 100% { transform: translateX(10px) scale(0.98); opacity: 0.9; } }
@keyframes ts1-shadows { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.5; transform: scaleY(1.1); } 100% { opacity: 0.4; transform: scaleY(0.95); } }

.scn-telemachus-entertains-guest {
  background: linear-gradient(180deg, #e8d0a0 0%, #d4b880 40%, #b89868 100%),
              radial-gradient(ellipse at 50% 60%, #f0dca0 0%, transparent 70%);
}
.scn-telemachus-entertains-guest .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #886a4a 0%, #a08060 100%);
}
.scn-telemachus-entertains-guest .column {
  position: absolute; bottom: 25%; left: 15%; width: 20px; height: 140px;
  background: linear-gradient(90deg, #c0a080 0%, #e0c8a0 30%, #c0a080 100%);
  border-radius: 4px;
}
.scn-telemachus-entertains-guest .spear-stand {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 6px 6px;
}
.scn-telemachus-entertains-guest .seat {
  position: absolute; bottom: 28%; right: 25%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
}
.scn-telemachus-entertains-guest .guest {
  position: absolute; bottom: 28%; right: 26%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 60% 30% 30%;
  animation: te1-sit 6s ease-in-out infinite;
}
.scn-telemachus-entertains-guest .table {
  position: absolute; bottom: 26%; left: 45%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #b89868 0%, #8a6a4a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-telemachus-entertains-guest .light {
  position: absolute; top: 5%; left: 40%; width: 120px; height: 200px;
  background: radial-gradient(ellipse at 50% 20%, rgba(255,230,160,0.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: te1-light 8s ease-in-out infinite alternate;
}
@keyframes te1-sit { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes te1-light { 0% { opacity: 0.4; transform: scaleX(0.95); } 50% { opacity: 0.7; transform: scaleX(1.05); } 100% { opacity: 0.6; transform: scaleX(1); } }

.scn-servants-bring-water {
  background: linear-gradient(180deg, #f8e8c8 0%, #e8d0a0 40%, #c8b080 100%),
              radial-gradient(ellipse at 40% 50%, #fff0d0 0%, transparent 60%);
}
.scn-servants-bring-water .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(0deg, #a09070 0%, #c8b898 100%);
}
.scn-servants-bring-water .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 28%;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 100%);
}
.scn-servants-bring-water .table {
  position: absolute; bottom: 28%; left: 35%; width: 100px; height: 25px;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}
.scn-servants-bring-water .basin {
  position: absolute; bottom: 32%; left: 42%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.1);
}
.scn-servants-bring-water .ewer {
  position: absolute; bottom: 32%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #d4b060 0%, #b89040 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: sb1-pour 8s ease-in-out infinite;
}
.scn-servants-bring-water .servant {
  position: absolute; bottom: 28%; right: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 30% 30%;
  animation: sb1-serv 6s ease-in-out infinite alternate;
}
.scn-servants-bring-water .water-stream {
  position: absolute; bottom: 32%; left: 52%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #a0c8e8 0%, #80b0d0 100%);
  border-radius: 2px;
  filter: blur(1px);
  animation: sb1-stream 4s ease-in-out infinite;
}
@keyframes sb1-pour { 0% { transform: rotate(0deg); } 30% { transform: rotate(-15deg); } 60% { transform: rotate(0deg); } 100% { transform: rotate(0deg); } }
@keyframes sb1-serv { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(4px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes sb1-stream { 0% { opacity: 0.4; transform: scaleY(0.5); } 25% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 0.6; transform: scaleY(0.8); } 75% { opacity: 0.9; transform: scaleY(1.1); } 100% { opacity: 0.5; transform: scaleY(0.6); } }

/* nestor-insists-they-stay */
.scn-nestor-insists-they-stay {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #7a4a3a 60%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 100%, #8a5a3a 0%, transparent 70%);
}
.scn-nestor-insists-they-stay .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4% 4% 0 0; animation: nis-wall 12s ease-in-out infinite alternate; }
.scn-nestor-insists-they-stay .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 0 0 8% 8%; }
.scn-nestor-insists-they-stay .hearth { position:absolute; bottom:15%; left:10%; width:40%; height:25%; background: radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, #4a3a2a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-nestor-insists-they-stay .fire { position:absolute; bottom:18%; left:15%; width:10%; height:12%; background: radial-gradient(ellipse at 50% 100%, #ffa050 0%, #cc7020 40%, #8a3a0a 100%); border-radius: 50%; box-shadow: 0 0 40px 20px #ff8020, 0 0 80px 40px rgba(255,128,32,0.3); animation: nis-fire 2s ease-in-out infinite alternate; }
.scn-nestor-insists-they-stay .bed { position:absolute; bottom:5%; right:8%; width:35%; height:20%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); transform: rotate(-2deg); }
.scn-nestor-insists-they-stay .cloak { position:absolute; bottom:12%; left:60%; width:12%; height:30%; background: linear-gradient(180deg, #a05030 0%, #603018 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; animation: nis-cloak 6s ease-in-out infinite; }
.scn-nestor-insists-they-stay .window { position:absolute; top:8%; right:12%; width:15%; height:25%; background: linear-gradient(180deg, #ffcca0 0%, #d09050 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 0 20px 6px #ffb060; }
.scn-nestor-insists-they-stay .dusk-sky { position:absolute; inset:0; background: linear-gradient(180deg, #ffaa50 0%, #ff8040 30%, #6a3070 100%); opacity:0.3; pointer-events: none; }
@keyframes nis-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes nis-fire { 0% { transform: scaleY(1) translateY(0); opacity:0.8 } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.7 } }
@keyframes nis-cloak { 0% { transform: rotate(-2deg) scaleX(1) } 50% { transform: rotate(2deg) scaleX(1.02) } 100% { transform: rotate(-2deg) scaleX(1) } }

/* minerva-accepts-his-hospitality */
.scn-minerva-accepts-his-hospitality {
  background: 
    linear-gradient(180deg, #6a4a3a 0%, #8a6a4a 40%, #4a3a2a 100%),
    radial-gradient(ellipse at 20% 30%, #c08050 0%, transparent 60%);
}
.scn-minerva-accepts-his-hospitality .sky-dusk { position:absolute; top:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #c89060 0%, #804060 50%, #3a2040 100%); animation: mah-sky 15s ease-in-out infinite alternate; }
.scn-minerva-accepts-his-hospitality .columns { position:absolute; top:0; left:10%; width:8%; height:70%; background: linear-gradient(90deg, #8a7a6a 0%, #aa9a8a 40%, #8a7a6a 100%); border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,0.3); }
.scn-minerva-accepts-his-hospitality .minerva-figure { position:absolute; bottom:20%; left:35%; width:20px; height:60px; background: linear-gradient(180deg, #eee 0%, #ccc 60%, #999 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mah-minerva 4s ease-in-out infinite; }
.scn-minerva-accepts-his-hospitality .nestor-figure { position:absolute; bottom:20%; left:55%; width:24px; height:56px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mah-nestor 5s ease-in-out infinite; }
.scn-minerva-accepts-his-hospitality .lantern { position:absolute; bottom:35%; left:30%; width:10px; height:14px; background: radial-gradient(circle, #ffd080 0%, #cc8020 100%); border-radius: 30%; box-shadow: 0 0 30px 10px #ffb060, 0 0 60px 20px rgba(255,176,96,0.4); animation: mah-lantern 3s ease-in-out infinite alternate; }
.scn-minerva-accepts-his-hospitality .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; }
.scn-minerva-accepts-his-hospitality .doorway { position:absolute; bottom:15%; left:20%; width:30%; height:50%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 8px; box-shadow: inset 0 0 20px #000; transform: perspective(200px) rotateY(-5deg); }
@keyframes mah-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes mah-minerva { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mah-nestor { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mah-lantern { 0% { box-shadow: 0 0 20px 6px #ffb060, 0 0 40px 12px rgba(255,176,96,0.3); opacity:0.8 } 100% { box-shadow: 0 0 40px 12px #ffd080, 0 0 80px 20px rgba(255,208,128,0.5); opacity:1 } }

/* minerva-flies-away */
.scn-minerva-flies-away {
  background: 
    linear-gradient(180deg, #2a2040 0%, #4a3060 40%, #6a4080 100%),
    radial-gradient(ellipse at 80% 40%, #8a6090 0%, transparent 70%);
}
.scn-minerva-flies-away .sky-glow { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c08070 0%, #4a3070 60%, #202050 100%); animation: mfa-sky 20s ease-in-out infinite alternate; }
.scn-minerva-flies-away .clouds { position:absolute; top:10%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(200,180,200,0.1) 100%); filter: blur(8px); animation: mfa-clouds 40s linear infinite; }
.scn-minerva-flies-away .eagle { position:absolute; top:20%; left:40%; width:80px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 60% 60% 40% 40% / 80% 80% 30% 30%; clip-path: polygon(0% 40%, 30% 20%, 50% 30%, 70% 10%, 100% 40%, 70% 50%, 50% 40%, 30% 60%); animation: mfa-eagle 2s ease-in-out infinite alternate; }
.scn-minerva-flies-away .horizon { position:absolute; bottom:10%; left:0; right:0; height:5%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-minerva-flies-away .temple-silhouette { position:absolute; bottom:8%; left:5%; width:100px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 4px; clip-path: polygon(20% 100%, 20% 20%, 40% 0%, 60% 0%, 80% 20%, 80% 100%); }
.scn-minerva-flies-away .dust-particles { position:absolute; bottom:5%; left:30%; width:40px; height:20px; background: radial-gradient(circle, rgba(200,180,150,0.3) 0%, transparent 70%); filter: blur(2px); animation: mfa-dust 6s ease-in-out infinite; }
.scn-minerva-flies-away .wind-lines { position:absolute; top:30%; left:10%; width:30%; height:2px; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.3) 30%, transparent 100%); animation: mfa-wind 3s ease-in-out infinite alternate; }
@keyframes mfa-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes mfa-clouds { 0% { transform: translateX(-10%) } 50% { transform: translateX(0%) } 100% { transform: translateX(10%) } }
@keyframes mfa-eagle { 0% { transform: translateY(0) rotate(-3deg) scaleX(1) } 50% { transform: translateY(-5px) rotate(0deg) scaleX(1.05) } 100% { transform: translateY(2px) rotate(3deg) scaleX(0.95) } }
@keyframes mfa-dust { 0% { transform: scale(1) translate(0,0); opacity:0.6 } 50% { transform: scale(1.3) translate(5px,-5px); opacity:0.2 } 100% { transform: scale(1) translate(0,0); opacity:0.6 } }
@keyframes mfa-wind { 0% { transform: translateX(0) scaleX(1) } 100% { transform: translateX(20px) scaleX(1.5) } }

/* nestor-prays-and-feasts */
.scn-nestor-prays-and-feasts {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #7a4a3a 60%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 30%, #a06030 0%, transparent 60%);
}
.scn-nestor-prays-and-feasts .hall-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 0 0; }
.scn-nestor-prays-and-feasts .table { position:absolute; bottom:15%; left:15%; width:70%; height:15%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 10px 10px 20px 20px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); transform: perspective(300px) rotateX(5deg); }
.scn-nestor-prays-and-feasts .benches { position:absolute; bottom:12%; left:10%; width:80%; height:8%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius: 4px; }
.scn-nestor-prays-and-feasts .goblets { position:absolute; bottom:20%; left:30%; width:6%; height:8%; background: linear-gradient(180deg, #c0a080 0%, #806040 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: npf-goblet 4s ease-in-out infinite; }
.scn-nestor-prays-and-feasts .hearth-fire { position:absolute; bottom:10%; left:5%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #cc7020 30%, #8a3a0a 60%, #3a1a0a 100%); border-radius: 50%; box-shadow: 0 0 60px 30px #ff8020, 0 0 120px 60px rgba(255,128,32,0.3); animation: npf-fire 2s ease-in-out infinite alternate; }
.scn-nestor-prays-and-feasts .window-light { position:absolute; top:10%; left:70%; width:15%; height:20%; background: linear-gradient(180deg, #ffcca0 0%, #d09050 100%); border-radius: 4px; box-shadow: 0 0 30px 10px #ffb060; animation: npf-window 12s ease-in-out infinite alternate; }
.scn-nestor-prays-and-feasts .nestor-praying { position:absolute; bottom:10%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: npf-nestor 4s ease-in-out infinite; }
.scn-nestor-prays-and-feasts .minerva-icon { position:absolute; top:5%; left:5%; width:30px; height:30px; background: radial-gradient(circle, #e0c0a0 0%, #a08060 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #c0a080; animation: npf-icon 6s ease-in-out infinite; }
@keyframes npf-goblet { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes npf-fire { 0% { transform: scaleY(1) translateY(0); opacity:0.8 } 50% { transform: scaleY(1.3) translateY(-3px); opacity:1 } 100% { transform: scaleY(0.8) translateY(2px); opacity:0.7 } }
@keyframes npf-window { 0% { opacity:0.6; box-shadow: 0 0 15px 5px #ffb060 } 50% { opacity:1; box-shadow: 0 0 40px 12px #ffd080 } 100% { opacity:0.7; box-shadow: 0 0 20px 6px #ffb060 } }
@keyframes npf-nestor { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes npf-icon { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.1) rotate(5deg) } 100% { transform: scale(1) rotate(0deg) } }

/* footnote-ulysses-bedroom */
.scn-footnote-ulysses-bedroom {
  background: linear-gradient(180deg, #2a1e14 0%, #3a2a1e 40%, #1e140e 100%), radial-gradient(ellipse at 50% 30%, #4a3528 0%, transparent 70%);
}
.scn-footnote-ulysses-bedroom .domed-ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 45%;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1e 0%, #1a120e 100%);
  border-radius: 50% 50% 0 0;
  animation: sl1-ceil 20s ease-in-out infinite alternate;
}
.scn-footnote-ulysses-bedroom .wall-shadow {
  position: absolute; inset: 30% 10% 0 10%;
  background: linear-gradient(to bottom, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 0 0 20% 20%;
}
.scn-footnote-ulysses-bedroom .window-glow {
  position: absolute; top: 15%; right: 15%; width: 40px; height: 50px;
  background: radial-gradient(circle, #8a7a50 0%, transparent 100%);
  border-radius: 10%;
  box-shadow: 0 0 30px 10px rgba(138,122,80,0.3);
  animation: sl1-window 4s ease-in-out infinite alternate;
}
.scn-footnote-ulysses-bedroom .bed-frame {
  position: absolute; bottom: 10%; left: 10%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1e14 100%);
  border-radius: 8px;
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.6), 0 5px 10px rgba(0,0,0,0.4);
  animation: sl1-bed 8s ease-in-out infinite alternate;
}
.scn-footnote-ulysses-bedroom .figure-sleeping {
  position: absolute; bottom: 15%; left: 25%; width: 28%; height: 20%;
  background: radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, #3a2a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.5);
  animation: sl1-figure 6s ease-in-out infinite;
}
.scn-footnote-ulysses-bedroom .chair {
  position: absolute; bottom: 12%; right: 20%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e140e 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 0 5px rgba(0,0,0,0.5);
}
.scn-footnote-ulysses-bedroom .lantern-stand {
  position: absolute; bottom: 18%; right: 35%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1e 100%);
  border-radius: 2px;
}
.scn-footnote-ulysses-bedroom .lantern-stand::before {
  content: ''; position: absolute; top: -8px; left: -6px; width: 16px; height: 16px;
  background: radial-gradient(circle, #c8a856 0%, #8a6a36 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,168,86,0.4);
  animation: sl1-lantern-glow 3s ease-in-out infinite alternate;
}
.scn-footnote-ulysses-bedroom .hanging-rope {
  position: absolute; top: 10%; left: 50%; width: 2px; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, transparent 100%);
  transform: translateX(-50%);
  border-radius: 1px;
  animation: sl1-rope 12s ease-in-out infinite alternate;
}
@keyframes sl1-ceil { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.85; transform: scaleY(0.98); } }
@keyframes sl1-window { 0% { opacity:0.7; box-shadow:0 0 20px 6px rgba(138,122,80,0.2); } 50% { opacity:1; box-shadow:0 0 40px 15px rgba(138,122,80,0.5); } 100% { opacity:0.8; box-shadow:0 0 25px 8px rgba(138,122,80,0.3); } }
@keyframes sl1-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sl1-figure { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-2px); } 50% { transform: rotate(6deg) translateY(0); } 75% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes sl1-lantern-glow { 0% { box-shadow:0 0 15px 5px rgba(200,168,86,0.3); opacity:0.8; } 50% { box-shadow:0 0 30px 12px rgba(200,168,86,0.6); opacity:1; } 100% { box-shadow:0 0 18px 6px rgba(200,168,86,0.35); opacity:0.9; } }
@keyframes sl1-rope { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }

/* footnote-needlework-unpicking */
.scn-footnote-needlework-unpicking {
  background: linear-gradient(180deg, #1e1512 0%, #2a1e18 60%, #140e0c 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
}
.scn-footnote-needlework-unpicking .bg-ambient {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #3a2a20 0%, transparent 70%);
  animation: sl2-ambient 15s ease-in-out infinite alternate;
}
.scn-footnote-needlework-unpicking .table-edge {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 5px;
  background: linear-gradient(90deg, transparent, #5a3e30 20%, #5a3e30 80%, transparent);
  border-radius: 2px;
  box-shadow: 0 -2px 4px rgba(0,0,0,0.6);
}
.scn-footnote-needlework-unpicking .cloth-spread {
  position: absolute; bottom: 22%; left: 15%; width: 55%; height: 25%;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 -8px 10px rgba(0,0,0,0.4);
  transform: rotate(-2deg);
  animation: sl2-cloth 6s ease-in-out infinite;
}
.scn-footnote-needlework-unpicking .needle {
  position: absolute; bottom: 35%; left: 30%; width: 2px; height: 14px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  transform: rotate(45deg);
  border-radius: 1px;
  box-shadow: 0 0 4px rgba(176,160,144,0.3);
  animation: sl2-needle 3s ease-in-out infinite alternate;
}
.scn-footnote-needlework-unpicking .hand-left {
  position: absolute; bottom: 28%; left: 25%; width: 20px; height: 16px;
  background: radial-gradient(ellipse at 50% 60%, #7a6a5a 0%, #4a3a2e 100%);
  border-radius: 50% 40% 30% 50% / 60% 50% 50% 40%;
  transform: rotate(-10deg);
  box-shadow: inset -2px -2px 4px rgba(0,0,0,0.3);
  animation: sl2-hand-left 5s ease-in-out infinite;
}
.scn-footnote-needlework-unpicking .hand-right {
  position: absolute; bottom: 26%; left: 40%; width: 22px; height: 18px;
  background: radial-gradient(ellipse at 50% 60%, #7a6a5a 0%, #4a3a2e 100%);
  border-radius: 40% 50% 50% 30% / 50% 60% 40% 50%;
  transform: rotate(15deg);
  box-shadow: inset 2px -2px 4px rgba(0,0,0,0.3);
  animation: sl2-hand-right 5s ease-in-out infinite;
}
.scn-footnote-needlework-unpicking .candle-flame {
  position: absolute; top: 15%; left: 60%; width: 8px; height: 18px;
  background: radial-gradient(ellipse at 50% 80%, #e8c050 0%, #d08030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,150,60,0.6);
  animation: sl2-flame 2s ease-in-out infinite alternate;
}
.scn-footnote-needlework-unpicking .candle-body {
  position: absolute; top: 22%; left: 58%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset -2px 0 4px rgba(0,0,0,0.2);
}
.scn-footnote-needlework-unpicking .thread-loop {
  position: absolute; bottom: 32%; left: 38%; width: 12px; height: 6px;
  border: 1px solid #7a6a4a;
  border-radius: 50%;
  transform: rotate(20deg);
  opacity: 0.5;
  animation: sl2-thread 7s ease-in-out infinite;
}
@keyframes sl2-ambient { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sl2-cloth { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes sl2-needle { 0% { transform: rotate(40deg) translateY(0); } 50% { transform: rotate(50deg) translateY(-1px); } 100% { transform: rotate(45deg) translateY(0); } }
@keyframes sl2-hand-left { 0% { transform: rotate(-10deg) translate(0,0); } 33% { transform: rotate(-8deg) translate(2px,-1px); } 66% { transform: rotate(-12deg) translate(1px,1px); } 100% { transform: rotate(-10deg) translate(0,0); } }
@keyframes sl2-hand-right { 0% { transform: rotate(15deg) translate(0,0); } 33% { transform: rotate(13deg) translate(-1px,1px); } 66% { transform: rotate(17deg) translate(2px,-1px); } 100% { transform: rotate(15deg) translate(0,0); } }
@keyframes sl2-flame { 0% { transform: scaleY(0.9) translateY(0); opacity:0.8; } 50% { transform: scaleY(1.1) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.95) translateY(1px); opacity:0.9; } }
@keyframes sl2-thread { 0% { opacity:0.4; transform: rotate(15deg) scale(1); } 50% { opacity:0.6; transform: rotate(25deg) scale(1.1); } 100% { opacity:0.4; transform: rotate(20deg) scale(1); } }

/* footnote-dolius-ignorance */
.scn-footnote-dolius-ignorance {
  background: linear-gradient(135deg, #1a1614 0%, #2a221e 40%, #0e0c0a 100%);
  box-shadow: inset 0 0 120px rgba(0,0,0,0.6);
}
.scn-footnote-dolius-ignorance .dim-walls {
  position: absolute; inset: 0 8% 8% 8%;
  background: radial-gradient(ellipse at 50% 80%, #3a2e28 0%, transparent 80%);
  border-radius: 0 0 30% 30%;
  animation: sl3-walls 20s ease-in-out infinite alternate;
}
.scn-footnote-dolius-ignorance .floor-patch {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #2a221e 0%, #1a1412 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.5);
}
.scn-footnote-dolius-ignorance .chair-back {
  position: absolute; bottom: 18%; left: 25%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e18 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 5px 8px rgba(0,0,0,0.5);
}
.scn-footnote-dolius-ignorance .figure-dolius {
  position: absolute; bottom: 15%; left: 22%; width: 20%; height: 35%;
  background: radial-gradient(ellipse at 50% 40%, #6a5a4a 0%, #3a2e24 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  box-shadow: inset -4px -2px 8px rgba(0,0,0,0.4);
  animation: sl3-dolius 8s ease-in-out infinite;
}
.scn-footnote-dolius-ignorance .hand-on-knee {
  position: absolute; bottom: 18%; left: 35%; width: 12px; height: 10px;
  background: #4a3a2e;
  border-radius: 30% 50% 40% 40%;
  transform: rotate(20deg);
  box-shadow: inset 0 -1px 3px rgba(0,0,0,0.3);
  animation: sl3-hand 6s ease-in-out infinite alternate;
}
.scn-footnote-dolius-ignorance .scroll-in-lap {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 15px;
  background: linear-gradient(180deg, #b09870 0%, #8a7040 100%);
  border-radius: 5px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sl3-scroll 10s ease-in-out infinite;
}
.scn-footnote-dolius-ignorance .oil-lamp {
  position: absolute; top: 10%; right: 20%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #a08860 0%, #705030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
}
.scn-footnote-dolius-ignorance .oil-lamp::before {
  content: ''; position: absolute; top: -8px; left: 4px; width: 12px; height: 12px;
  background: radial-gradient(circle, #e8c860 0%, #b08830 100%);
  border-radius: 50%;
  box-shadow: 0 0 25px 10px rgba(200,160,60,0.5);
  animation: sl3-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-footnote-dolius-ignorance .shadow-pool {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.7) 0%, transparent 100%);
  animation: sl3-shadow 15s ease-in-out infinite alternate;
}
@keyframes sl3-walls { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sl3-dolius { 0% { transform: rotate(-5deg) translateY(0); } 33% { transform: rotate(-3deg) translateY(-2px); } 66% { transform: rotate(-6deg) translateY(1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes sl3-hand { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(25deg) scale(1.05); } 100% { transform: rotate(20deg) scale(1); } }
@keyframes sl3-scroll { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes sl3-lamp-glow { 0% { box-shadow:0 0 15px 5px rgba(200,160,60,0.3); opacity:0.8; } 50% { box-shadow:0 0 35px 15px rgba(200,160,60,0.6); opacity:1; } 100% { box-shadow:0 0 20px 8px rgba(200,160,60,0.35); opacity:0.9; } }
@keyframes sl3-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.7; transform: scaleX(1.05); } 100% { opacity:0.6; transform: scaleX(1); } }

/* laodamas-invites-ulysses (calm, sunlit) */
.scn-laodamas-invites-ulysses {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #d2b48c 80%, #b8860b 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 70%);
}
.scn-laodamas-invites-ulysses .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0d4f1 0%, #f7e9c3 100%);
  animation: lui-sky 15s ease-in-out infinite alternate;
}
.scn-laodamas-invites-ulysses .sun {
  position: absolute; top: 8%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff7d6 0%, #ffe88a 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255, 232, 138, 0.5);
  animation: lui-sun 20s ease-in-out infinite alternate;
}
.scn-laodamas-invites-ulysses .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d2b48c 0%, #a0764a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-laodamas-invites-ulysses .column-left {
  position: absolute; bottom: 35%; left: 15%; width: 12px; height: 60%;
  background: linear-gradient(180deg, #f5f5dc 0%, #c4a882 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
  animation: lui-column 10s ease-in-out infinite alternate;
}
.scn-laodamas-invites-ulysses .column-right {
  position: absolute; bottom: 35%; right: 15%; width: 12px; height: 60%;
  background: linear-gradient(180deg, #f5f5dc 0%, #c4a882 100%);
  border-radius: 4px;
  box-shadow: -2px 0 6px rgba(0,0,0,0.2);
  animation: lui-column 12s ease-in-out infinite alternate-reverse;
}
.scn-laodamas-invites-ulysses .laodamas {
  position: absolute; bottom: 20%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #5c4033 0%, #3e2a1f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lui-laodamas 6s ease-in-out infinite;
}
.scn-laodamas-invites-ulysses .ulysses {
  position: absolute; bottom: 20%; right: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3728 0%, #2d1f14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lui-ulysses 8s ease-in-out infinite;
}
@keyframes lui-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes lui-sun { 0% { transform: scale(1); opacity: 0.8 } 50% { transform: scale(1.05); opacity: 1 } 100% { transform: scale(0.95); opacity: 0.85 } }
@keyframes lui-column { 0% { transform: translateY(0); opacity: 0.9 } 50% { transform: translateY(-2px); opacity: 1 } 100% { transform: translateY(1px); opacity: 0.95 } }
@keyframes lui-laodamas { 0% { transform: translateX(0) rotate(-2deg); } 33% { transform: translateX(3px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lui-ulysses { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }

/* ulysses-declines (calm, sunlit) */
.scn-ulysses-declines {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #d2b48c 80%, #b8860b 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 70%);
}
.scn-ulysses-declines .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0d4f1 0%, #f7e9c3 100%);
  animation: lud-sky 18s ease-in-out infinite alternate;
}
.scn-ulysses-declines .sun {
  position: absolute; top: 10%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff7d6 0%, #ffe88a 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255, 232, 138, 0.4);
  animation: lud-sun 25s ease-in-out infinite alternate;
}
.scn-ulysses-declines .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d2b48c 0%, #a0764a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-ulysses-declines .column-left {
  position: absolute; bottom: 35%; left: 15%; width: 12px; height: 60%;
  background: linear-gradient(180deg, #f5f5dc 0%, #c4a882 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
  animation: lud-column 14s ease-in-out infinite alternate;
}
.scn-ulysses-declines .column-right {
  position: absolute; bottom: 35%; right: 15%; width: 12px; height: 60%;
  background: linear-gradient(180deg, #f5f5dc 0%, #c4a882 100%);
  border-radius: 4px;
  box-shadow: -2px 0 6px rgba(0,0,0,0.2);
  animation: lud-column 16s ease-in-out infinite alternate-reverse;
}
.scn-ulysses-declines .ulysses-profile {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #4a3728 0%, #2d1f14 100%);
  border-radius: 50% 30% 30% 50% / 60% 30% 40% 50%;
  transform: translateX(-50%);
  animation: lud-profile 5s ease-in-out infinite;
}
.scn-ulysses-declines .hand {
  position: absolute; bottom: 32%; left: 53%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #6b4f3a 0%, #4a3728 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: top center;
  animation: lud-hand 4s ease-in-out infinite;
}
@keyframes lud-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes lud-sun { 0% { transform: scale(0.95); opacity: 0.8 } 50% { transform: scale(1.03); opacity: 1 } 100% { transform: scale(0.98); opacity: 0.85 } }
@keyframes lud-column { 0% { transform: translateY(0); opacity: 0.9 } 50% { transform: translateY(-3px); opacity: 1 } 100% { transform: translateY(1px); opacity: 0.95 } }
@keyframes lud-profile { 0% { transform: translateX(-50%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(1deg); } }
@keyframes lud-hand { 0% { transform: rotate(0); } 33% { transform: rotate(-10deg); } 66% { transform: rotate(5deg); } 100% { transform: rotate(0); } }

/* euryalus-insults-ulysses (tense, sunlit) */
.scn-euryalus-insults-ulysses {
  background:
    linear-gradient(180deg, #e8c87a 0%, #f5deb3 30%, #d2b48c 60%, #a0522d 100%),
    radial-gradient(ellipse at 30% 0%, #fff5e6 0%, transparent 60%);
}
.scn-euryalus-insults-ulysses .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0d9a0 0%, #e8c87a 100%);
  animation: eiu-sky 8s ease-in-out infinite alternate;
}
.scn-euryalus-insults-ulysses .sun-harsh {
  position: absolute; top: 5%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff7d6 0%, #ffe88a 40%, #ffaa33 70%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255, 170, 51, 0.6);
  animation: eiu-sun 2s ease-in-out infinite alternate;
}
.scn-euryalus-insults-ulysses .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #d2b48c 0%, #8b5e3c 100%);
  border-radius: 10% 10% 0 0;
}
.scn-euryalus-insults-ulysses .shadow-stripe {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 8px;
  background: linear-gradient(90deg, transparent 0%, #4a3a2a 50%, transparent 100%);
  filter: blur(3px);
  animation: eiu-shadow 4s ease-in-out infinite;
}
.scn-euryalus-insults-ulysses .euryalus {
  position: absolute; bottom: 18%; left: 25%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #6b3f1d 0%, #4a2a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eiu-euryalus 1.5s ease-in-out infinite;
}
.scn-euryalus-insults-ulysses .ulysses-shadow {
  position: absolute; bottom: 18%; right: 25%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2d1f14 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: brightness(0.8);
  animation: eiu-ulysses 3s ease-in-out infinite;
}
.scn-euryalus-insults-ulysses .dust {
  position: absolute; bottom: 25%; left: 40%; width: 10px; height: 10px;
  background: radial-gradient(circle, #c4a882 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: eiu-dust 2s ease-in-out infinite;
}
@keyframes eiu-sky { 0% { opacity: 0.8; filter: brightness(1); } 50% { opacity: 1; filter: brightness(1.1); } 100% { opacity: 0.85; filter: brightness(0.95); } }
@keyframes eiu-sun { 0% { transform: scale(0.9); box-shadow: 0 0 50px 20px rgba(255,170,51,0.4); } 50% { transform: scale(1.15); box-shadow: 0 0 100px 40px rgba(255,170,51,0.7); } 100% { transform: scale(0.95); box-shadow: 0 0 60px 25px rgba(255,170,51,0.5); } }
@keyframes eiu-shadow { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.5); } 100% { opacity: 0.4; transform: scaleY(0.9); } }
@keyframes eiu-euryalus { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(8px) rotate(5deg); } 50% { transform: translateX(12px) rotate(-3deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes eiu-ulysses { 0% { transform: translateX(0); opacity: 0.9; } 50% { transform: translateX(-2px); opacity: 0.7; } 100% { transform: translateX(1px); opacity: 0.85; } }
@keyframes eiu-dust { 0% { transform: translateY(0) scale(1); opacity: 0; } 30% { opacity: 0.6; } 60% { transform: translateY(-15px) scale(3); opacity: 0; } 100% { transform: translateY(0) scale(1); opacity: 0; } }

/* ulysses-responds-angrily (tense, sunlit) */
.scn-ulysses-responds-angrily {
  background:
    linear-gradient(180deg, #e8c87a 0%, #f5deb3 30%, #d2b48c 60%, #a0522d 100%),
    radial-gradient(ellipse at 60% 0%, #fff5e6 0%, transparent 60%);
}
.scn-ulysses-responds-angrily .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0d9a0 0%, #e8c87a 100%);
  animation: ura-sky 6s ease-in-out infinite alternate;
}
.scn-ulysses-responds-angrily .sun-harsh {
  position: absolute; top: 5%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff7d6 0%, #ffe88a 40%, #ffaa33 70%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255, 170, 51, 0.6);
  animation: ura-sun 1.8s ease-in-out infinite alternate;
}
.scn-ulysses-responds-angrily .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #d2b48c 0%, #8b5e3c 100%);
  border-radius: 10% 10% 0 0;
}
.scn-ulysses-responds-angrily .shadow-stripe {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 8px;
  background: linear-gradient(90deg, transparent 0%, #4a3a2a 50%, transparent 100%);
  filter: blur(3px);
  animation: ura-shadow 3s ease-in-out infinite;
}
.scn-ulysses-responds-angrily .ulysses-angry {
  position: absolute; bottom: 18%; right: 30%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #3e2a1f 0%, #1a0f08 100%);
  border-radius: 50% 40% 40% 50% / 60% 40% 50% 40%;
  transform-origin: bottom center;
  animation: ura-ulysses 1s ease-in-out infinite;
}
.scn-ulysses-responds-angrily .arm {
  position: absolute; bottom: 38%; right: 42%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #3e2a1f 0%, #2d1f14 100%);
  border-radius: 40% 40% 60% 60%;
  transform-origin: right center;
  animation: ura-arm 0.8s ease-in-out infinite;
}
.scn-ulysses-responds-angrily .dust {
  position: absolute; bottom: 22%; left: 35%; width: 12px; height: 12px;
  background: radial-gradient(circle, #c4a882 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ura-dust 1.5s ease-in-out infinite;
}
@keyframes ura-sky { 0% { opacity: 0.7; filter: brightness(1.1); } 50% { opacity: 1; filter: brightness(1.3); } 100% { opacity: 0.8; filter: brightness(1); } }
@keyframes ura-sun { 0% { transform: scale(1); box-shadow: 0 0 60px 25px rgba(255,170,51,0.5); } 50% { transform: scale(1.2); box-shadow: 0 0 120px 50px rgba(255,170,51,0.8); } 100% { transform: scale(0.9); box-shadow: 0 0 50px 20px rgba(255,170,51,0.4); } }
@keyframes ura-shadow { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(0.8); } 100% { opacity: 0.5; transform: scaleY(1.1); } }
@keyframes ura-ulysses { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-6px) rotate(-8deg); } 60% { transform: translateX(4px) rotate(5deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ura-arm { 0% { transform: rotate(0); } 25% { transform: rotate(-30deg); } 50% { transform: rotate(-10deg); } 75% { transform: rotate(15deg); } 100% { transform: rotate(0); } }
@keyframes ura-dust { 0% { transform: translateY(0) scale(1); opacity: 0; } 20% { opacity: 0.7; } 50% { transform: translateY(-20px) scale(4); opacity: 0; } 100% { transform: translateY(0) scale(1); opacity: 0; } }

/* Scene 1: telemachus-asks-euryclea-for-supplies */
.scn-telemachus-asks-euryclea-for-supplies {
  background:
    linear-gradient(180deg, #2c1e14 0%, #1f140e 100%),
    radial-gradient(ellipse at 50% 60%, #3a2820 0%, transparent 70%);
}
.scn-telemachus-asks-euryclea-for-supplies .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3528 0%, #2c1e14 100%);
  animation: tqe-wall 15s ease-in-out infinite alternate;
}
.scn-telemachus-asks-euryclea-for-supplies .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-telemachus-asks-euryclea-for-supplies .jar-big {
  position: absolute; bottom: 20%; left: 25%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #6a4a2a 0%, #3d2818 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: tqe-jarbig 6s ease-in-out infinite alternate;
}
.scn-telemachus-asks-euryclea-for-supplies .jar-left {
  position: absolute; bottom: 24%; left: 18%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #5a3e22 0%, #342214 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  animation: tqe-jarsmall 5s ease-in-out infinite alternate;
}
.scn-telemachus-asks-euryclea-for-supplies .jar-right {
  position: absolute; bottom: 22%; right: 30%; width: 32px; height: 45px;
  background: linear-gradient(135deg, #5a3e22 0%, #342214 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  animation: tqe-jarsmall 5s ease-in-out infinite alternate-reverse;
}
.scn-telemachus-asks-euryclea-for-supplies .figure {
  position: absolute; bottom: 30%; left: 55%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #1e1a12 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tqe-figure 4s ease-in-out infinite;
}
.scn-telemachus-asks-euryclea-for-supplies .lamp {
  position: absolute; bottom: 50%; left: 15%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffc070 0%, #b08030 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(192,128,48,.6);
  animation: tqe-lamp 3s ease-in-out infinite alternate;
}
.scn-telemachus-asks-euryclea-for-supplies .shelf {
  position: absolute; top: 22%; left: 10%; right: 10%; height: 6px;
  background: linear-gradient(180deg, #5a3e22 0%, #2c1e14 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
@keyframes tqe-wall { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes tqe-jarbig { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tqe-jarsmall { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tqe-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(4px) rotate(1deg) } 75% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tqe-lamp { 0% { box-shadow: 0 0 20px 6px rgba(192,128,48,.5); opacity:.8 } 50% { box-shadow: 0 0 40px 12px rgba(255,192,112,.7); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(192,128,48,.5); opacity:.85 } }

/* Scene 2: euryclea-weeps */
.scn-euryclea-weeps {
  background:
    linear-gradient(180deg, #1e1410 0%, #2a1c14 50%, #1a0e08 100%),
    radial-gradient(ellipse at 50% 70%, #2a1c14 0%, transparent 80%);
}
.scn-euryclea-weeps .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1c14 0%, #1a0e08 100%);
  animation: euw-wall 12s ease-in-out infinite alternate;
}
.scn-euryclea-weeps .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a0e08 0%, #0e0604 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.7);
}
.scn-euryclea-weeps .window {
  position: absolute; top: 10%; left: 40%; width: 30px; height: 40px;
  background: radial-gradient(circle, #4a6a8a 0%, #2a3a4a 100%);
  border: 2px solid #2c1e14;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: euw-window 8s ease-in-out infinite alternate;
}
.scn-euryclea-weeps .figure {
  position: absolute; bottom: 28%; left: 45%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1e1a12 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: euw-figure 3s ease-in-out infinite;
}
.scn-euryclea-weeps .candle {
  position: absolute; bottom: 45%; left: 60%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #b07030 100%);
  border-radius: 2px;
  box-shadow: 0 0 16px 4px rgba(255,208,128,.6);
  animation: euw-candle 2s ease-in-out infinite alternate;
}
.scn-euryclea-weeps .shadow {
  position: absolute; bottom: 25%; left: 40%; right: 10%; height: 30px;
  background: radial-gradient(ellipse at 60% 50%, rgba(0,0,0,.6) 0%, transparent 60%);
  animation: euw-shadow 3s ease-in-out infinite alternate;
}
.scn-euryclea-weeps .tear {
  position: absolute; bottom: 36%; left: 48%; width: 4px; height: 8px;
  background: linear-gradient(180deg, #8090a0 0%, transparent 100%);
  border-radius: 50%;
  opacity: .7;
  animation: euw-tear 2s ease-in-out infinite;
}
@keyframes euw-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes euw-window { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .6 } }
@keyframes euw-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes euw-candle { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 12px 3px rgba(255,208,128,.5) } 50% { transform: scaleY(1.05) scaleX(.95); box-shadow: 0 0 20px 6px rgba(255,208,128,.7) } 100% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 14px 4px rgba(255,208,128,.5) } }
@keyframes euw-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }
@keyframes euw-tear { 0% { transform: translateY(0); opacity: .7 } 50% { transform: translateY(4px); opacity: .4 } 100% { transform: translateY(8px); opacity: 0 } }

/* Scene 3: telemachus-assures-nurse */
.scn-telemachus-assures-nurse {
  background:
    linear-gradient(180deg, #2c1e14 0%, #1a0e08 100%),
    radial-gradient(ellipse at 50% 60%, #3a2820 0%, transparent 70%);
}
.scn-telemachus-assures-nurse .hearth {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 40px;
  background: linear-gradient(180deg, #5a3a22 0%, #2c1a10 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: tqn-hearth 10s ease-in-out infinite alternate;
}
.scn-telemachus-assures-nurse .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2820 0%, #1f140e 100%);
}
.scn-telemachus-assures-nurse .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a0e08 0%, #0e0604 100%);
}
.scn-telemachus-assures-nurse .figure-young {
  position: absolute; bottom: 32%; left: 35%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1e1a12 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tqn-young 5s ease-in-out infinite;
}
.scn-telemachus-assures-nurse .figure-old {
  position: absolute; bottom: 30%; right: 35%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2c221a 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tqn-old 6s ease-in-out infinite;
}
.scn-telemachus-assures-nurse .ember {
  position: absolute; bottom: 24%; left: 45%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ff8840 0%, #cc4400 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,136,64,.6);
  animation: tqn-ember 2s ease-in-out infinite alternate;
}
@keyframes tqn-hearth { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes tqn-young { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-1deg) } 50% { transform: translateX(5px) rotate(0) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tqn-old { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-2px) rotate(1deg) } 66% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tqn-ember { 0% { transform: scale(.8); opacity: .6 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(.9); opacity: .7 } }

/* Scene 4: minerva-readies-ship */
.scn-minerva-readies-ship {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2a2a4e 30%, #4a3a5a 60%, #6a4a3a 100%),
    radial-gradient(ellipse at 50% 80%, #6a4a3a 0%, transparent 70%);
}
.scn-minerva-readies-ship .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #4a3a5a 100%);
  animation: mrs-sky 20s ease-in-out infinite alternate;
}
.scn-minerva-readies-ship .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-minerva-readies-ship .ship {
  position: absolute; bottom: 30%; left: 30%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: mrs-ship 8s ease-in-out infinite alternate;
}
.scn-minerva-readies-ship .sail {
  position: absolute; bottom: 42%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: mrs-sail 6s ease-in-out infinite alternate;
}
.scn-minerva-readies-ship .dock {
  position: absolute; bottom: 35%; left: 5%; width: 30%; height: 8px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2c1e14 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-minerva-readies-ship .figure-goddess {
  position: absolute; bottom: 38%; left: 15%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mrs-figure 5s ease-in-out infinite;
}
.scn-minerva-readies-ship .wave-1 {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, #3a5a6a 0%, transparent 70%);
  filter: blur(2px);
  animation: mrs-wave1 12s linear infinite;
}
.scn-minerva-readies-ship .wave-2 {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #4a6a7a 0%, transparent 70%);
  filter: blur(2px);
  animation: mrs-wave2 15s linear infinite reverse;
}
@keyframes mrs-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes mrs-ship { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mrs-sail { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.02) scaleX(.98) } 100% { transform: scaleY(1) scaleX(1) } }
@keyframes mrs-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-1deg) } 50% { transform: translateX(6px) rotate(1deg) } 75% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mrs-wave1 { 0% { transform: translateX(0) } 100% { transform: translateX(-100%) } }
@keyframes mrs-wave2 { 0% { transform: translateX(0) } 100% { transform: translateX(100%) } }

.scn-demodox-sings-trojan-horse {
  background:
    radial-gradient(ellipse at 50% 60%, #8a6e4a 0%, transparent 60%),
    linear-gradient(180deg, #4a3a2a 0%, #6a5a3a 40%, #8a7a5a 100%);
}
.scn-demodox-sings-trojan-horse .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(200,170,120,.15) 0%, transparent 50%, rgba(80,60,30,.3) 100%);
  animation: dth-breathe 7s ease-in-out infinite alternate;
}
.scn-demodox-sings-trojan-horse .pillar {
  position: absolute; bottom: 0; width: 12px; height: 80%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -2px 0 6px rgba(0,0,0,.3), inset 2px 0 4px rgba(255,220,180,.1);
}
.scn-demodox-sings-trojan-horse .pillar-l { left: 14%; }
.scn-demodox-sings-trojan-horse .pillar-r { right: 14%; }
.scn-demodox-sings-trojan-horse .horse-silhouette {
  position: absolute; bottom: 25%; left: 50%; width: 110px; height: 75px;
  transform: translateX(-50%);
  background:
    radial-gradient(ellipse 50% 100% at 50% 100%, #2a221a 0%, transparent 100%),
    linear-gradient(180deg, #3a322a 0%, #1a1612 100%);
  border-radius: 40% 30% 20% 20% / 60% 50% 30% 30%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5), inset 0 -8px 12px rgba(0,0,0,.4);
  animation: dth-horse 5s ease-in-out infinite alternate;
}
.scn-demodox-sings-trojan-horse .bard-figure {
  position: absolute; bottom: 22%; left: 36%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dth-bard 3s ease-in-out infinite;
}
.scn-demodox-sings-trojan-horse .fire-pit {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #c06020 0%, #8a3a0a 60%, transparent 100%);
  border-radius: 50%;
  animation: dth-fire 1.5s ease-in-out infinite alternate;
}
.scn-demodox-sings-trojan-horse .glow-flicker {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, rgba(200,100,30,.25) 0%, transparent 70%);
  border-radius: 50%;
  animation: dth-glow 2s ease-in-out infinite alternate;
}
.scn-demodox-sings-trojan-horse .shadow-fig {
  position: absolute; bottom: 22%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #1a1612 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  opacity: .7;
  animation: dth-shadow 6s ease-in-out infinite alternate;
}
.scn-demodox-sings-trojan-horse .shadow-a { left: 22%; animation-delay: -2s; }
.scn-demodox-sings-trojan-horse .shadow-b { right: 22%; animation-delay: -4s; }
@keyframes dth-breathe { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes dth-horse { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes dth-bard { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(2px) rotate(2deg); } 60% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dth-fire { 0% { transform: translateX(-50%) scaleY(.8); opacity: .7; } 50% { transform: translateX(-50%) scaleY(1.2); opacity: 1; } 100% { transform: translateX(-50%) scaleY(.9); opacity: .8; } }
@keyframes dth-glow { 0% { transform: translateX(-50%) scale(.9); opacity: .6; } 50% { transform: translateX(-50%) scale(1.1); opacity: .9; } 100% { transform: translateX(-50%) scale(1); opacity: .75; } }
@keyframes dth-shadow { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }

.scn-alcinous-asks-ulysses-to-speak {
  background:
    radial-gradient(ellipse at 50% 40%, #c8a060 0%, transparent 70%),
    linear-gradient(180deg, #5a3a1a 0%, #8a6a3a 40%, #a08050 100%);
}
.scn-alcinous-asks-ulysses-to-speak .hall-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(180,140,80,.2) 0%, transparent 40%, rgba(60,40,20,.4) 100%);
  animation: aau-amber 10s ease-in-out infinite alternate;
}
.scn-alcinous-asks-ulysses-to-speak .table-long {
  position: absolute; bottom: 22%; left: 15%; right: 15%; height: 8px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3220 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
}
.scn-alcinous-asks-ulysses-to-speak .king-throne {
  position: absolute; bottom: 22%; left: 28%; width: 32px; height: 52px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4), inset 0 2px 6px rgba(255,200,100,.2);
  animation: aau-throne 6s ease-in-out infinite alternate;
}
.scn-alcinous-asks-ulysses-to-speak .king-figure {
  position: absolute; bottom: 32%; left: 30%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: aau-king 5s ease-in-out infinite;
}
.scn-alcinous-asks-ulysses-to-speak .guest-figure {
  position: absolute; bottom: 28%; right: 32%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aau-guest 7s ease-in-out infinite alternate;
}
.scn-alcinous-asks-ulysses-to-speak .torch {
  position: absolute; bottom: 40%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a3220 100%);
  border-radius: 2px;
}
.scn-alcinous-asks-ulysses-to-speak .torch-l { left: 18%; }
.scn-alcinous-asks-ulysses-to-speak .torch-r { right: 18%; }
.scn-alcinous-asks-ulysses-to-speak .warm-glow {
  position: absolute; bottom: 40%; left: 50%; width: 120px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, rgba(255,180,60,.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: aau-ambient 4s ease-in-out infinite alternate;
}
@keyframes aau-amber { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes aau-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes aau-king { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes aau-guest { 0% { transform: translateX(0) rotate(-2deg); } 33% { transform: translateX(3px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes aau-ambient { 0% { transform: translateX(-50%) scale(.95); opacity: .7; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(1); opacity: .85; } }

.scn-ulysses-prepares-to-speak {
  background:
    radial-gradient(ellipse at 50% 60%, #1a1a2a 0%, transparent 70%),
    linear-gradient(180deg, #0a0a14 0%, #1a1624 40%, #2a203a 100%);
}
.scn-ulysses-prepares-to-speak .room-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,20,40,.6) 0%, transparent 50%, rgba(0,0,10,.8) 100%);
  animation: ups-dark 12s ease-in-out infinite alternate;
}
.scn-ulysses-prepares-to-speak .table-round {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-ulysses-prepares-to-speak .bard-harp {
  position: absolute; bottom: 26%; left: 44%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 4px 4px 2px 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: ups-harp 6s ease-in-out infinite alternate;
}
.scn-ulysses-prepares-to-speak .speaker-silhouette {
  position: absolute; bottom: 22%; left: 38%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ups-speaker 4s ease-in-out infinite;
}
.scn-ulysses-prepares-to-speak .listener {
  position: absolute; bottom: 24%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  opacity: .8;
  animation: ups-listener 8s ease-in-out infinite alternate;
}
.scn-ulysses-prepares-to-speak .listener-a { right: 28%; animation-delay: -2s; }
.scn-ulysses-prepares-to-speak .listener-b { right: 18%; animation-delay: -5s; }
.scn-ulysses-prepares-to-speak .candle-light {
  position: absolute; bottom: 30%; left: 50%; width: 4px; height: 8px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 100%, #ffd060 0%, #c08020 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(255,200,60,.3), 0 0 40px 12px rgba(255,200,60,.1);
  animation: ups-candle 2s ease-in-out infinite alternate;
}
.scn-ulysses-prepares-to-speak .shadow-sweep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: ups-sweep 9s ease-in-out infinite alternate;
}
@keyframes ups-dark { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes ups-harp { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(-8deg) scaleY(1.02); } 100% { transform: rotate(-12deg) scaleY(.98); } }
@keyframes ups-speaker { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-2deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ups-listener { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ups-candle { 0% { transform: translateX(-50%) scaleY(.8); opacity: .7; } 50% { transform: translateX(-50%) scaleY(1.3); opacity: 1; } 100% { transform: translateX(-50%) scaleY(.9); opacity: .8; } }
@keyframes ups-sweep { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }

.scn-cicons-attack {
  background:
    radial-gradient(ellipse at 30% 80%, #c08040 0%, transparent 60%),
    linear-gradient(180deg, #6a8aba 0%, #8aaada 40%, #c8d8e8 70%, #d8c890 100%);
}
.scn-cicons-attack .sky-bright {
  position: absolute; top: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a7aaa 0%, #8aaada 100%);
  animation: cic-sky 15s ease-in-out infinite alternate;
}
.scn-cicons-attack .ground-sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b89860 0%, #8a7040 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
  animation: cic-ground 12s ease-in-out infinite alternate;
}
.scn-cicons-attack .wall-ruin {
  position: absolute; bottom: 30%; left: 20%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 80% 100%, 80% 60%, 60% 60%, 60% 100%, 40% 100%, 40% 50%, 20% 50%, 20% 100%, 0 100%);
  animation: cic-wall 8s ease-in-out infinite alternate;
}
.scn-cicons-attack .figure-attacker {
  position: absolute; bottom: 22%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: cic-attacker 3s ease-in-out infinite;
}
.scn-cicons-attack .fig-a { left: 32%; animation-delay: 0s; }
.scn-cicons-attack .fig-b { left: 44%; animation-delay: -1s; }
.scn-cicons-attack .figure-defender {
  position: absolute; bottom: 24%; right: 30%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: cic-defender 2.5s ease-in-out infinite alternate;
}
.scn-cicons-attack .spear-strike {
  position: absolute; bottom: 36%; left: 40%; width: 3px; height: 28px;
  background: linear-gradient(180deg, #c0a060 0%, #8a6a2a 100%);
  border-radius: 1px;
  transform: rotate(20deg);
  box-shadow: 0 0 6px rgba(200,160,80,.3);
  animation: cic-spear .8s ease-in-out infinite alternate;
}
.scn-cicons-attack .dust-cloud {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 16px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,120,.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: cic-dust 4s ease-in-out infinite alternate;
}
@keyframes cic-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes cic-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cic-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cic-attacker { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes cic-defender { 0% { transform: scaleX(-1) translateY(0) rotate(2deg); } 50% { transform: scaleX(-1) translateY(-4px) rotate(-2deg); } 100% { transform: scaleX(-1) translateY(0) rotate(1deg); } }
@keyframes cic-spear { 0% { transform: rotate(15deg) translateY(0); opacity: .8; } 50% { transform: rotate(25deg) translateY(-4px); opacity: 1; } 100% { transform: rotate(18deg) translateY(-2px); opacity: .9; } }
@keyframes cic-dust { 0% { transform: scaleY(.8); opacity: .4; } 50% { transform: scaleY(1.2); opacity: .7; } 100% { transform: scaleY(.9); opacity: .5; } }

.scn-footnote-goat-ithaca { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a2a1e 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%); }
.scn-footnote-goat-ithaca .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%); }
.scn-footnote-goat-ithaca .lamp { position:absolute; bottom:45%; left:30%; width:20px; height:30px; background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 10px rgba(192,128,64,.4); animation: git-lamp 4s ease-in-out infinite alternate; }
.scn-footnote-goat-ithaca .desk { position:absolute; bottom:20%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-footnote-goat-ithaca .scroll { position:absolute; bottom:25%; left:20%; width:60px; height:10px; background: linear-gradient(180deg, #d4c080 0%, #b8a060 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-5deg); animation: git-scroll 12s ease-in-out infinite; }
.scn-footnote-goat-ithaca .goat { position:absolute; bottom:28%; left:55%; width:24px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: git-goat 6s ease-in-out infinite; }
.scn-footnote-goat-ithaca .window { position:absolute; top:10%; right:10%; width:80px; height:100px; background: rgba(10,15,30,.6); border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-footnote-goat-ithaca .moon { position:absolute; top:15%; right:18%; width:20px; height:20px; background: radial-gradient(circle, #e8dcc8 0%, #c8b8a0 100%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(232,220,200,.3); animation: git-moon 20s ease-in-out infinite alternate; }
.scn-footnote-goat-ithaca .hill { position:absolute; bottom:8%; right:10%; width:60px; height:30px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 0 0 40% 40% / 0 0 80% 80%; opacity:.8; }
@keyframes git-lamp { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:.8; transform: scaleY(.98); } }
@keyframes git-scroll { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-7deg) translateY(0); } }
@keyframes git-goat { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(1deg); } }
@keyframes git-moon { 0% { transform: translateX(0); opacity:.6; } 50% { transform: translateX(5px); opacity:.9; } 100% { transform: translateX(-3px); opacity:.7; } }

.scn-footnote-emendation-continued { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a2a1e 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%); }
.scn-footnote-emendation-continued .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); }
.scn-footnote-emendation-continued .desk { position:absolute; bottom:20%; left:8%; right:8%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-footnote-emendation-continued .candle { position:absolute; bottom:32%; left:25%; width:10px; height:30px; background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%); border-radius: 4px; box-shadow: 0 0 10px 2px rgba(232,220,200,.2); animation: emc-candle 8s ease-in-out infinite; }
.scn-footnote-emendation-continued .flame { position:absolute; bottom:60%; left:24.5%; width:8px; height:14px; background: radial-gradient(circle, #ffd680 0%, #ffb040 60%, transparent 100%); border-radius: 50%; animation: emc-flame 2s ease-in-out infinite alternate; }
.scn-footnote-emendation-continued .inkwell { position:absolute; bottom:28%; left:45%; width:16px; height:18px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-footnote-emendation-continued .quill { position:absolute; bottom:38%; left:48%; width:2px; height:50px; background: linear-gradient(180deg, #c8b8a0 0%, #8a7a6a 100%); transform: rotate(20deg); transform-origin: bottom; border-radius: 50%; animation: emc-quill 5s ease-in-out infinite; }
.scn-footnote-emendation-continued .paper { position:absolute; bottom:22%; left:16%; width:70px; height:12px; background: linear-gradient(180deg, #e8dcc8 0%, #d4c8b0 100%); border-radius: 2px; transform: rotate(-2deg); }
.scn-footnote-emendation-continued .emend-line { position:absolute; bottom:24%; left:20%; width:50px; height:1px; background: #8a5a2a; transform: rotate(-5deg); animation: emc-line 4s ease-in-out infinite; box-shadow: 0 0 2px 1px rgba(138,90,42,.5); }
@keyframes emc-candle { 0%,100% { height:30px; } 50% { height:28px; } }
@keyframes emc-flame { 0% { transform: scaleY(1) translateY(0); opacity:.8; } 50% { transform: scaleY(1.3) translateY(-2px); opacity:1; } 100% { transform: scaleY(.9) translateY(1px); opacity:.7; } }
@keyframes emc-quill { 0% { transform: rotate(20deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(15deg); } }
@keyframes emc-line { 0%,100% { opacity:.5; } 50% { opacity:1; } }

.scn-footnote-eryx-horseman { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a2a1e 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%); }
.scn-footnote-eryx-horseman .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%); }
.scn-footnote-eryx-horseman .table { position:absolute; bottom:20%; left:5%; right:5%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-footnote-eryx-horseman .horseman { position:absolute; bottom:30%; left:55%; width:30px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 60% 60% 40% 40% / 70% 70% 40% 40%; transform: rotate(-5deg); animation: ery-horseman 8s ease-in-out infinite; }
.scn-footnote-eryx-horseman .mountain { position:absolute; bottom:8%; right:10%; width:80px; height:50px; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; opacity:.6; }
.scn-footnote-eryx-horseman .window { position:absolute; top:10%; right:8%; width:100px; height:80px; background: rgba(10,15,30,.5); border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-footnote-eryx-horseman .lamp { position:absolute; bottom:45%; left:20%; width:18px; height:28px; background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 25px 8px rgba(192,128,64,.3); animation: ery-lamp 5s ease-in-out infinite alternate; }
.scn-footnote-eryx-horseman .map { position:absolute; bottom:28%; left:10%; width:50px; height:8px; background: linear-gradient(180deg, #d4c080 0%, #b8a060 100%); border-radius: 20% 20% 10% 10%; transform: rotate(5deg); animation: ery-map 15s ease-in-out infinite; }
@keyframes ery-horseman { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(4px); } 100% { transform: rotate(-7deg) translateX(-2px); } }
@keyframes ery-lamp { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.04); } 100% { opacity:.8; transform: scaleY(.97); } }
@keyframes ery-map { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(7deg) translateY(0); } }

.scn-footnote-marettimo-clarification { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a2a1e 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%); }
.scn-footnote-marettimo-clarification .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); }
.scn-footnote-marettimo-clarification .telescope { position:absolute; bottom:35%; left:15%; width:50px; height:10px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius: 20% 40% 40% 20%; transform: rotate(-20deg); transform-origin: right center; animation: mrc-telescope 10s ease-in-out infinite; }
.scn-footnote-marettimo-clarification .tripod { position:absolute; bottom:22%; left:13%; width:2px; height:30px; background: #3a2a1a; transform: rotate(10deg); box-shadow: -4px 0 0 #3a2a1a, 4px 0 0 #3a2a1a; }
.scn-footnote-marettimo-clarification .chair { position:absolute; bottom:22%; left:35%; width:30px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-footnote-marettimo-clarification .window { position:absolute; top:10%; right:5%; width:100px; height:90px; background: rgba(10,15,30,.5); border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-footnote-marettimo-clarification .islands { position:absolute; bottom:15%; right:12%; width:60px; height:20px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 0 0 40% 40% / 0 0 80% 80%; opacity:.5; }
.scn-footnote-marettimo-clarification .lamp { position:absolute; bottom:45%; left:35%; width:16px; height:26px; background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 6px rgba(192,128,64,.3); animation: mrc-lamp 6s ease-in-out infinite alternate; }
.scn-footnote-marettimo-clarification .curtain { position:absolute; top:0; right:5%; width:20px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 10% 10%; opacity:.8; animation: mrc-curtain 15s ease-in-out infinite; }
@keyframes mrc-telescope { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-22deg); } }
@keyframes mrc-lamp { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:.8; transform: scaleY(.97); } }
@keyframes mrc-curtain { 0%,100% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.02); opacity:.9; } }

.scn-minerva-departs {
  background: linear-gradient(180deg, #f4e8c1 0%, #d6c5a0 50%, #b8a584 100%), radial-gradient(ellipse at 40% 70%, #fff5e0 0%, transparent 60%);
}
.scn-minerva-departs .bg-deep { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #cbb99b 0%, transparent 100%); animation: mind-bg 20s ease-in-out infinite alternate; }
.scn-minerva-departs .bg-mid { position:absolute; inset:30% 0 0 0; background: linear-gradient(180deg, #c3a882, #9e8569); }
.scn-minerva-departs .window { position:absolute; top:8%; left:60%; width:40%; height:50%; background: linear-gradient(180deg, #b0d0e8 0%, #8bb8d4 100%); border: 8px solid #6b4f3a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255, 255, 255, 0.3); animation: mind-window 8s ease-in-out infinite; }
.scn-minerva-departs .doorway { position:absolute; bottom:0; left:25%; width:20%; height:50%; background: linear-gradient(180deg, #4a3b2c, #2c2218); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,0.4); }
.scn-minerva-departs .minerva { position:absolute; bottom:8%; left:22%; width:30px; height:70px; background: linear-gradient(180deg, #70605a 0%, #3d322c 100%); border-radius: 45% 55% 40% 60% / 60% 50% 50% 40%; transform-origin: bottom center; animation: mind-minerva 6s ease-in-out infinite; }
.scn-minerva-departs .telemachus { position:absolute; bottom:8%; left:38%; width:28px; height:60px; background: linear-gradient(180deg, #a07050 0%, #5e3b2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mind-telem 9s ease-in-out infinite; }
.scn-minerva-departs .stool { position:absolute; bottom:0; left:30%; width:32px; height:12px; background: linear-gradient(90deg, #5a4030, #3a2a1a); border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: mind-stool 12s ease-in-out infinite; }
@keyframes mind-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mind-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes mind-minerva { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(-6px) rotate(1deg); } 50% { transform: translateX(-12px) rotate(-2deg); } 75% { transform: translateX(-6px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes mind-telem { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-6px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mind-stool { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }

.scn-telemachus-feels-change {
  background: linear-gradient(180deg, #f9e8c0 0%, #eed4a0 50%, #c9ad7e 100%), radial-gradient(ellipse at 50% 40%, #fff7e6 0%, transparent 70%);
}
.scn-telemachus-feels-change .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e0c9a0, #c1a77a); }
.scn-telemachus-feels-change .bg-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b3905b, #7a5e38); box-shadow: inset 0 8px 15px rgba(0,0,0,0.3); }
.scn-telemachus-feels-change .telemachus { position:absolute; bottom:20%; left:50%; width:32px; height:75px; transform: translateX(-50%); background: linear-gradient(180deg, #b07a50 0%, #704a30 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: telf-telem 5s ease-in-out infinite; }
.scn-telemachus-feels-change .light-beam { position:absolute; top:0; left:40%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255, 255, 200, 0.6) 0%, rgba(255, 255, 200, 0) 100%); border-radius: 0 0 50% 50%; filter: blur(8px); animation: telf-beam 4s ease-in-out infinite alternate; }
.scn-telemachus-feels-change .chair { position:absolute; bottom:24%; left:30%; width:40px; height:30px; background: linear-gradient(180deg, #8a6a4a, #503820); border-radius: 8% 8% 0 0; box-shadow: 0 6px 10px rgba(0,0,0,0.3); animation: telf-chair 10s ease-in-out infinite; }
.scn-telemachus-feels-change .pillar { position:absolute; bottom:0; left:70%; width:16px; height:80%; background: linear-gradient(180deg, #d4bba0, #b29880); border-radius: 8% 8% 0 0; box-shadow: inset 4px 0 8px rgba(0,0,0,0.2); }
@keyframes telf-telem { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-8px) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes telf-beam { 0% { opacity: 0.5; transform: scaleY(0.9); } 100% { opacity: 1; transform: scaleY(1.2); } }
@keyframes telf-chair { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }

.scn-phemius-sings-return {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1e30 40%, #3a1e1e 100%), radial-gradient(ellipse at 30% 60%, #4a2a1a 0%, transparent 70%);
}
.scn-phemius-sings-return .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0e0e1a, #1a1018); }
.scn-phemius-sings-return .bg-fireglow { position:absolute; inset:30% 20% 20% 20%; background: radial-gradient(ellipse at 50% 100%, #c06a30 0%, transparent 80%); animation: psr-fire 6s ease-in-out infinite alternate; }
.scn-phemius-sings-return .phemius { position:absolute; bottom:20%; left:35%; width:30px; height:55px; background: linear-gradient(180deg, #4a3a30 0%, #2a1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: psr-phem 8s ease-in-out infinite; }
.scn-phemius-sings-return .lyre { position:absolute; bottom:22%; left:38%; width:14px; height:24px; background: linear-gradient(180deg, #a08060, #604020); border-radius: 50% 50% 30% 30%; transform: rotate(-20deg); animation: psr-lyre 5s ease-in-out infinite; }
.scn-phemius-sings-return .suitors { position:absolute; bottom:10%; left:50%; width:100px; height:40px; background: linear-gradient(180deg, #2a1e1e 0%, #120808 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; opacity: 0.8; animation: psr-suitors 3s ease-in-out infinite; }
.scn-phemius-sings-return .penelope-upstairs { position:absolute; top:8%; left:20%; width:22px; height:45px; background: linear-gradient(180deg, #503830 0%, #2a1a14 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; transform: scale(0.7); animation: psr-pen 12s ease-in-out infinite; }
.scn-phemius-sings-return .staircase { position:absolute; bottom:0; left:15%; width:30%; height:50%; background: linear-gradient(180deg, #4a3030 0%, #201010 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-phemius-sings-return .torch { position:absolute; bottom:40%; left:10%; width:10px; height:30px; background: linear-gradient(180deg, #c07030, #5a2a10); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 40px 15px #c07030; animation: psr-torch 2s ease-in-out infinite; }
@keyframes psr-fire { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes psr-phem { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes psr-lyre { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-15deg) scale(1.05); } 100% { transform: rotate(-20deg) scale(1); } }
@keyframes psr-suitors { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes psr-pen { 0% { transform: scale(0.7) translateY(0); } 50% { transform: scale(0.7) translateY(-2px); } 100% { transform: scale(0.7) translateY(0); } }
@keyframes psr-torch { 0% { opacity: 0.8; box-shadow: 0 0 30px 10px #c07030; } 50% { opacity: 1; box-shadow: 0 0 50px 20px #c07030; } 100% { opacity: 0.8; box-shadow: 0 0 30px 10px #c07030; } }

.scn-penelope-asks-to-change-song {
  background: linear-gradient(180deg, #1a1028 0%, #2a1828 40%, #3a1a1a 100%), radial-gradient(ellipse at 40% 70%, #4a2a1a 0%, transparent 70%);
}
.scn-penelope-asks-to-change-song .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0c0814, #140c10); }
.scn-penelope-asks-to-change-song .bg-fireglow { position:absolute; inset:35% 15% 20% 25%; background: radial-gradient(ellipse at 50% 100%, #b06830 0%, transparent 80%); animation: pen-fire 7s ease-in-out infinite alternate; }
.scn-penelope-asks-to-change-song .penelope { position:absolute; bottom:25%; left:25%; width:30px; height:65px; background: linear-gradient(180deg, #503830 0%, #2a1a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pen-pen 10s ease-in-out infinite; }
.scn-penelope-asks-to-change-song .phemius { position:absolute; bottom:20%; left:45%; width:28px; height:50px; background: linear-gradient(180deg, #4a3a30 0%, #2a1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: pen-phem 8s ease-in-out infinite; }
.scn-penelope-asks-to-change-song .suitors { position:absolute; bottom:10%; left:55%; width:80px; height:35px; background: linear-gradient(180deg, #2a1e1e 0%, #120808 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; opacity: 0.7; animation: pen-suitors 4s ease-in-out infinite; }
.scn-penelope-asks-to-change-song .staircase { position:absolute; bottom:0; left:10%; width:25%; height:60%; background: linear-gradient(180deg, #3a2020 0%, #1a0a0a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 -8px 15px rgba(0,0,0,0.6); animation: pen-stair 15s ease-in-out infinite; }
.scn-penelope-asks-to-change-song .torch { position:absolute; bottom:40%; left:8%; width:8px; height:28px; background: linear-gradient(180deg, #b06030, #4a1a0a); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 35px 12px #b06030; animation: pen-torch 2.5s ease-in-out infinite; }
.scn-penelope-asks-to-change-song .column { position:absolute; bottom:0; left:35%; width:12px; height:70%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 0 0; box-shadow: inset -3px 0 6px rgba(0,0,0,0.3); }
@keyframes pen-fire { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes pen-pen { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(1deg); } 50% { transform: translateY(-8px) rotate(0); } 75% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes pen-phem { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-2px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes pen-suitors { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pen-stair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pen-torch { 0% { opacity: 0.7; box-shadow: 0 0 25px 8px #b06030; } 50% { opacity: 1; box-shadow: 0 0 45px 18px #b06030; } 100% { opacity: 0.7; box-shadow: 0 0 25px 8px #b06030; } }

.scn-minerva-encourages {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #e8d5b8 40%, #c4a87a 100%),
    radial-gradient(ellipse at 50% 80%, #f0dbb0 0%, transparent 60%);
}
.scn-minerva-encourages .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #cfa776 0%, #b8946a 100%); }
.scn-minerva-encourages .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8b6f48 0%, #5a4230 100%); }
.scn-minerva-encourages .window { position:absolute; top:15%; left:55%; width:80px; height:100px; background: linear-gradient(180deg, #aaccff 0%, #cce0ff 100%); border:6px solid #7a6347; border-radius:4px; animation: mi-en-window 8s ease-in-out infinite alternate; }
.scn-minerva-encourages .hearth { position:absolute; bottom:32%; left:20%; width:60px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #4a2a0a 100%); border-radius:50% 50% 0 0; animation: mi-en-hearth 4s ease-in-out infinite; }
.scn-minerva-encourages .minerva { position:absolute; bottom:34%; left:50%; width:35px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: mi-en-figure 6s ease-in-out infinite; }
.scn-minerva-encourages .telemachus { position:absolute; bottom:34%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: mi-en-figure 7s ease-in-out infinite alternate; }
.scn-minerva-encourages .lamp { position:absolute; bottom:42%; left:70%; width:10px; height:14px; background: radial-gradient(circle, #ffd080 0%, #b07030 100%); border-radius:50%; box-shadow:0 0 20px 6px #ffcc66, 0 0 40px 12px rgba(200,130,50,.5); animation: mi-en-lamp 3s ease-in-out infinite alternate; }
@keyframes mi-en-window { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mi-en-hearth { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(1) } }
@keyframes mi-en-figure { 0% { transform: translateX(-2px) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes mi-en-lamp { 0% { box-shadow:0 0 15px 3px #ffcc66; opacity:0.8 } 50% { box-shadow:0 0 30px 8px #ffdd88; opacity:1 } 100% { box-shadow:0 0 20px 5px #ffcc66; opacity:0.85 } }

.scn-telemachus-explains-suitors {
  background:
    linear-gradient(180deg, #d4ccb8 0%, #b0a490 40%, #7a6e5e 100%),
    radial-gradient(ellipse at 50% 90%, #c0b090 0%, transparent 50%);
}
.scn-telemachus-explains-suitors .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #bab0a0 0%, #8a7e6e 100%); }
.scn-telemachus-explains-suitors .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4e3e 0%, #3a2e1e 100%); }
.scn-telemachus-explains-suitors .table { position:absolute; bottom:28%; left:25%; width:50%; height:12px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:2px; animation: te-ex-table 5s ease-in-out infinite; }
.scn-telemachus-explains-suitors .cup { position:absolute; bottom:30%; left:40%; width:8px; height:12px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:0 0 30% 30%; animation: te-ex-cup 2s ease-in-out infinite alternate; }
.scn-telemachus-explains-suitors .suitor-a { position:absolute; bottom:24%; left:15%; width:28px; height:60px; background: linear-gradient(180deg, #4a3e32 0%, #2a1e12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: te-ex-figure 3s ease-in-out infinite; }
.scn-telemachus-explains-suitors .suitor-b { position:absolute; bottom:24%; left:55%; width:28px; height:60px; background: linear-gradient(180deg, #4a3e32 0%, #2a1e12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: te-ex-figure 3s ease-in-out infinite reverse; }
.scn-telemachus-explains-suitors .telemachus { position:absolute; bottom:20%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #5a4e3e 0%, #3a2e1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: te-ex-stand 8s ease-in-out infinite alternate; }
.scn-telemachus-explains-suitors .lamp { position:absolute; bottom:38%; left:60%; width:12px; height:16px; background: radial-gradient(circle, #ffe0a0 0%, #b08040 100%); border-radius:50%; box-shadow:0 0 25px 5px #ffe0a0, 0 0 50px 12px rgba(180,120,60,.6); animation: te-ex-lamp 4s ease-in-out infinite alternate; }
@keyframes te-ex-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes te-ex-cup { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(-5deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(1px) rotate(5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes te-ex-figure { 0% { transform: translateX(0) rotate(-2deg) } 33% { transform: translateX(3px) rotate(2deg) } 66% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes te-ex-stand { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes te-ex-lamp { 0% { opacity:0.7; box-shadow:0 0 15px 3px #ffd080 } 50% { opacity:1; box-shadow:0 0 30px 8px #ffdd88 } 100% { opacity:0.75; box-shadow:0 0 20px 5px #ffd080 } }

.scn-minerva-advises-action {
  background:
    linear-gradient(180deg, #f0dcc0 0%, #dcc4a0 40%, #b89c78 100%),
    radial-gradient(ellipse at 50% 70%, #e8ccaa 0%, transparent 60%);
}
.scn-minerva-advises-action .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #c8b090 0%, #a88868 100%); }
.scn-minerva-advises-action .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%); }
.scn-minerva-advises-action .table { position:absolute; bottom:26%; left:20%; width:60%; height:10px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius:2px; }
.scn-minerva-advises-action .helmet { position:absolute; bottom:30%; left:35%; width:30px; height:30px; background: radial-gradient(circle at 50% 30%, #b8a080 0%, #786050 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-20deg); animation: mi-ad-helmet 6s ease-in-out infinite alternate; }
.scn-minerva-advises-action .shield { position:absolute; bottom:28%; left:50%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 60%, #8a7050 0%, #5a4030 100%); border-radius:40% 40% 50% 50% / 30% 30% 60% 60%; transform:rotate(15deg); animation: mi-ad-shield 8s ease-in-out infinite; }
.scn-minerva-advises-action .spear { position:absolute; bottom:20%; left:62%; width:4px; height:100px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); transform:rotate(-10deg); transform-origin:bottom; animation: mi-ad-spear 5s ease-in-out infinite alternate; }
.scn-minerva-advises-action .minerva { position:absolute; bottom:24%; left:20%; width:35px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mi-ad-figure 4s ease-in-out infinite; }
.scn-minerva-advises-action .telemachus { position:absolute; bottom:24%; left:65%; width:30px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mi-ad-figure 5s ease-in-out infinite reverse; }
.scn-minerva-advises-action .lamp { position:absolute; bottom:40%; left:45%; width:10px; height:14px; background: radial-gradient(circle, #ffd080 0%, #b07030 100%); border-radius:50%; box-shadow:0 0 20px 6px #ffcc66, 0 0 40px 12px rgba(200,130,50,.5); animation: mi-ad-lamp 3s ease-in-out infinite alternate; }
@keyframes mi-ad-helmet { 0% { transform: rotate(-25deg) scale(1) } 50% { transform: rotate(-15deg) scale(1.05) } 100% { transform: rotate(-25deg) scale(1) } }
@keyframes mi-ad-shield { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes mi-ad-spear { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-15deg) } }
@keyframes mi-ad-figure { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(1px) } 75% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes mi-ad-lamp { 0% { opacity:0.7; box-shadow:0 0 15px 3px #ffcc66 } 50% { opacity:1; box-shadow:0 0 30px 8px #ffdd88 } 100% { opacity:0.75; box-shadow:0 0 20px 5px #ffcc66 } }

.scn-telemachus-asks-guest-to-stay {
  background:
    linear-gradient(180deg, #e8d8c4 0%, #d4c0a8 40%, #b09878 100%),
    radial-gradient(ellipse at 50% 85%, #dcc8b0 0%, transparent 50%);
}
.scn-telemachus-asks-guest-to-stay .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #c0a888 0%, #a08868 100%); }
.scn-telemachus-asks-guest-to-stay .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a6040 0%, #4a3828 100%); }
.scn-telemachus-asks-guest-to-stay .bath { position:absolute; bottom:28%; left:30%; width:40%; height:60px; background: linear-gradient(180deg, #8a7860 0%, #5a4830 100%); border-radius:60% 60% 40% 40% / 40% 40% 60% 60%; animation: te-as-bath 10s ease-in-out infinite alternate; }
.scn-telemachus-asks-guest-to-stay .steam-a { position:absolute; bottom:40%; left:35%; width:50px; height:20px; background: radial-gradient(ellipse, rgba(255,255,255,0.4) 0%, transparent 100%); filter: blur(6px); animation: te-as-steam 3s ease-in-out infinite alternate; }
.scn-telemachus-asks-guest-to-stay .steam-b { position:absolute; bottom:45%; left:48%; width:40px; height:18px; background: radial-gradient(ellipse, rgba(255,255,255,0.3) 0%, transparent 100%); filter: blur(5px); animation: te-as-steam 4s ease-in-out infinite alternate-reverse; }
.scn-telemachus-asks-guest-to-stay .guest { position:absolute; bottom:20%; left:50%; width:30px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: te-as-figure 6s ease-in-out infinite; }
.scn-telemachus-asks-guest-to-stay .telemachus { position:absolute; bottom:20%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: te-as-figure 7s ease-in-out infinite alternate; }
.scn-telemachus-asks-guest-to-stay .lamp { position:absolute; bottom:40%; left:65%; width:12px; height:16px; background: radial-gradient(circle, #ffd080 0%, #b07030 100%); border-radius:50%; box-shadow:0 0 20px 6px #ffcc66, 0 0 40px 12px rgba(200,130,50,.5); animation: te-as-lamp 3s ease-in-out infinite alternate; }
@keyframes te-as-bath { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes te-as-steam { 0% { transform: translateY(0) scale(1); opacity:0.3 } 50% { transform: translateY(-4px) scale(1.2); opacity:0.6 } 100% { transform: translateY(0) scale(1); opacity:0.3 } }
@keyframes te-as-figure { 0% { transform: translateX(-1px) rotate(-1deg) } 33% { transform: translateX(2px) rotate(1deg) } 66% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes te-as-lamp { 0% { opacity:0.7; box-shadow:0 0 15px 3px #ffcc66 } 50% { opacity:1; box-shadow:0 0 30px 8px #ffdd88 } 100% { opacity:0.75; box-shadow:0 0 20px 5px #ffcc66 } }

/* farewell-to-arete */
.scn-farewell-to-arete {
  background: linear-gradient(180deg, #c86a40 0%, #7a3a2a 40%, #2a1a1a 100%), radial-gradient(ellipse at 30% 80%, #e8a060 0%, transparent 60%);
}
.scn-farewell-to-arete .bg-wall { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #8a4a2a 0%, #5a2a1a 100%); }
.scn-farewell-to-arete .bg-window { position:absolute; top:10%; right:8%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 50%, #d08040 0%, #a05020 60%, transparent 80%); border-radius: 4px; box-shadow: 0 0 40px 10px rgba(200,100,40,0.3); animation: fta-window 8s ease-in-out infinite alternate; }
.scn-farewell-to-arete .table { position:absolute; bottom:25%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.5); }
.scn-farewell-to-arete .cup { position:absolute; bottom:33%; left:42%; width:6%; height:8%; background: radial-gradient(ellipse at 50% 30%, #c08040 0%, #804020 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: fta-cup 4s ease-in-out infinite; }
.scn-farewell-to-arete .fig-ulysses { position:absolute; bottom:20%; left:30%; width:12%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fta-ulysses 6s ease-in-out infinite; }
.scn-farewell-to-arete .fig-arete { position:absolute; bottom:20%; right:30%; width:14%; height:42%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fta-arete 7s ease-in-out infinite; }
.scn-farewell-to-arete .lamp { position:absolute; top:18%; left:10%; width:8%; height:12%; background: radial-gradient(ellipse at 50% 60%, #f0c060 0%, #c08030 40%, #804020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 15px rgba(240,192,96,0.5); animation: fta-lamp 5s ease-in-out infinite alternate; }
.scn-farewell-to-arete .wine-sparkle { position:absolute; bottom:35%; left:44%; width:2%; height:2%; background: #ffd080; border-radius: 50%; box-shadow: 0 0 8px 4px rgba(255,208,128,0.8); animation: fta-sparkle 3s ease-in-out infinite; }

@keyframes fta-window { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes fta-cup { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fta-ulysses { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fta-arete { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fta-lamp { 0% { box-shadow: 0 0 20px 8px rgba(240,192,96,0.4); } 50% { box-shadow: 0 0 40px 20px rgba(240,192,96,0.7); } 100% { box-shadow: 0 0 25px 10px rgba(240,192,96,0.5); } }
@keyframes fta-sparkle { 0% { opacity:0.3; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(0.6); } }

/* ulysses-sails-away */
.scn-ulysses-sails-away {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 40%, #2a2a4a 100%), radial-gradient(ellipse at 50% 0%, #3a3a6a 0%, transparent 70%);
}
.scn-ulysses-sails-away .bg-sea { position:absolute; inset:50% 0 0 0; background: linear-gradient(180deg, #0a1a2a 0%, #0a0a1a 100%); }
.scn-ulysses-sails-away .bg-stars { position:absolute; inset:0 0 50% 0; background: radial-gradient(1px 1px at 20% 30%, #fff 100%, transparent), radial-gradient(1px 1px at 40% 60%, #fff 100%, transparent), radial-gradient(1px 1px at 70% 20%, #fff 100%, transparent), radial-gradient(1px 1px at 90% 40%, #fff 100%, transparent); background-size: 2px 2px; animation: usa-stars 30s linear infinite; }
.scn-ulysses-sails-away .hull { position:absolute; bottom:40%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 0 0 60% 60% / 0 0 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,0.6); }
.scn-ulysses-sails-away .mast { position:absolute; bottom:55%; left:48%; width:2%; height:30%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 1px; transform-origin: bottom center; animation: usa-mast 10s ease-in-out infinite; }
.scn-ulysses-sails-away .sail { position:absolute; bottom:55%; left:30%; width:20%; height:25%; background: linear-gradient(180deg, rgba(240,240,240,0.4) 0%, rgba(200,200,200,0.1) 100%); border-radius: 0 80% 80% 0 / 0 60% 60% 0; clip-path: polygon(0% 0%, 100% 10%, 100% 90%, 0% 100%); animation: usa-sail 8s ease-in-out infinite; }
.scn-ulysses-sails-away .figure-sleeping { position:absolute; bottom:35%; left:40%; width:10%; height:12%; background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-20deg); animation: usa-sleep 6s ease-in-out infinite; }
.scn-ulysses-sails-away .rug { position:absolute; bottom:33%; left:36%; width:18%; height:4%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a3a 50%, #4a3a2a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: usa-rug 12s ease-in-out infinite; }
.scn-ulysses-sails-away .star-twinkle-a { position:absolute; top:20%; left:30%; width:4px; height:4px; background: #fff; border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,255,255,0.6); animation: usa-twinkle 4s ease-in-out infinite; }
.scn-ulysses-sails-away .star-twinkle-b { position:absolute; top:10%; right:25%; width:3px; height:3px; background: #fff; border-radius: 50%; box-shadow: 0 0 4px 1px rgba(255,255,255,0.5); animation: usa-twinkle 5s ease-in-out infinite 1.5s; }

@keyframes usa-stars { 0% { background-position: 0% 0%; } 100% { background-position: 0% 100%; } }
@keyframes usa-mast { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes usa-sail { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes usa-sleep { 0% { transform: translateY(0) rotate(-20deg); } 50% { transform: translateY(-2px) rotate(-18deg); } 100% { transform: translateY(0) rotate(-20deg); } }
@keyframes usa-rug { 0% { opacity:0.8; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes usa-twinkle { 0% { opacity:0.2; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(0.6); } }

/* phorcys-haven */
.scn-phorcys-haven {
  background: linear-gradient(180deg, #3a5a7a 0%, #6a8aaa 40%, #c0a070 100%), radial-gradient(ellipse at 50% 100%, #e0c080 0%, transparent 60%);
}
.scn-phorcys-haven .bg-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a4a6a 0%, #8a9aaa 50%, #d0b080 100%); }
.scn-phorcys-haven .bg-sea { position:absolute; inset:50% 0 0 0; background: linear-gradient(180deg, #4a7a9a 0%, #2a4a6a 100%); }
.scn-phorcys-haven .cliff-left { position:absolute; bottom:20%; left:5%; width:20%; height:60%; background: linear-gradient(180deg, #5a5a3a 0%, #3a3a1a 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: pch-cliff-l 15s ease-in-out infinite alternate; }
.scn-phorcys-haven .cliff-right { position:absolute; bottom:20%; right:5%; width:20%; height:60%; background: linear-gradient(180deg, #5a5a3a 0%, #3a3a1a 100%); border-radius: 80% 20% 0 0 / 60% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: pch-cliff-r 15s ease-in-out infinite alternate; }
.scn-phorcys-haven .ship { position:absolute; bottom:40%; left:35%; width:15%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 80% 80% / 0 0 40% 40%; animation: pch-ship 8s ease-in-out infinite; }
.scn-phorcys-haven .sunrise-glow { position:absolute; bottom:50%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 50%, #f0c060 0%, #d08020 40%, transparent 80%); border-radius: 50%; opacity:0.6; animation: pch-sunrise 10s ease-in-out infinite alternate; }
.scn-phorcys-haven .mist { position:absolute; bottom:30%; left:10%; right:10%; height:20%; background: linear-gradient(0deg, rgba(200,180,160,0.3) 0%, transparent 100%); border-radius: 30% 70% 50% 50%; filter: blur(8px); animation: pch-mist 20s ease-in-out infinite alternate; }

@keyframes pch-cliff-l { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes pch-cliff-r { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes pch-ship { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pch-sunrise { 0% { opacity:0.4; transform: scale(0.9); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(0.95); } }
@keyframes pch-mist { 0% { opacity:0.3; transform: translateY(0); } 50% { opacity:0.6; transform: translateY(-5px); } 100% { opacity:0.2; transform: translateY(0); } }

/* ulysses-left-on-beach */
.scn-ulysses-left-on-beach {
  background: linear-gradient(180deg, #6a8aaa 0%, #9a9a7a 40%, #c0a070 100%), radial-gradient(ellipse at 50% 0%, #e0c080 0%, transparent 60%);
}
.scn-ulysses-left-on-beach .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a7a9a 0%, #b0a080 100%); }
.scn-ulysses-left-on-beach .bg-sea { position:absolute; inset:40% 0 0 0; background: linear-gradient(180deg, #4a7a8a 0%, #3a5a6a 100%); }
.scn-ulysses-left-on-beach .sand { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c0a070 0%, #a08050 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; }
.scn-ulysses-left-on-beach .ship-beached { position:absolute; bottom:20%; left:20%; width:25%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 90% 90% / 0 0 50% 50%; transform: rotate(-5deg); animation: ulb-ship 15s ease-in-out infinite; }
.scn-ulysses-left-on-beach .figure-lying { position:absolute; bottom:20%; left:58%; width:12%; height:8%; background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: ulb-figure 6s ease-in-out infinite; }
.scn-ulysses-left-on-beach .figure-lifter { position:absolute; bottom:22%; left:45%; width:10%; height:14%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ulb-lifter 7s ease-in-out infinite; }
.scn-ulysses-left-on-beach .rug { position:absolute; bottom:19%; left:55%; width:30%; height:4%; background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 50%, #6a5a3a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: ulb-rug 12s ease-in-out infinite; }
.scn-ulysses-left-on-beach .wave-edge { position:absolute; bottom:30%; left:0; right:0; height:4%; background: linear-gradient(0deg, rgba(100,180,200,0.4) 0%, transparent 100%); border-radius: 50% 50% 0 0; animation: ulb-wave 8s ease-in-out infinite alternate; }

@keyframes ulb-ship { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes ulb-figure { 0% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-2px) rotate(-8deg); } 100% { transform: translateY(0) rotate(-10deg); } }
@keyframes ulb-lifter { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ulb-rug { 0% { opacity:0.8; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes ulb-wave { 0% { transform: translateY(0); opacity:0.4; } 50% { transform: translateY(-3px); opacity:0.7; } 100% { transform: translateY(0); opacity:0.4; } }

/* Scene: ulysses-decides-to-visit-cyclops */
.scn-ulysses-decides-to-visit-cyclops {
  background:
    linear-gradient(180deg, #87CEEB 0%, #6BB3D9 40%, #4A90B8 100%),
    radial-gradient(ellipse at 70% 30%, rgba(255,215,0,0.3) 0%, transparent 60%);
}
.scn-ulysses-decides-to-visit-cyclops .sea-bg {
  position: absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(0deg, #1E3A5F 0%, #2E5A7F 40%, #4A90B8 100%);
  animation: uv1-sea 12s ease-in-out infinite alternate;
}
.scn-ulysses-decides-to-visit-cyclops .sky-bg {
  position: absolute; top:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #B0E0FF 0%, #87CEEB 50%, #6BB3D9 100%);
}
.scn-ulysses-decides-to-visit-cyclops .sun {
  position: absolute; top:12%; right:20%; width:60px; height:60px;
  background: radial-gradient(circle, #FFF4B8 0%, #FFD700 60%, #FF8C00 100%);
  border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,215,0,0.5);
  animation: uv1-sun 6s ease-in-out infinite alternate;
}
.scn-ulysses-decides-to-visit-cyclops .ship-hull {
  position: absolute; bottom:38%; left:30%; width:120px; height:50px;
  background: linear-gradient(180deg, #5A3E2B 0%, #3A2212 100%);
  border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.4);
  animation: uv1-ship 8s ease-in-out infinite;
}
.scn-ulysses-decides-to-visit-cyclops .ship-mast {
  position: absolute; bottom:55%; left:55%; width:6px; height:90px;
  background: linear-gradient(0deg, #4A2E1A 0%, #6A4E2A 100%);
  border-radius: 3px; transform-origin: bottom center;
  animation: uv1-mast 10s ease-in-out infinite;
}
.scn-ulysses-decides-to-visit-cyclops .sail {
  position: absolute; bottom:60%; left:38%; width:70px; height:50px;
  background: linear-gradient(135deg, #F5F0E0 0%, #D5C8B0 50%, #B8A88A 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: uv1-sail 5s ease-in-out infinite alternate;
}
.scn-ulysses-decides-to-visit-cyclops .figure-helmsman {
  position: absolute; bottom:42%; left:48%; width:16px; height:30px;
  background: linear-gradient(180deg, #1A1A2E 0%, #0D0D1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uv1-figure 4s ease-in-out infinite;
}
.scn-ulysses-decides-to-visit-cyclops .rock-outcrop {
  position: absolute; bottom:0; left:0; width:40%; height:30%;
  background: linear-gradient(180deg, #6B5B3E 0%, #4A3A22 50%, #2A1A0E 100%);
  border-radius: 0 80% 0 0 / 0 100% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5);
}

@keyframes uv1-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(4px); }
  100% { transform: translateY(0); }
}
@keyframes uv1-sun {
  0% { transform: scale(1); opacity:0.9; }
  50% { transform: scale(1.05); opacity:1; }
  100% { transform: scale(0.95); opacity:0.85; }
}
@keyframes uv1-ship {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1.5deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes uv1-mast {
  0% { transform: rotate(-0.5deg); }
  50% { transform: rotate(0.5deg); }
  100% { transform: rotate(-0.5deg); }
}
@keyframes uv1-sail {
  0% { transform: scaleX(0.9); }
  50% { transform: scaleX(1.1); }
  100% { transform: scaleX(0.95); }
}
@keyframes uv1-figure {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(3px) rotate(5deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-3px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0); }
}

/* Scene: ulysses-prepares-for-cyclops */
.scn-ulysses-prepares-for-cyclops {
  background:
    linear-gradient(180deg, #B0C4DE 0%, #87CEEB 40%, #5A9EC0 100%),
    radial-gradient(ellipse at 80% 20%, rgba(255,215,0,0.2) 0%, transparent 70%);
}
.scn-ulysses-prepares-for-cyclops .beach-sand {
  position: absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(0deg, #D2B48C 0%, #C4A882 30%, #B89870 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-ulysses-prepares-for-cyclops .sea-edge {
  position: absolute; bottom:40%; left:0; right:0; height:5%;
  background: linear-gradient(0deg, #4A90B8 0%, #6BB3D9 100%);
  animation: uv2-sea 10s ease-in-out infinite alternate;
}
.scn-ulysses-prepares-for-cyclops .ship-beached {
  position: absolute; bottom:20%; left:10%; width:140px; height:60px;
  background: linear-gradient(180deg, #5A3E2B 0%, #3A2212 100%);
  border-radius: 30% 30% 5% 5% / 70% 70% 20% 20%;
  transform: rotate(-5deg);
  box-shadow: 3px 5px 10px rgba(0,0,0,0.5);
}
.scn-ulysses-prepares-for-cyclops .wineskin {
  position: absolute; bottom:25%; left:60%; width:30px; height:40px;
  background: radial-gradient(ellipse at 50% 60%, #5E2E1A 0%, #3A1A0A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: uv2-wine 6s ease-in-out infinite;
}
.scn-ulysses-prepares-for-cyclops .men-group {
  position: absolute; bottom:25%; left:30%; width:60px; height:40px;
  display: flex; flex-wrap: wrap; gap: 4px;
}
/* Simulate men as small figures positioned absolutely */
.scn-ulysses-prepares-for-cyclops .men-group {
  background: none; /* no direct background */
}
.scn-ulysses-prepares-for-cyclops .men-group::before {
  content: ""; position: absolute; bottom:0; left:0; width:12px; height:28px;
  background: linear-gradient(180deg, #1A1A2E, #0D0D1A);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-ulysses-prepares-for-cyclops .man-ulysses {
  position: absolute; bottom:20%; left:45%; width:18px; height:36px;
  background: linear-gradient(180deg, #2A2A3E, #1A1A2E);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: uv2-leader 4s ease-in-out infinite;
}
.scn-ulysses-prepares-for-cyclops .spear-stack {
  position: absolute; bottom:30%; left:55%; width:30px; height:50px;
  background: repeating-linear-gradient(0deg, #6A4E2A 0px, #6A4E2A 3px, transparent 3px, transparent 6px);
  background-size: 10px 6px; /* rough spears */
  transform: rotate(10deg);
}

@keyframes uv2-sea {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes uv2-wine {
  0% { transform: rotate(10deg) scale(1); }
  50% { transform: rotate(20deg) scale(1.05); }
  100% { transform: rotate(10deg) scale(1); }
}
@keyframes uv2-leader {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

/* Scene: inside-cyclops-cave */
.scn-inside-cyclops-cave {
  background:
    linear-gradient(180deg, #1A1A2E 0%, #2A2A3E 40%, #3A3A4E 100%),
    radial-gradient(ellipse at 50% 10%, rgba(100,100,150,0.2) 0%, transparent 80%);
}
.scn-inside-cyclops-cave .cave-wall-back {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 20%, #2E2E4A 0%, #1A1A2E 70%);
  border-radius: 40% 60% 50% 50% / 30% 40% 60% 70%;
  filter: blur(10px);
  animation: uc3-wall 20s ease-in-out infinite alternate;
}
.scn-inside-cyclops-cave .cave-floor {
  position: absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #1A1A2E 0%, #0D0D1A 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-inside-cyclops-cave .cheese-rack {
  position: absolute; bottom:30%; left:20%; width:80px; height:40px;
  background: linear-gradient(90deg, #4A3A2A 0%, #3A2A1A 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: uc3-rack 8s ease-in-out infinite;
}
.scn-inside-cyclops-cave .lambs {
  position: absolute; bottom:25%; left:50%; width:30px; height:20px;
  background: radial-gradient(ellipse, #E8D8C8 30%, #B8A898 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: uc3-lambs 6s ease-in-out infinite alternate;
}
.scn-inside-cyclops-cave .kids {
  position: absolute; bottom:25%; left:65%; width:25px; height:18px;
  background: radial-gradient(ellipse, #D8C8B8 30%, #A89888 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: uc3-kids 7s ease-in-out infinite alternate;
}
.scn-inside-cyclops-cave .dim-light {
  position: absolute; top:10%; left:40%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(200,180,150,0.3) 0%, transparent 70%);
  filter: blur(20px);
  animation: uc3-light 12s ease-in-out infinite alternate;
}
.scn-inside-cyclops-cave .cave-entrance {
  position: absolute; top:0; right:0; width:30%; height:70%;
  background: linear-gradient(180deg, #4A4A5E 0%, #2A2A3E 100%);
  border-radius: 0 0 0 50% / 0 0 0 60%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}

@keyframes uc3-wall {
  0% { transform: scale(1) rotate(0); }
  50% { transform: scale(1.02) rotate(2deg); }
  100% { transform: scale(0.98) rotate(-1deg); }
}
@keyframes uc3-rack {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes uc3-lambs {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes uc3-kids {
  0% { transform: translateX(0); }
  50% { transform: translateX(-4px); }
  100% { transform: translateX(0); }
}
@keyframes uc3-light {
  0% { opacity:0.6; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}

/* Scene: cyclops-returns */
.scn-cyclops-returns {
  background:
    linear-gradient(180deg, #1A0A0A 0%, #2A1A1A 40%, #3A2A2A 100%),
    radial-gradient(ellipse at 50% 30%, #4A2A1A 0%, transparent 70%);
}
.scn-cyclops-returns .cave-floor-dark {
  position: absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(0deg, #0D0A0A 0%, #1A1A1A 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
}
.scn-cyclops-returns .fire-pit {
  position: absolute; bottom:25%; left:50%; width:50px; height:30px;
  background: radial-gradient(ellipse, #3A2A1A 0%, #1A1A0A 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.8);
}
.scn-cyclops-returns .fire-flames {
  position: absolute; bottom:25%; left:50%; width:40px; height:60px;
  background: radial-gradient(ellipse at 50% 80%, #FF8C00 0%, #FF4500 40%, #8B0000 70%, transparent 100%);
  transform: translateX(-50%);
  animation: cr4-flame 0.5s steps(4) infinite alternate;
  filter: blur(2px);
}
.scn-cyclops-returns .cheese-offering {
  position: absolute; bottom:30%; left:40%; width:20px; height:15px;
  background: radial-gradient(ellipse, #E8D8C8 0%, #C8B898 100%);
  border-radius: 30%;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-cyclops-returns .men-cowering {
  position: absolute; bottom:18%; left:30%; width:40px; height:30px;
  display: flex; gap: 5px; flex-wrap: wrap;
}
.scn-cyclops-returns .men-cowering::before {
  content: ""; display: block; width:12px; height:22px;
  background: linear-gradient(180deg, #1A1A2E, #0D0D1A);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.8);
}
.scn-cyclops-returns .cyclops-shadow {
  position: absolute; bottom:0; right:10%; width:80px; height:100px;
  background: linear-gradient(0deg, #0A0A0A 0%, #2A2A2A 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform: rotate(10deg);
  animation: cr4-shadow 12s ease-in-out infinite alternate;
}
.scn-cyclops-returns .firewood-load {
  position: absolute; bottom:30%; right:20%; width:40px; height:30px;
  background: repeating-linear-gradient(0deg, #5A3E2B 0px, #5A3E2B 4px, #3A2212 4px, #3A2212 8px);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
}

@keyframes cr4-flame {
  0% { transform: translateX(-50%) scaleY(1); opacity:0.9; }
  25% { transform: translateX(-50%) scaleY(1.2); opacity:1; }
  50% { transform: translateX(-50%) scaleY(0.8); opacity:0.8; }
  75% { transform: translateX(-50%) scaleY(1.1); opacity:0.95; }
  100% { transform: translateX(-50%) scaleY(0.9); opacity:0.85; }
}
@keyframes cr4-shadow {
  0% { transform: rotate(8deg) scale(1); opacity:0.6; }
  50% { transform: rotate(12deg) scale(1.05); opacity:0.8; }
  100% { transform: rotate(8deg) scale(1); opacity:0.6; }
}

.scn-ulysses-continues-tale {
  background: 
    linear-gradient(180deg, #1a1210 0%, #2d1e18 40%, #3a2520 100%),
    radial-gradient(ellipse at 50% 70%, #4a3020 0%, transparent 70%);
}

.scn-ulysses-continues-tale .wall {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  animation: ut1-wall 20s ease-in-out infinite;
}

.scn-ulysses-continues-tale .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}

.scn-ulysses-continues-tale .fire {
  position: absolute;
  bottom: 28%;
  left: 20%;
  width: 30px;
  height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #ff8c40 0%, #cc5500 50%, #8a3300 100%);
  border-radius: 50% 50% 30% 30%;
  animation: ut1-fire 1s ease-in-out infinite alternate;
  box-shadow: 0 0 40px 15px rgba(255, 120, 20, 0.5);
}

.scn-ulysses-continues-tale .figure {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #2d1e18 0%, #1a1210 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ut1-figure 6s ease-in-out infinite;
  transform-origin: bottom center;
}

.scn-ulysses-continues-tale .table {
  position: absolute;
  bottom: 25%;
  left: 55%;
  width: 40px;
  height: 15px;
  background: linear-gradient(180deg, #3a2218 0%, #22120a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: ut1-table 8s ease-in-out infinite;
}

.scn-ulysses-continues-tale .shadow {
  position: absolute;
  bottom: 25%;
  left: 38%;
  width: 50px;
  height: 12px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: ut1-shadow 6s ease-in-out infinite;
}

.scn-ulysses-continues-tale .glow {
  position: absolute;
  bottom: 50%;
  left: 18%;
  width: 60px;
  height: 80px;
  background: radial-gradient(circle, rgba(255,160,50,0.3) 0%, transparent 70%);
  animation: ut1-glow 4s ease-in-out infinite alternate;
}

@keyframes ut1-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

@keyframes ut1-fire {
  0% { transform: scaleY(1) scaleX(0.9); opacity: 0.9; }
  50% { transform: scaleY(1.1) scaleX(1); opacity: 1; }
  100% { transform: scaleY(0.95) scaleX(0.85); opacity: 0.85; }
}

@keyframes ut1-figure {
  0% { transform: rotate(-1deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(2px); }
  100% { transform: rotate(-1deg) translateX(0); }
}

@keyframes ut1-table {
  0% { transform: scale(1); }
  50% { transform: scale(0.98); }
  100% { transform: scale(1); }
}

@keyframes ut1-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(0.9); opacity: 0.5; }
  100% { transform: scaleX(1); opacity: 0.4; }
}

@keyframes ut1-glow {
  0% { opacity: 0.6; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.2); }
}

.scn-agamemnon-tells-his-story {
  background: 
    linear-gradient(180deg, #0e0a14 0%, #1a1220 40%, #2a1a30 100%),
    radial-gradient(ellipse at 50% 30%, #2a1a40 0%, transparent 70%);
}

.scn-agamemnon-tells-his-story .bg-deep {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #141020 0%, #0a0810 100%);
  animation: ag2-bg 30s ease-in-out infinite alternate;
}

.scn-agamemnon-tells-his-story .mist {
  position: absolute;
  top: 10%;
  left: -10%;
  width: 120%;
  height: 60%;
  background: radial-gradient(ellipse at 50% 50%, rgba(100,80,150,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: ag2-mist 25s linear infinite;
}

.scn-agamemnon-tells-his-story .ghost-figure {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 26px;
  height: 60px;
  background: linear-gradient(180deg, rgba(140,120,180,0.3) 0%, rgba(40,30,60,0.6) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ag2-ghost 8s ease-in-out infinite;
  transform-origin: bottom center;
  filter: blur(2px);
}

.scn-agamemnon-tells-his-story .ghost-glow {
  position: absolute;
  bottom: 30%;
  left: 48%;
  width: 40px;
  height: 60px;
  background: radial-gradient(circle, rgba(180,160,220,0.2) 0%, transparent 70%);
  animation: ag2-glow 4s ease-in-out infinite alternate;
}

.scn-agamemnon-tells-his-story .shadow {
  position: absolute;
  bottom: 20%;
  left: 42%;
  width: 40px;
  height: 10px;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  filter: blur(4px);
  animation: ag2-shadow 8s ease-in-out infinite;
}

.scn-agamemnon-tells-his-story .particle {
  position: absolute;
  top: 20%;
  left: 30%;
  width: 3px;
  height: 3px;
  background: rgba(180,160,220,0.5);
  border-radius: 50%;
  animation: ag2-particle 6s ease-in-out infinite;
}

.scn-agamemnon-tells-his-story .particle-late {
  left: 65%;
  animation-delay: -3s;
}

@keyframes ag2-bg {
  0% { opacity: 0.8; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}

@keyframes ag2-mist {
  0% { transform: translateX(0); }
  50% { transform: translateX(10px); }
  100% { transform: translateX(-10px); }
}

@keyframes ag2-ghost {
  0% { transform: translateY(0) rotate(-2deg); opacity: 0.6; }
  50% { transform: translateY(-4px) rotate(2deg); opacity: 0.8; }
  100% { transform: translateY(0) rotate(-2deg); opacity: 0.6; }
}

@keyframes ag2-glow {
  0% { opacity: 0.4; transform: scale(1); }
  100% { opacity: 0.8; transform: scale(1.3); }
}

@keyframes ag2-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(0.8); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

@keyframes ag2-particle {
  0% { transform: translateY(0) scale(1); opacity: 0; }
  50% { transform: translateY(-20px) scale(1.5); opacity: 1; }
  100% { transform: translateY(-40px) scale(0); opacity: 0; }
}

.scn-ulysses-responds-agamemnon {
  background: 
    linear-gradient(180deg, #120e12 0%, #1e181e 40%, #2a202a 100%),
    radial-gradient(ellipse at 50% 60%, #2a1e2a 0%, transparent 70%);
}

.scn-ulysses-responds-agamemnon .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e161e 0%, #120e12 100%);
  animation: ua3-wall 25s ease-in-out infinite alternate;
}

.scn-ulysses-responds-agamemnon .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #221a1e 0%, #120a0e 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
}

.scn-ulysses-responds-agamemnon .figure-left {
  position: absolute;
  bottom: 30%;
  left: 32%;
  width: 24px;
  height: 55px;
  background: linear-gradient(180deg, #2a1e22 0%, #1a1216 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ua3-figure-left 7s ease-in-out infinite;
  transform-origin: bottom center;
}

.scn-ulysses-responds-agamemnon .figure-right {
  position: absolute;
  bottom: 30%;
  left: 58%;
  width: 24px;
  height: 55px;
  background: linear-gradient(180deg, #2a1e22 0%, #1a1216 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ua3-figure-right 7s ease-in-out infinite;
  transform-origin: bottom center;
}

.scn-ulysses-responds-agamemnon .light {
  position: absolute;
  bottom: 40%;
  left: 50%;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle, rgba(200,160,100,0.3) 0%, transparent 70%);
  animation: ua3-light 5s ease-in-out infinite alternate;
  transform: translateX(-50%);
}

.scn-ulysses-responds-agamemnon .shadow-left {
  position: absolute;
  bottom: 30%;
  left: 28%;
  width: 40px;
  height: 10px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(3px);
  animation: ua3-shadow-left 7s ease-in-out infinite;
}

.scn-ulysses-responds-agamemnon .shadow-right {
  position: absolute;
  bottom: 30%;
  right: 30%;
  width: 40px;
  height: 10px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(3px);
  animation: ua3-shadow-right 7s ease-in-out infinite;
}

@keyframes ua3-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

@keyframes ua3-figure-left {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(2deg) translateY(0); }
}

@keyframes ua3-figure-right {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}

@keyframes ua3-light {
  0% { opacity: 0.5; transform: translateX(-50%) scale(1); }
  100% { opacity: 1; transform: translateX(-50%) scale(1.2); }
}

@keyframes ua3-shadow-left {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(0.9); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 0.4; }
}

@keyframes ua3-shadow-right {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(0.9); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 0.4; }
}

.scn-ulysses-asks-about-orestes {
  background: 
    linear-gradient(180deg, #0c0810 0%, #181220 40%, #2a1a30 100%),
    radial-gradient(ellipse at 50% 50%, #2a1a34 0%, transparent 70%);
}

.scn-ulysses-asks-about-orestes .bg-deep {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #0e0a18 0%, #080610 100%);
  animation: uo4-bg 35s ease-in-out infinite alternate;
}

.scn-ulysses-asks-about-orestes .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #18121c 0%, #0a0810 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}

.scn-ulysses-asks-about-orestes .figure-center {
  position: absolute;
  bottom: 20%;
  left: 46%;
  width: 26px;
  height: 60px;
  background: linear-gradient(180deg, #2a1e22 0%, #1a1216 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: uo4-figure-center 6s ease-in-out infinite;
  transform-origin: bottom center;
}

.scn-ulysses-asks-about-orestes .figure-left {
  position: absolute;
  bottom: 20%;
  left: 28%;
  width: 24px;
  height: 55px;
  background: linear-gradient(180deg, rgba(80,60,100,0.5) 0%, rgba(30,20,40,0.8) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: uo4-figure-left 9s ease-in-out infinite;
  transform-origin: bottom center;
  filter: blur(1px);
}

.scn-ulysses-asks-about-orestes .figure-right {
  position: absolute;
  bottom: 20%;
  left: 62%;
  width: 24px;
  height: 55px;
  background: linear-gradient(180deg, rgba(80,60,100,0.5) 0%, rgba(30,20,40,0.8) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: uo4-figure-right 9s ease-in-out infinite;
  transform-origin: bottom center;
  filter: blur(1px);
}

.scn-ulysses-asks-about-orestes .glow {
  position: absolute;
  bottom: 30%;
  left: 62%;
  width: 40px;
  height: 60px;
  background: radial-gradient(circle, rgba(180,160,220,0.2) 0%, transparent 70%);
  animation: uo4-glow 5s ease-in-out infinite alternate;
}

.scn-ulysses-asks-about-orestes .mist {
  position: absolute;
  top: 5%;
  left: -10%;
  width: 120%;
  height: 70%;
  background: radial-gradient(ellipse at 50% 40%, rgba(100,80,150,0.1) 0%, transparent 70%);
  filter: blur(25px);
  animation: uo4-mist 30s linear infinite;
}

@keyframes uo4-bg {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}

@keyframes uo4-figure-center {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}

@keyframes uo4-figure-left {
  0% { transform: translateY(0) rotate(2deg); opacity: 0.6; }
  50% { transform: translateY(-3px) rotate(0deg); opacity: 0.8; }
  100% { transform: translateY(0) rotate(2deg); opacity: 0.6; }
}

@keyframes uo4-figure-right {
  0% { transform: translateY(0) rotate(-2deg); opacity: 0.6; }
  50% { transform: translateY(-3px) rotate(0deg); opacity: 0.8; }
  100% { transform: translateY(0) rotate(-2deg); opacity: 0.6; }
}

@keyframes uo4-glow {
  0% { opacity: 0.3; transform: scale(1); }
  100% { opacity: 0.7; transform: scale(1.4); }
}

@keyframes uo4-mist {
  0% { transform: translateX(0); }
  50% { transform: translateX(15px); }
  100% { transform: translateX(-15px); }
}

.scn-telemachus-tells-nestor { background: linear-gradient(180deg, #fce4b0 0%, #ffe0a0 30%, #c8a060 70%, #6a4a20 100%), radial-gradient(ellipse at 30% 20%, #fff4d0 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-telemachus-tells-nestor .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%); }
.scn-telemachus-tells-nestor .sun { position:absolute; top:5%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fffbe0 0%, #f0c040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(240,192,64,0.4); animation: ttn-sun 20s ease-in-out infinite alternate; }
.scn-telemachus-tells-nestor .clouds { position:absolute; top:10%; left:10%; width:120px; height:25px; background: rgba(255,255,240,0.6); border-radius:50%; filter: blur(8px); animation: ttn-clouds 40s linear infinite; }
.scn-telemachus-tells-nestor .columns { position:absolute; bottom:30%; left:20%; width:12px; height:50%; background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: ttn-columns 6s ease-in-out infinite; }
.scn-telemachus-tells-nestor .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #9a7a4a 0%, #6a4a20 100%); border-radius: 40% 40% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.5); }
.scn-telemachus-tells-nestor .nestor-silhouette { position:absolute; bottom:20%; left:25%; width:30px; height:80px; background: #2a1a0a; border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform: scaleX(-1); animation: ttn-nestor 5s ease-in-out infinite alternate; }
.scn-telemachus-tells-nestor .telemachus-silhouette { position:absolute; bottom:20%; left:55%; width:28px; height:90px; background: #2a1a0a; border-radius: 50% 50% 40% 40% / 55% 55% 30% 30%; animation: ttn-telemachus 4s ease-in-out infinite alternate; }
.scn-telemachus-tells-nestor .spear { position:absolute; bottom:30%; left:63%; width:4px; height:50px; background: #5a3a1a; transform: rotate(-10deg); transform-origin: bottom; animation: ttn-spear 3s ease-in-out infinite; }
.scn-telemachus-tells-nestor .shadow-ttn { position:absolute; bottom:0; left:20%; width:180px; height:20px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(6px); animation: ttn-shadow 6s ease-in-out infinite; }
@keyframes ttn-sun { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.1) translateX(10px); } 100% { transform: scale(0.9) translateX(-10px); } }
@keyframes ttn-clouds { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }
@keyframes ttn-columns { 0%,100% { transform: skewY(0); } 50% { transform: skewY(2deg); } }
@keyframes ttn-nestor { 0% { transform: scaleX(-1) translateY(0) rotate(0); } 50% { transform: scaleX(-1) translateY(-4px) rotate(-2deg); } 100% { transform: scaleX(-1) translateY(0) rotate(2deg); } }
@keyframes ttn-telemachus { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-6px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ttn-spear { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } }
@keyframes ttn-shadow { 0%,100% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.2); opacity: 0.5; } }

.scn-nestor-recalls-trojan-war { background: linear-gradient(180deg, #ffe0b0 0%, #d0a060 30%, #804020 70%, #2a1010 100%), radial-gradient(ellipse at 40% 10%, #fff8e0 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-nestor-recalls-trojan-war .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d8a060 0%, #b08040 100%); }
.scn-nestor-recalls-trojan-war .sun-harsh { position:absolute; top:5%; left:20%; width:70px; height:70px; background: radial-gradient(circle, #fff4c0 0%, #e0a040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 100px 50px rgba(224,160,64,0.3); animation: nrw-sun 15s ease-in-out infinite alternate; }
.scn-nestor-recalls-trojan-war .burning-city { position:absolute; bottom:30%; left:10%; width:120px; height:100px; background: linear-gradient(180deg, #8a3a1a 0%, #4a1a0a 100%); border-radius: 0 0 20% 20%; box-shadow: 0 0 30px 10px #c05020; animation: nrw-burn 6s ease-in-out infinite; }
.scn-nestor-recalls-trojan-war .ships { position:absolute; bottom:35%; right:5%; width:80px; height:30px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50% 10% 10% 50%; transform: rotate(-5deg); animation: nrw-ships 20s ease-in-out infinite alternate; }
.scn-nestor-recalls-trojan-war .nestor-profile { position:absolute; bottom:15%; left:45%; width:40px; height:70px; background: #2a1a0a; border-radius: 50% 40% 40% 50% / 60% 50% 40% 50%; transform: scaleX(-1); animation: nrw-nestor 4s ease-in-out infinite alternate; }
.scn-nestor-recalls-trojan-war .hand-gesture { position:absolute; bottom:30%; left:48%; width:14px; height:20px; background: #2a1a0a; border-radius: 50% 50% 20% 20%; transform: rotate(30deg); animation: nrw-hand 3s ease-in-out infinite; }
.scn-nestor-recalls-trojan-war .tear { position:absolute; bottom:40%; left:48%; width:4px; height:6px; background: #80c8ff; border-radius: 50%; box-shadow: 0 0 6px 2px #60a0e0; animation: nrw-tear 2s ease-in-out infinite; }
.scn-nestor-recalls-trojan-war .dust { position:absolute; bottom:0; left:0; right:0; height:15%; background: rgba(200,160,100,0.4); filter: blur(8px); animation: nrw-dust 8s ease-in-out infinite alternate; }
@keyframes nrw-sun { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.15) translateX(-15px); } 100% { transform: scale(0.85) translateX(10px); } }
@keyframes nrw-burn { 0%,100% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } }
@keyframes nrw-ships { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(8px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes nrw-nestor { 0% { transform: scaleX(-1) translateY(0) rotate(0); } 50% { transform: scaleX(-1) translateY(-5px) rotate(-3deg); } 100% { transform: scaleX(-1) translateY(2px) rotate(2deg); } }
@keyframes nrw-hand { 0%,100% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(40deg) translateY(-2px); } }
@keyframes nrw-tear { 0%,100% { opacity: 0; } 20% { opacity: 1; } 80% { opacity: 0.8; } 100% { opacity: 0; transform: translateY(10px); } }
@keyframes nrw-dust { 0% { opacity: 0.3; transform: scaleY(1); } 100% { opacity: 0.6; transform: scaleY(1.2); } }

.scn-nestor-tells-of-quarrel { background: linear-gradient(180deg, #c89860 0%, #a07040 30%, #603018 70%, #201008 100%), radial-gradient(ellipse at 50% 80%, #e0b080 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-nestor-tells-of-quarrel .bg-deep { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b08040 0%, #703020 100%); }
.scn-nestor-tells-of-quarrel .ground-quarrel { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a3018 0%, #2a1008 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.6); }
.scn-nestor-tells-of-quarrel .ag-silhouette { position:absolute; bottom:15%; left:25%; width:30px; height:80px; background: #1a0a04; border-radius: 50% 50% 40% 40% / 60% 50% 30% 40%; transform: scaleX(-1); animation: ntq-ag 5s ease-in-out infinite alternate; }
.scn-nestor-tells-of-quarrel .men-silhouette { position:absolute; bottom:15%; left:55%; width:28px; height:85px; background: #1a0a04; border-radius: 50% 50% 40% 40% / 55% 55% 30% 30%; animation: ntq-men 4s ease-in-out infinite alternate; }
.scn-nestor-tells-of-quarrel .sword { position:absolute; bottom:25%; left:40%; width:4px; height:40px; background: #8a6a3a; transform: rotate(-25deg); transform-origin: bottom; animation: ntq-sword 3s ease-in-out infinite; }
.scn-nestor-tells-of-quarrel .tent { position:absolute; bottom:40%; left:70%; width:60px; height:50px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 0 50% 50% 50% / 0 40% 40% 40%; transform: skewX(-10deg); animation: ntq-tent 8s ease-in-out infinite alternate; }
.scn-nestor-tells-of-quarrel .fire-quarrel { position:absolute; bottom:30%; left:35%; width:20px; height:30px; background: radial-gradient(ellipse, #ff8c40 0%, #c04020 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,140,64,0.4); animation: ntq-fire 2s ease-in-out infinite alternate; }
.scn-nestor-tells-of-quarrel .sparks { position:absolute; bottom:32%; left:35%; width:4px; height:4px; background: #ffd080; border-radius:50%; box-shadow: 0 0 6px 2px #ffb060; animation: ntq-sparks 1.5s ease-in-out infinite; }
@keyframes ntq-ag { 0% { transform: scaleX(-1) translateY(0) rotate(0); } 50% { transform: scaleX(-1) translateY(-4px) rotate(3deg); } 100% { transform: scaleX(-1) translateY(0) rotate(-2deg); } }
@keyframes ntq-men { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-6px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes ntq-sword { 0%,100% { transform: rotate(-25deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-4px); } }
@keyframes ntq-tent { 0% { transform: skewX(-10deg) scaleY(1); } 100% { transform: skewX(10deg) scaleY(1.05); } }
@keyframes ntq-fire { 0% { transform: scale(1); opacity: 0.9; } 100% { transform: scale(1.3); opacity: 1; } }
@keyframes ntq-sparks { 0%,100% { transform: translate(0,0) scale(1); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 0.5; } 100% { transform: translate(10px,-15px) scale(0.5); opacity: 0; } }

.scn-telemachus-responds-to-nestor { background: linear-gradient(180deg, #fff0c0 0%, #e0c080 30%, #a08040 70%, #5a3a1a 100%), radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-telemachus-responds-to-nestor .sky-rise { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0d0f0 0%, #f0e68c 100%); }
.scn-telemachus-responds-to-nestor .sun-zenith { position:absolute; top:2%; left:50%; width:55px; height:55px; background: radial-gradient(circle, #fffbe0 0%, #f0c040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 90px 45px rgba(240,192,64,0.4); animation: trn-sun 25s ease-in-out infinite alternate; }
.scn-telemachus-responds-to-nestor .palace-wall { position:absolute; bottom:30%; left:10%; width:80%; height:50%; background: linear-gradient(180deg, #d0b890 0%, #a08060 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.3); }
.scn-telemachus-responds-to-nestor .ground-respond { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-telemachus-responds-to-nestor .telemachus-stand { position:absolute; bottom:20%; left:45%; width:28px; height:90px; background: #2a1a0a; border-radius: 50% 50% 40% 40% / 55% 55% 30% 30%; animation: trn-stand 4s ease-in-out infinite alternate; }
.scn-telemachus-responds-to-nestor .cloak-respond { position:absolute; bottom:20%; left:42%; width:20px; height:50px; background: #702243; border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform: rotate(5deg); transform-origin: top; animation: trn-cloak 3s ease-in-out infinite; }
.scn-telemachus-responds-to-nestor .sword-respond { position:absolute; bottom:30%; left:55%; width:4px; height:45px; background: #8a6a3a; transform: rotate(10deg); transform-origin: bottom; animation: trn-sword 3s ease-in-out infinite; }
.scn-telemachus-responds-to-nestor .shadow-respond { position:absolute; bottom:0; left:35%; width:120px; height:15px; background: rgba(0,0,0,0.4); border-radius:50%; filter: blur(6px); animation: trn-shadow 6s ease-in-out infinite; }
@keyframes trn-sun { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.1) translateX(-8px); } 100% { transform: scale(0.9) translateX(8px); } }
@keyframes trn-stand { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-8px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes trn-cloak { 0%,100% { transform: rotate(5deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(1.1); } }
@keyframes trn-sword { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } }
@keyframes trn-shadow { 0%,100% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.3); opacity: 0.6; } }

.scn-footnote-impossible-journey {
  background:
    radial-gradient(ellipse at 50% 50%, #3a2e24 0%, #1f1813 100%),
    linear-gradient(180deg, #2c221d 0%, #1a1410 100%);
}
.scn-footnote-impossible-journey .room-walls {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3d32 0%, #2b221c 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.8);
}
.scn-footnote-impossible-journey .desk {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3d3228 100%);
  border-radius: 4px; box-shadow: 0 -4px 20px rgba(0,0,0,0.7);
}
.scn-footnote-impossible-journey .lamp {
  position: absolute; bottom: 36%; left: 32%; width: 20px; height: 34px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 10% 10%; box-shadow: 0 0 30px 10px rgba(220,190,140,0.4);
  animation: fj-lamp 6s ease-in-out infinite alternate;
}
.scn-footnote-impossible-journey .scroll-open {
  position: absolute; bottom: 16%; left: 40%; width: 35%; height: 8%;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a88c 100%);
  border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: fj-scroll 8s ease-in-out infinite alternate;
}
.scn-footnote-impossible-journey .figure-scribe {
  position: absolute; bottom: 10%; left: 15%; width: 22px; height: 36px;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom; animation: fj-scribe 4s ease-in-out infinite;
}
.scn-footnote-impossible-journey .window-night {
  position: absolute; top: 12%; right: 8%; width: 30%; height: 40%;
  background: #0a0a1a; border: 3px solid #5a4a3a; border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-footnote-impossible-journey .mountains-out {
  position: absolute; top: 30%; right: 12%; width: 24%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  clip-path: polygon(0% 100%, 20% 20%, 40% 60%, 60% 10%, 80% 40%, 100% 60%, 100% 100%);
  animation: fj-mountains 20s ease-in-out infinite alternate;
}
.scn-footnote-impossible-journey .star {
  position: absolute; width: 4px; height: 4px; background: #fff;
  border-radius: 50%; box-shadow: 0 0 6px #fff; animation: fj-star 3s ease-in-out infinite alternate;
}
.scn-footnote-impossible-journey .star-1 { top: 15%; right: 20%; }
.scn-footnote-impossible-journey .star-2 { top: 20%; right: 28%; animation-delay: -1.5s; }
@keyframes fj-lamp { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.8; transform: scaleY(0.98); } }
@keyframes fj-scroll { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(1deg) translateX(2px); } 100% { transform: rotate(-2deg) translateX(-1px); } }
@keyframes fj-scribe { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fj-mountains { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:0.8; transform: scaleY(0.95); } 100% { opacity:0.7; transform: scaleY(1.02); } }
@keyframes fj-star { 0% { opacity:0.3; transform: scale(0.8); } 100% { opacity:1; transform: scale(1.2); } }

/* ---- Scene 2: footnote-hermione-marriage ---- */
.scn-footnote-hermione-marriage {
  background:
    radial-gradient(ellipse at 60% 40%, #3a2e28 0%, #1f1814 100%),
    linear-gradient(180deg, #2c221e 0%, #1a1410 100%);
}
.scn-footnote-hermione-marriage .room-back {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3d34 0%, #2b221c 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.7);
}
.scn-footnote-hermione-marriage .bed-frame {
  position: absolute; bottom: 10%; left: 10%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #5a4a3e 0%, #3d3228 100%);
  border-radius: 8px 8px 2px 2px; box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(5deg);
}
.scn-footnote-hermione-marriage .candle {
  position: absolute; bottom: 34%; left: 55%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #e8d8b0 0%, #b8a080 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px 12px rgba(220,180,120,0.5);
  animation: hm-candle 5s ease-in-out infinite alternate;
}
.scn-footnote-hermione-marriage .quill {
  position: absolute; bottom: 44%; left: 62%; width: 4px; height: 24px;
  background: linear-gradient(180deg, #c8b8a0 0%, #807060 100%);
  border-radius: 50% 50% 0 0; transform: rotate(-15deg);
  animation: hm-quill 3s ease-in-out infinite;
}
.scn-footnote-hermione-marriage .figure-hands {
  position: absolute; bottom: 12%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  border-radius: 40% 40% 20% 20%; transform: rotate(-5deg);
  animation: hm-hands 6s ease-in-out infinite alternate;
}
.scn-footnote-hermione-marriage .mirror-stand {
  position: absolute; top: 8%; right: 8%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 10px; box-shadow: 0 0 30px rgba(0,0,0,0.6);
}
.scn-footnote-hermione-marriage .shadows {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: hm-shadows 12s ease-in-out infinite alternate;
}
@keyframes hm-candle { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.9; transform: scaleY(0.95); } }
@keyframes hm-quill { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(3px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes hm-hands { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes hm-shadows { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

/* ---- Scene 3: footnote-sparta-lacedaemon ---- */
.scn-footnote-sparta-lacedaemon {
  background:
    radial-gradient(ellipse at 50% 30%, #3a322c 0%, #1f1a16 100%),
    linear-gradient(180deg, #2c2420 0%, #1a1612 100%);
}
.scn-footnote-sparta-lacedaemon .study-panel {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3e36 0%, #2b241e 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.8);
}
.scn-footnote-sparta-lacedaemon .scroll-left {
  position: absolute; bottom: 20%; left: 12%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%);
  border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: sl-scroll-l 9s ease-in-out infinite alternate;
}
.scn-footnote-sparta-lacedaemon .scroll-right {
  position: absolute; bottom: 20%; right: 12%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a88c 100%);
  border-radius: 2px; transform: rotate(5deg); box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: sl-scroll-r 9s ease-in-out infinite alternate;
}
.scn-footnote-sparta-lacedaemon .lamp-double {
  position: absolute; bottom: 38%; left: 45%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 8px rgba(200,170,120,0.4);
  animation: sl-lamp 7s ease-in-out infinite alternate;
}
.scn-footnote-sparta-lacedaemon .figure-reader {
  position: absolute; bottom: 12%; left: 38%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom; animation: sl-reader 5s ease-in-out infinite;
}
.scn-footnote-sparta-lacedaemon .column {
  position: absolute; bottom: 0; width: 8%; height: 60%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3d3228 100%);
  border-radius: 4px 4px 0 0; box-shadow: -2px 0 10px rgba(0,0,0,0.6);
}
.scn-footnote-sparta-lacedaemon .pillar-a { left: 15%; }
.scn-footnote-sparta-lacedaemon .pillar-b { right: 15%; }
.scn-footnote-sparta-lacedaemon .glow-inset {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, rgba(200,170,120,0.08) 0%, transparent 60%);
  animation: sl-glow 11s ease-in-out infinite alternate;
}
@keyframes sl-scroll-l { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes sl-scroll-r { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(-2px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes sl-lamp { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sl-reader { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sl-glow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* ---- Scene 4: footnote-amber ---- */
.scn-footnote-amber {
  background:
    radial-gradient(ellipse at 40% 50%, #3a2e24 0%, #1f1813 100%),
    linear-gradient(180deg, #2c221d 0%, #1a1410 100%);
}
.scn-footnote-amber .chest-base {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3d3228 100%);
  border-radius: 4px; box-shadow: 0 -4px 15px rgba(0,0,0,0.7);
}
.scn-footnote-amber .chest-lid {
  position: absolute; bottom: 26%; left: 22%; right: 22%; height: 6%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: am-lid 8s ease-in-out infinite alternate;
}
.scn-footnote-amber .amber-piece {
  position: absolute; width: 12px; height: 10px;
  background: radial-gradient(circle, #e8b840 0%, #c89020 70%);
  border-radius: 50%; box-shadow: 0 0 12px 3px rgba(200,144,32,0.5);
  animation: am-amber 5s ease-in-out infinite alternate;
}
.scn-footnote-amber .a1 { bottom: 14%; left: 35%; }
.scn-footnote-amber .a2 { bottom: 18%; left: 50%; animation-delay: -1.5s; }
.scn-footnote-amber .a3 { bottom: 12%; left: 62%; animation-delay: -3s; }
.scn-footnote-amber .map-scroll {
  position: absolute; bottom: 12%; right: 10%; width: 25%; height: 12%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%);
  border-radius: 2px; transform: rotate(4deg); box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: am-map 12s ease-in-out infinite alternate;
}
.scn-footnote-amber .lamp-dim {
  position: absolute; bottom: 34%; left: 28%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 25px 6px rgba(200,170,120,0.3);
  animation: am-lamp 6s ease-in-out infinite alternate;
}
.scn-footnote-amber .figure-jeweler {
  position: absolute; bottom: 6%; left: 8%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom; animation: am-jeweler 4s ease-in-out infinite;
}
@keyframes am-lid { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes am-amber { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes am-map { 0% { transform: rotate(4deg) translateX(0); } 50% { transform: rotate(6deg) translateX(3px); } 100% { transform: rotate(4deg) translateX(0); } }
@keyframes am-lamp { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes am-jeweler { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }

/* Scene: penelope-laments (tense, dim firelit interior) */
.scn-penelope-laments { background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a0e 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%); }
.scn-penelope-laments .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-penelope-laments .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e0a 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; }
.scn-penelope-laments .table { position:absolute; bottom:20%; left:50%; width:120px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: pl-table 8s ease-in-out infinite alternate; }
.scn-penelope-laments .lamp { position:absolute; bottom:42%; left:48%; width:14px; height:18px; background: radial-gradient(circle, #e0a040 0%, #c08030 60%, #8a5018 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px #c08030, 0 0 40px 12px rgba(192,128,48,.4); animation: pl-lamp 2s ease-in-out infinite alternate; }
.scn-penelope-laments .figure { position:absolute; bottom:24%; left:38%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pl-figure 6s ease-in-out infinite; }
.scn-penelope-laments .chair { position:absolute; bottom:20%; left:36%; width:60px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 10% 10% 20% 20%; box-shadow: 2px 0 8px rgba(0,0,0,.4); }
.scn-penelope-laments .curtain { position:absolute; top:0; right:0; width:80px; height:100%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-left: 2px solid #5a4a3a; animation: pl-curtain 12s ease-in-out infinite alternate; }
.scn-penelope-laments .shadow { position:absolute; bottom:22%; left:42%; width:30px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); animation: pl-shadow 6s ease-in-out infinite; }
@keyframes pl-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes pl-lamp { 0% { opacity: .7; box-shadow: 0 0 15px 4px #c08030; } 50% { opacity: 1; box-shadow: 0 0 25px 8px #e0a040; } 100% { opacity: .8; box-shadow: 0 0 18px 5px #c08030; } }
@keyframes pl-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(-3px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes pl-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(0); } }
@keyframes pl-shadow { 0% { transform: scale(1); opacity: .5; } 50% { transform: scale(1.1); opacity: .7; } 100% { transform: scale(1); opacity: .5; } }

/* Scene: euryclea-confesses (calm, dim firelit interior) */
.scn-euryclea-confesses { background: linear-gradient(180deg, #2a2215 0%, #3a2a1a 40%, #4a3a28 70%, #2a1a0e 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%); }
.scn-euryclea-confesses .bg-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); }
.scn-euryclea-confesses .bg-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e0a 100%); border-radius: 0 0 40% 40% / 0 0 15% 15%; }
.scn-euryclea-confesses .lamp-ec { position:absolute; bottom:38%; left:55%; width:12px; height:16px; background: radial-gradient(circle, #d0a050 0%, #b08030 60%, #7a4a18 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 18px 4px #b08030, 0 0 36px 10px rgba(176,128,48,.3); animation: ec-lamp 5s ease-in-out infinite alternate; }
.scn-euryclea-confesses .pitcher { position:absolute; bottom:28%; left:52%; width:20px; height:30px; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 2px 2px 6px rgba(0,0,0,.4); }
.scn-euryclea-confesses .figure-left { position:absolute; bottom:26%; left:30%; width:22px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ec-figure-l 8s ease-in-out infinite; }
.scn-euryclea-confesses .figure-right { position:absolute; bottom:24%; left:60%; width:24px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ec-figure-r 9s ease-in-out infinite; }
.scn-euryclea-confesses .table-ec { position:absolute; bottom:22%; left:45%; width:80px; height:14px; background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-euryclea-confesses .glow-ec { position:absolute; bottom:35%; left:40%; width:60px; height:40px; background: radial-gradient(ellipse, rgba(200,160,80,.2) 0%, transparent 70%); filter: blur(8px); animation: ec-glow 7s ease-in-out infinite alternate; }
@keyframes ec-lamp { 0% { opacity: .8; box-shadow: 0 0 15px 3px #b08030; } 50% { opacity: 1; box-shadow: 0 0 22px 6px #d0a050; } 100% { opacity: .9; box-shadow: 0 0 18px 4px #b08030; } }
@keyframes ec-figure-l { 0% { transform: translateY(0) rotate(-1deg); } 33% { transform: translateY(-3px) rotate(0); } 66% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ec-figure-r { 0% { transform: translateY(0) rotate(1deg); } 33% { transform: translateY(-2px) rotate(0); } 66% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ec-glow { 0% { opacity: .3; transform: scale(1); } 50% { opacity: .6; transform: scale(1.05); } 100% { opacity: .4; transform: scale(.95); } }

/* Scene: penelope-prays-to-minerva (tense, dim interior, altar) */
.scn-penelope-prays-to-minerva { background: linear-gradient(180deg, #1e1410 0%, #2f2018 30%, #3f2e22 60%, #1e1410 100%), radial-gradient(ellipse at 50% 90%, #3f2e22 0%, transparent 70%); }
.scn-penelope-prays-to-minerva .pillar { position:absolute; bottom:0; left:15%; width:20px; height:80%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius: 5% 5% 0 0; box-shadow: 2px 0 10px rgba(0,0,0,.6); }
.scn-penelope-prays-to-minerva .altar { position:absolute; bottom:30%; left:50%; width:70px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: pn-altar 8s ease-in-out infinite alternate; }
.scn-penelope-prays-to-minerva .basket { position:absolute; bottom:48%; left:50%; width:24px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 30% 30% 20% 20%; box-shadow: inset 0 2px 4px rgba(0,0,0,.3); }
.scn-penelope-prays-to-minerva .figure-pn { position:absolute; bottom:26%; left:50%; width:24px; height:52px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pn-figure 6s ease-in-out infinite; }
.scn-penelope-prays-to-minerva .halo { position:absolute; top:10%; left:45%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,160,100,.2) 0%, transparent 70%); border-radius: 50%; filter: blur(12px); animation: pn-halo 10s ease-in-out infinite alternate; }
.scn-penelope-prays-to-minerva .window-pn { position:absolute; top:8%; right:10%; width:50px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border: 2px solid #5a4a3a; border-radius: 5% 5% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-penelope-prays-to-minerva .floor-pn { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e0a 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
@keyframes pn-altar { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes pn-figure { 0% { transform: translateX(-50%) rotate(0) scaleY(1); } 25% { transform: translateX(-50%) rotate(-2deg) scaleY(1.02); } 50% { transform: translateX(-50%) rotate(0) scaleY(1); } 75% { transform: translateX(-50%) rotate(2deg) scaleY(1.01); } 100% { transform: translateX(-50%) rotate(0) scaleY(1); } }
@keyframes pn-halo { 0% { opacity: .2; transform: scale(.8); } 50% { opacity: .5; transform: scale(1.2); } 100% { opacity: .3; transform: scale(.9); } }

/* Scene: suitors-boast (tense, dim cloister, crowded) */
.scn-suitors-boast { background: linear-gradient(180deg, #1e1510 0%, #2f2018 30%, #1e1510 60%, #0f0a08 100%), radial-gradient(ellipse at 50% 50%, #2f2018 0%, transparent 60%); }
.scn-suitors-boast .bg-cloister { position:absolute; inset:0; background: linear-gradient(90deg, #2a1a10 0%, #3a2a1a 20%, #2a1a10 40%, #3a2a1a 60%, #2a1a10 80%, #3a2a1a 100%); opacity: .6; animation: sb-bg 20s linear infinite; }
.scn-suitors-boast .table-sb { position:absolute; bottom:20%; left:50%; width:160px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%); border-radius: 5% 5% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.6); animation: sb-table 6s ease-in-out infinite alternate; }
.scn-suitors-boast .cup-1 { position:absolute; bottom:28%; left:42%; width:12px; height:16px; background: radial-gradient(ellipse at 50% 100%, #8a5a3a 0%, #6a3a1a 100%); border-radius: 30% 30% 10% 10%; animation: sb-cup 4s ease-in-out infinite; }
.scn-suitors-boast .cup-2 { position:absolute; bottom:28%; right:40%; width:12px; height:18px; background: radial-gradient(ellipse at 50% 100%, #8a5a3a 0%, #6a3a1a 100%); border-radius: 30% 30% 10% 10%; animation: sb-cup 4s ease-in-out infinite reverse; }
.scn-suitors-boast .torch { position:absolute; bottom:30%; left:15%; width:8px; height:50px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 5% 5% 20% 20%; box-shadow: 0 0 20px 4px #b08030; }
.scn-suitors-boast .flame { position:absolute; bottom:65%; left:14.5%; width:16px; height:20px; background: radial-gradient(circle, #e0a040 0%, #c08030 40%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: sb-flame .5s ease-in-out infinite alternate; }
.scn-suitors-boast .suitors-left { position:absolute; bottom:18%; left:20%; width:40px; height:50px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: sb-suitors-l 5s ease-in-out infinite; }
.scn-suitors-boast .suitors-right { position:absolute; bottom:18%; right:20%; width:40px; height:52px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: sb-suitors-r 6s ease-in-out infinite; }
@keyframes sb-bg { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@keyframes sb-table { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes sb-cup { 0% { transform: translateY(0) rotate(-10deg); } 25% { transform: translateY(-4px) rotate(5deg); } 50% { transform: translateY(-1px) rotate(-5deg); } 75% { transform: translateY(-3px) rotate(10deg); } 100% { transform: translateY(0) rotate(-10deg); } }
@keyframes sb-flame { 0% { transform: scaleY(1) translateY(0); opacity: .9; } 50% { transform: scaleY(1.3) translateY(-3px); opacity: 1; } 100% { transform: scaleY(.8) translateY(2px); opacity: .8; } }
@keyframes sb-suitors-l { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(5deg); } 50% { transform: translateX(4px) rotate(-3deg); } 75% { transform: translateX(12px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sb-suitors-r { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-6px) rotate(-4deg); } 50% { transform: translateX(-10px) rotate(3deg); } 75% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }

/* minerva-visits-nausicaa */
.scn-minerva-visits-nausicaa {
  background:
    radial-gradient(ellipse at 40% 60%, #3a2a3a 0%, #1a1a2a 60%),
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.5);
}
.scn-minerva-visits-nausicaa .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: scn1-wall 12s ease-in-out infinite alternate;
}
.scn-minerva-visits-nausicaa .bed {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 45%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 24px rgba(0,0,0,.6);
  animation: scn1-bed 9s ease-in-out infinite;
}
.scn-minerva-visits-nausicaa .figure-sleeper {
  position: absolute; bottom: 20%; left: 40%; width: 22%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scn1-sleep 6s ease-in-out infinite alternate;
}
.scn-minerva-visits-nausicaa .maid-left {
  position: absolute; bottom: 20%; left: 10%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: scn1-maid-l 10s ease-in-out infinite;
}
.scn-minerva-visits-nausicaa .maid-right {
  position: absolute; bottom: 20%; left: 78%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: scn1-maid-r 10s ease-in-out infinite;
}
.scn-minerva-visits-nausicaa .lamp-glow {
  position: absolute; top: 30%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c0a060 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(192,160,96,.4), 0 0 120px 40px rgba(192,160,96,.2);
  animation: scn1-lamp 4s ease-in-out infinite alternate;
}
.scn-minerva-visits-nausicaa .window-light {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #8a7a6a 0%, transparent 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 30px 10px rgba(138,122,106,.3);
  animation: scn1-win 8s ease-in-out infinite alternate;
}
@keyframes scn1-wall { 0% { opacity:1 } 50% { opacity:0.9 } 100% { opacity:0.95 } }
@keyframes scn1-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes scn1-sleep { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes scn1-maid-l { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes scn1-maid-r { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes scn1-lamp { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(1.02) } }
@keyframes scn1-win { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

/* minerva-prompt-nausicaa */
.scn-minerva-prompt-nausicaa {
  background:
    radial-gradient(ellipse at 30% 40%, #4a3020 0%, #2a1a10 70%),
    linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.4);
}
.scn-minerva-prompt-nausicaa .room-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%);
  animation: scn2-shadow 12s ease-in-out infinite alternate;
}
.scn-minerva-prompt-nausicaa .bed {
  position: absolute; bottom: 15%; left: 15%; width: 50%; height: 45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 24px rgba(0,0,0,.5);
  animation: scn2-bed 8s ease-in-out infinite;
}
.scn-minerva-prompt-nausicaa .figure-sleeper {
  position: absolute; bottom: 20%; left: 30%; width: 20%; height: 28%;
  background: radial-gradient(ellipse at 50% 30%, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scn2-sleeper 5s ease-in-out infinite alternate;
}
.scn-minerva-prompt-nausicaa .figure-prompt {
  position: absolute; bottom: 20%; left: 55%; width: 18%; height: 32%;
  background: linear-gradient(180deg, #6a5a4a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: scn2-prompt 6s ease-in-out infinite;
}
.scn-minerva-prompt-nausicaa .clothes-scatter {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 20%;
  background:
    radial-gradient(ellipse at 20% 50%, #8a7a6a 0%, transparent 30%),
    radial-gradient(ellipse at 70% 30%, #9a8a7a 0%, transparent 30%),
    radial-gradient(ellipse at 45% 70%, #7a6a5a 0%, transparent 30%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  filter: blur(2px);
  animation: scn2-clothes 10s ease-in-out infinite;
}
.scn-minerva-prompt-nausicaa .lamp-flicker {
  position: absolute; top: 25%; left: 60%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d0a060 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(208,160,96,.5), 0 0 80px 30px rgba(208,160,96,.3);
  animation: scn2-lamp 2s ease-in-out infinite alternate;
}
.scn-minerva-prompt-nausicaa .doorway {
  position: absolute; bottom: 10%; left: 75%; width: 20%; height: 60%;
  background: linear-gradient(90deg, #1a0a00 0%, #2a1a0a 40%, #1a0a00 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  animation: scn2-door 7s ease-in-out infinite alternate;
}
@keyframes scn2-shadow { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.5 } }
@keyframes scn2-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes scn2-sleeper { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes scn2-prompt { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(0) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes scn2-clothes { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:0.9; transform: scale(1.02) } 100% { opacity:0.7; transform: scale(0.98) } }
@keyframes scn2-lamp { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.85; transform: scale(0.95) } }
@keyframes scn2-door { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }

/* minerva-returns-to-olympus */
.scn-minerva-returns-to-olympus {
  background:
    radial-gradient(ellipse at 50% 30%, #c8d8e8 0%, #a0b8d0 40%, #8090a8 100%),
    linear-gradient(180deg, #e0e8f0 0%, #b0c0d0 100%);
  box-shadow: inset 0 0 120px rgba(255,255,255,.4);
}
.scn-minerva-returns-to-olympus .sky-bright {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8f0f8 0%, #b0c0d0 100%);
  animation: scn3-sky 15s ease-in-out infinite alternate;
}
.scn-minerva-returns-to-olympus .columns {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 50%;
  background: linear-gradient(180deg, #d8d8d0 0%, #b0b0a8 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -10px 40px rgba(255,255,255,.3);
}
.scn-minerva-returns-to-olympus .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8c8c0 0%, #a0a098 100%);
  border-radius: 10% 10% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.1);
  animation: scn3-floor 10s ease-in-out infinite alternate;
}
.scn-minerva-returns-to-olympus .figure-minerva {
  position: absolute; bottom: 40%; left: 45%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #e8e0d0 0%, #c8b8a0 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: scn3-fig 12s ease-in-out infinite alternate;
}
.scn-minerva-returns-to-olympus .sunburst {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(circle, #fff8e0 0%, #ffe0a0 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: scn3-sun 20s ease-in-out infinite alternate;
}
.scn-minerva-returns-to-olympus .clouds {
  position: absolute; top: 15%; left: 5%; width: 90%; height: 20%;
  background: radial-gradient(ellipse at 10% 50%, rgba(255,255,255,.6) 0%, transparent 50%),
              radial-gradient(ellipse at 60% 40%, rgba(255,255,255,.5) 0%, transparent 50%),
              radial-gradient(ellipse at 90% 60%, rgba(255,255,255,.4) 0%, transparent 50%);
  filter: blur(5px);
  animation: scn3-cloud 35s linear infinite;
}
@keyframes scn3-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes scn3-floor { 0% { opacity:0.9; transform: scale(1) } 50% { opacity:1; transform: scale(1.01) } 100% { opacity:0.95; transform: scale(0.99) } }
@keyframes scn3-fig { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-5px) rotate(0) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes scn3-sun { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(1.02) } }
@keyframes scn3-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-30%) } }

/* nausicaa-wakes */
.scn-nausicaa-wakes {
  background:
    radial-gradient(ellipse at 70% 40%, #4a4a5a 0%, #2a2a3a 60%),
    linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.4);
}
.scn-nausicaa-wakes .dawn-sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #6a6a8a 0%, #4a4a6a 50%, #2a2a4a 100%);
  animation: scn4-dawn 15s ease-in-out infinite alternate;
}
.scn-nausicaa-wakes .room-interior {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,.6);
  animation: scn4-room 10s ease-in-out infinite alternate;
}
.scn-nausicaa-wakes .fireplace {
  position: absolute; bottom: 15%; left: 10%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 40px rgba(200,100,50,.3);
  animation: scn4-fire 6s ease-in-out infinite alternate;
}
.scn-nausicaa-wakes .figure-mother {
  position: absolute; bottom: 20%; left: 15%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: scn4-mother 11s ease-in-out infinite;
}
.scn-nausicaa-wakes .figure-nausicaa {
  position: absolute; bottom: 20%; left: 55%; width: 16%; height: 32%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: scn4-naus 8s ease-in-out infinite;
}
.scn-nausicaa-wakes .doorway {
  position: absolute; bottom: 10%; left: 45%; width: 20%; height: 60%;
  background: linear-gradient(90deg, #1a0a00 0%, #2a1a0a 40%, #1a0a00 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  animation: scn4-door 12s ease-in-out infinite alternate;
}
.scn-nausicaa-wakes .spindle-yarn {
  position: absolute; bottom: 25%; left: 20%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 50% / 30% 30% 30% 30%;
  transform-origin: bottom center;
  animation: scn4-spin 3s ease-in-out infinite;
}
@keyframes scn4-dawn { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes scn4-room { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.01) } 100% { opacity:0.9; transform: scale(0.99) } }
@keyframes scn4-fire { 0% { transform: scale(1); opacity:0.8 } 50% { transform: scale(1.05) translateY(-2px); opacity:1 } 100% { transform: scale(0.95); opacity:0.85 } }
@keyframes scn4-mother { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes scn4-naus { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-5px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(0) translateY(-1px) rotate(0) } 75% { transform: translateX(5px) translateY(-2px) rotate(-3deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes scn4-door { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes scn4-spin { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } }

/* footnote-aegean-geography */
.scn-footnote-aegean-geography {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120c 50%, #0e0a06 100%),
              radial-gradient(ellipse at 40% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-footnote-aegean-geography .wall { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, #3a2a1a 0%, #1a120c 100%); }
.scn-footnote-aegean-geography .window-frame { position:absolute; top:10%; left:10%; width:50%; height:60%; border:3px solid #4a3a2a; background: transparent; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.7); }
.scn-footnote-aegean-geography .sea { position:absolute; top:25%; left:12%; width:46%; height:35%; background: linear-gradient(180deg, #1a2e3a 0%, #0e1a22 100%); border-radius: 0 0 4px 4px; opacity:.6; animation: fn1-sea 12s ease-in-out infinite alternate; }
.scn-footnote-aegean-geography .map { position:absolute; top:15%; left:55%; width:30%; height:50%; background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:2px; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: fn1-map 9s ease-in-out infinite alternate; }
.scn-footnote-aegean-geography .map::after { content:''; position:absolute; top:10%; left:10%; width:80%; height:80%; background: repeating-linear-gradient(0deg, transparent, transparent 4px, #4a3a2a 4px, #4a3a2a 5px); opacity:.3; }
.scn-footnote-aegean-geography .lamp { position:absolute; bottom:30%; left:20%; width:8px; height:20px; background: #4a3a2a; border-radius:2px 2px 4px 4px; }
.scn-footnote-aegean-geography .lamp::before { content:''; position:absolute; top:-10px; left:-6px; width:20px; height:20px; background: radial-gradient(circle, #f0c060 0%, #b08040 60%, transparent 100%); border-radius:50%; animation: fn1-lamp-glow 3s ease-in-out infinite alternate; }
.scn-footnote-aegean-geography .chair { position:absolute; bottom:5%; left:40%; width:40px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120c 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform: skewY(-2deg); animation: fn1-chair 8s ease-in-out infinite; }
.scn-footnote-aegean-geography .book-stack { position:absolute; bottom:10%; right:15%; width:30px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; box-shadow: 2px 2px 6px rgba(0,0,0,.5); }
.scn-footnote-aegean-geography .book-stack::before { content:''; position:absolute; bottom:10px; left:3px; width:24px; height:8px; background: #7a6a4a; border-radius:1px; }
@keyframes fn1-sea { 0% {opacity:.4;} 50% {opacity:.7;} 100% {opacity:.5;} }
@keyframes fn1-map { 0% {transform: translateX(0) rotate(-1deg);} 50% {transform: translateY(-2px) rotate(1deg);} 100% {transform: translateX(0) rotate(0);} }
@keyframes fn1-lamp-glow { 0% {box-shadow: 0 0 20px 5px #b08040, 0 0 40px 10px rgba(176,128,64,.3); opacity:.8;} 50% {box-shadow: 0 0 30px 10px #f0c060, 0 0 60px 20px rgba(240,192,96,.5); opacity:1;} 100% {box-shadow: 0 0 25px 8px #b08040, 0 0 50px 15px rgba(176,128,64,.35); opacity:.9;} }
@keyframes fn1-chair { 0% {transform: skewY(-2deg) translateY(0);} 50% {transform: skewY(0deg) translateY(-1px);} 100% {transform: skewY(-2deg) translateY(0);} }

/* footnote-meneaus-return */
.scn-footnote-meneaus-return {
  background: linear-gradient(180deg, #1a1a2e 0%, #12121e 50%, #0a0a12 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a4e 0%, transparent 60%);
}
.scn-footnote-meneaus-return .wall { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 30%, #2a2a4e 0%, #12121e 100%); }
.scn-footnote-meneaus-return .archway { position:absolute; top:5%; left:50%; width:40%; height:95%; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a5e 0%, #1a1a2e 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-footnote-meneaus-return .figure-return { position:absolute; bottom:20%; left:35%; width:24px; height:60px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fn2-figure 6s ease-in-out infinite; }
.scn-footnote-meneaus-return .figure-return::before { content:''; position:absolute; top:10px; left:-5px; width:10px; height:20px; background: #3a3a5a; border-radius: 20% 20% 10% 10%; transform: rotate(30deg); }
.scn-footnote-meneaus-return .table { position:absolute; bottom:15%; left:20%; width:30%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-footnote-meneaus-return .plate { position:absolute; bottom:20%; left:28%; width:12%; height:6%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:50%; opacity:.6; animation: fn2-plate 4s ease-in-out infinite alternate; }
.scn-footnote-meneaus-return .torch { position:absolute; bottom:18%; right:20%; width:6px; height:40px; background: #3a2a1a; border-radius:2px; }
.scn-footnote-meneaus-return .torch::before { content:''; position:absolute; top:-15px; left:-8px; width:22px; height:22px; background: radial-gradient(circle, #f0a060 0%, #b06030 60%, transparent 100%); border-radius:50%; animation: fn2-torch 2s ease-in-out infinite alternate; }
.scn-footnote-meneaus-return .shadow { position:absolute; bottom:5%; left:0; width:100%; height:30%; background: linear-gradient(180deg, transparent 0%, #0a0a12 100%); }
@keyframes fn2-figure { 0% {transform: translateX(0) rotate(-2deg);} 50% {transform: translateX(8px) rotate(2deg);} 100% {transform: translateX(16px) rotate(0deg);} }
@keyframes fn2-plate { 0% {transform: scale(1); opacity:.6;} 50% {transform: scale(1.02); opacity:.8;} 100% {transform: scale(0.98); opacity:.7;} }
@keyframes fn2-torch { 0% {box-shadow: 0 0 15px 3px #b06030, 0 0 30px 8px rgba(176,96,48,.3); opacity:.7;} 50% {box-shadow: 0 0 25px 8px #f0a060, 0 0 50px 15px rgba(240,160,96,.5); opacity:1;} 100% {box-shadow: 0 0 20px 5px #b06030, 0 0 40px 10px rgba(176,96,48,.35); opacity:.8;} }

/* footnote-heifer-slaughter */
.scn-footnote-heifer-slaughter {
  background: linear-gradient(180deg, #1e1a14 0%, #12100c 50%, #080605 100%),
              radial-gradient(ellipse at 30% 70%, #2a2018 0%, transparent 60%);
}
.scn-footnote-heifer-slaughter .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); }
.scn-footnote-heifer-slaughter .altar { position:absolute; bottom:25%; left:50%; width:30%; height:20%; transform:translateX(-50%); background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-footnote-heifer-slaughter .heifer { position:absolute; bottom:30%; left:40%; width:60px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(1.2); animation: fn3-heifer 8s ease-in-out infinite alternate; }
.scn-footnote-heifer-slaughter .figure-nestor { position:absolute; bottom:28%; left:25%; width:18px; height:50px; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: translateY(-2px); animation: fn3-fig-left 6s ease-in-out infinite; }
.scn-footnote-heifer-slaughter .figure-wife { position:absolute; bottom:28%; right:20%; width:16px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120c 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: fn3-fig-right 7s ease-in-out infinite; }
.scn-footnote-heifer-slaughter .lamp-altar { position:absolute; bottom:38%; left:55%; width:8px; height:8px; background: radial-gradient(circle, #c08040 0%, #805020 70%); border-radius:50%; box-shadow: 0 0 20px 5px #805020, 0 0 40px 10px rgba(128,80,32,.3); animation: fn3-lamp 3s ease-in-out infinite alternate; }
.scn-footnote-heifer-slaughter .smoke { position:absolute; top:15%; left:45%; width:30px; height:40px; background: radial-gradient(ellipse, rgba(200,180,160,.2) 0%, transparent 70%); border-radius:50%; filter:blur(5px); animation: fn3-smoke 20s linear infinite; }
@keyframes fn3-heifer { 0% {transform: scaleX(1.2) translateY(0);} 50% {transform: scaleX(1.15) translateY(-2px);} 100% {transform: scaleX(1.2) translateY(0);} }
@keyframes fn3-fig-left { 0% {transform: translate(-2px, -1px) rotate(-2deg);} 50% {transform: translate(2px, 0) rotate(2deg);} 100% {transform: translate(-2px, -1px) rotate(-2deg);} }
@keyframes fn3-fig-right { 0% {transform: translate(0, -2px) rotate(1deg);} 50% {transform: translate(-2px, 0) rotate(-1deg);} 100% {transform: translate(0, -2px) rotate(1deg);} }
@keyframes fn3-lamp { 0% {box-shadow: 0 0 15px 3px #805020, 0 0 30px 6px rgba(128,80,32,.3); opacity:.7;} 50% {box-shadow: 0 0 25px 8px #c08040, 0 0 50px 15px rgba(192,128,64,.5); opacity:1;} 100% {box-shadow: 0 0 20px 5px #805020, 0 0 40px 10px rgba(128,80,32,.35); opacity:.8;} }
@keyframes fn3-smoke { 0% {transform: translate(0, 0) rotate(0deg); opacity:.2;} 25% {transform: translate(10px, -10px) rotate(10deg); opacity:.3;} 50% {transform: translate(20px, -20px) rotate(20deg); opacity:.15;} 75% {transform: translate(10px, -30px) rotate(10deg); opacity:.25;} 100% {transform: translate(0, -40px) rotate(0deg); opacity:.1;} }

/* footnote-sicilian-yard */
.scn-footnote-sicilian-yard {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0e0e1e 100%),
              radial-gradient(ellipse at 50% 70%, #3a3a5e 0%, transparent 50%);
}
.scn-footnote-sicilian-yard .sky { position:absolute; top:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a3e 0%, #2a3a4e 100%); }
.scn-footnote-sicilian-yard .wall-left { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-right:2px solid #4a4a5a; }
.scn-footnote-sicilian-yard .wall-right { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-left:2px solid #4a4a5a; }
.scn-footnote-sicilian-yard .arch-left { position:absolute; top:20%; left:20%; width:20%; height:50%; background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-footnote-sicilian-yard .arch-right { position:absolute; top:20%; right:20%; width:20%; height:50%; background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-footnote-sicilian-yard .fountain { position:absolute; bottom:20%; left:50%; width:30%; height:20%; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2e 100%); border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 -4px 8px rgba(0,0,0,.4); animation: fn4-fountain 10s ease-in-out infinite alternate; }
.scn-footnote-sicilian-yard .ground { position:absolute; bottom:0; left:25%; right:25%; height:30%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-top:2px solid #4a4a5a; }
.scn-footnote-sicilian-yard .column { position:absolute; bottom:25%; left:45%; width:4%; height:30%; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius:2px; box-shadow: 2px 0 4px rgba(0,0,0,.5); animation: fn4-col 12s ease-in-out infinite alternate; }
@keyframes fn4-fountain { 0% {transform: translateX(-50%) scaleY(1);} 50% {transform: translateX(-50%) scaleY(1.02);} 100% {transform: translateX(-50%) scaleY(0.98);} }
@keyframes fn4-col { 0% {transform: scaleY(1); opacity:.8;} 50% {transform: scaleY(1.05); opacity:1;} 100% {transform: scaleY(0.95); opacity:.8;} }
@keyframes fn4-sky { 0% {opacity:.7;} 50% {opacity:1;} 100% {opacity:.8;} } /* added for sky, but sky already has animation? Let's attach */
.scn-footnote-sicilian-yard .sky { animation: fn4-sky 15s ease-in-out infinite alternate; }

.scn-ulysses-decides-to-stick-to-raft { background: linear-gradient(180deg, #0a0a2e 0%, #141445 40%, #1a1a50 70%), radial-gradient(ellipse at 50% 100%, #1a1a50 0%, transparent 80%); }
.scn-ulysses-decides-to-stick-to-raft .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0f0f35 0%, #181855 60%, transparent); animation: udr-sky 20s ease-in-out infinite alternate; }
.scn-ulysses-decides-to-stick-to-raft .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #0c0c3a 0%, #060620 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.6); animation: udr-sea 12s ease-in-out infinite; }
.scn-ulysses-decides-to-stick-to-raft .raft { position:absolute; bottom:30%; left:50%; width:80px; height:16px; transform:translateX(-50%); background: linear-gradient(90deg, #3a2a1a, #4a3a2a 50%, #3a2a1a); border-radius: 20% 20% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: udr-raft 6s ease-in-out infinite; }
.scn-ulysses-decides-to-stick-to-raft .figure { position:absolute; bottom:33%; left:48%; width:20px; height:36px; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: udr-figure 4s ease-in-out infinite; }
.scn-ulysses-decides-to-stick-to-raft .plank-a { position:absolute; bottom:22%; left:15%; width:18px; height:4px; background: #3a2a1a; border-radius:2px; transform:rotate(-10deg); animation: udr-plank-a 8s ease-in-out infinite; }
.scn-ulysses-decides-to-stick-to-raft .plank-b { position:absolute; bottom:28%; right:20%; width:14px; height:3px; background: #2a1a0a; border-radius:2px; transform:rotate(15deg); animation: udr-plank-b 10s ease-in-out infinite reverse; }
.scn-ulysses-decides-to-stick-to-raft .star-a { position:absolute; top:12%; left:10%; width:3px; height:3px; background:#aab; border-radius:50%; box-shadow: 0 0 6px 2px rgba(170,170,187,.5); animation: udr-star-a 3s ease-in-out infinite alternate; }
.scn-ulysses-decides-to-stick-to-raft .star-b { position:absolute; top:5%; right:30%; width:2px; height:2px; background:#ccd; border-radius:50%; box-shadow: 0 0 4px 1px rgba(204,204,221,.4); animation: udr-star-b 5s ease-in-out infinite alternate; }
.scn-ulysses-decides-to-stick-to-raft .moon-hint { position:absolute; top:8%; right:20%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,200,220,.3) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: udr-moon 15s ease-in-out infinite; }
@keyframes udr-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes udr-sea { 0%,100% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(3px) scaleY(1.02) } 50% { transform: translateY(-2px) scaleY(.98) } 75% { transform: translateY(1px) scaleY(1.01) } }
@keyframes udr-raft { 0%,100% { transform: translateX(-50%) rotate(-2deg) } 25% { transform: translateX(-48%) rotate(1deg) } 50% { transform: translateX(-52%) rotate(-1deg) } 75% { transform: translateX(-49%) rotate(2deg) } }
@keyframes udr-figure { 0%,100% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(2deg) } }
@keyframes udr-plank-a { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } }
@keyframes udr-plank-b { 0%,100% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(12deg) translateY(1px) } }
@keyframes udr-star-a { 0% { opacity:.4; transform:scale(1) } 50% { opacity:1; transform:scale(1.4) } 100% { opacity:.6; transform:scale(.9) } }
@keyframes udr-star-b { 0% { opacity:.5; transform:scale(1) } 50% { opacity:1; transform:scale(1.3) } 100% { opacity:.7; transform:scale(.8) } }
@keyframes udr-moon { 0%,100% { opacity:.15; transform: translate(0,0) } 50% { opacity:.25; transform: translate(2px,-2px) } }

.scn-raft-destroyed { background: linear-gradient(180deg, #050515 0%, #0a0a2a 30%, #101040 70%), radial-gradient(ellipse at 50% 100%, #101040 0%, transparent 80%); }
.scn-raft-destroyed .sky-storm { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a2e 0%, #151550 60%, transparent); animation: rd-sky 15s ease-in-out infinite alternate; }
.scn-raft-destroyed .wave-big { position:absolute; bottom:0; left:-10%; right:-10%; height:65%; background: linear-gradient(180deg, #0c0c3a 0%, #050520 80%); border-radius: 70% 30% 0 0 / 40% 10% 0 0; box-shadow: inset 0 30px 60px rgba(0,0,0,.7); animation: rd-wave-big 8s ease-in-out infinite; }
.scn-raft-destroyed .wave-foam { position:absolute; bottom:30%; left:0; right:0; height:12px; background: linear-gradient(90deg, transparent, rgba(180,180,200,.4) 20%, rgba(200,200,220,.6) 50%, rgba(180,180,200,.4) 80%, transparent); filter: blur(2px); animation: rd-foam 4s ease-in-out infinite; }
.scn-raft-destroyed .plank-1 { position:absolute; bottom:45%; left:30%; width:40px; height:6px; background: linear-gradient(90deg, #3a2a1a, #2a1a0a); border-radius: 30% 30% 10% 10%; transform: rotate(25deg); animation: rd-plank-1 3s ease-in-out infinite; }
.scn-raft-destroyed .plank-2 { position:absolute; bottom:50%; right:25%; width:30px; height:5px; background: linear-gradient(90deg, #2a1a0a, #3a2a1a); border-radius: 20% 20% 5% 5%; transform: rotate(-40deg); animation: rd-plank-2 3.8s ease-in-out infinite reverse; }
.scn-raft-destroyed .figure-clinging { position:absolute; bottom:42%; left:47%; width:22px; height:40px; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform: rotate(10deg); animation: rd-figure 2s ease-in-out infinite; }
.scn-raft-destroyed .spray-1 { position:absolute; bottom:25%; left:20%; width:8px; height:8px; background: rgba(200,200,220,.3); border-radius:50%; filter: blur(2px); animation: rd-spray-1 2.5s ease-in-out infinite; }
.scn-raft-destroyed .spray-2 { position:absolute; bottom:35%; right:15%; width:6px; height:6px; background: rgba(200,200,220,.2); border-radius:50%; filter: blur(3px); animation: rd-spray-2 3.2s ease-in-out infinite; }
@keyframes rd-sky { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes rd-wave-big { 0%,100% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(8px) scaleY(1.08) } 50% { transform: translateY(-4px) scaleY(.95) } 75% { transform: translateY(3px) scaleY(1.03) } }
@keyframes rd-foam { 0%,100% { opacity:.6; transform: translateX(0) } 50% { opacity:1; transform: translateX(20px) } }
@keyframes rd-plank-1 { 0%,100% { transform: rotate(25deg) translate(0,0) } 50% { transform: rotate(35deg) translate(5px,-3px) } }
@keyframes rd-plank-2 { 0%,100% { transform: rotate(-40deg) translate(0,0) } 50% { transform: rotate(-30deg) translate(-4px,2px) } }
@keyframes rd-figure { 0%,100% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(5deg) translateY(2px) } }
@keyframes rd-spray-1 { 0%,100% { opacity:.3; transform: translate(0,0) scale(1) } 50% { opacity:1; transform: translate(10px,-8px) scale(1.5) } }
@keyframes rd-spray-2 { 0%,100% { opacity:.2; transform: translate(0,0) scale(1) } 50% { opacity:.7; transform: translate(-6px,-5px) scale(1.3) } }

.scn-minerva-quiets-winds { background: linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 30%, #8a9aaa 60%), radial-gradient(ellipse at 50% 100%, #8a9aaa 0%, transparent 80%); }
.scn-minerva-quiets-winds .sky-calm { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #5a6a7a 0%, #8a9aaa 60%, transparent); animation: mqw-sky 30s ease-in-out infinite alternate; }
.scn-minerva-quiets-winds .sea-calm { position:absolute; bottom:0; left:0; right:0; height:65%; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 80%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.3); animation: mqw-sea 20s ease-in-out infinite; }
.scn-minerva-quiets-winds .horizon { position:absolute; bottom:35%; left:0; right:0; height:2px; background: rgba(150,160,170,.5); filter: blur(1px); animation: mqw-horizon 10s ease-in-out infinite; }
.scn-minerva-quiets-winds .boat { position:absolute; bottom:38%; left:50%; width:60px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: mqw-boat 8s ease-in-out infinite; }
.scn-minerva-quiets-winds .sail-soft { position:absolute; bottom:42%; left:50%; width:14px; height:22px; transform:translateX(-50%); background: linear-gradient(180deg, #aabbcc, #8a9aaa); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 10px rgba(200,210,220,.3); animation: mqw-sail 12s ease-in-out infinite; }
.scn-minerva-quiets-winds .wind-1 { position:absolute; top:15%; left:-20%; width:40px; height:2px; background: rgba(200,210,220,.2); border-radius:50%; filter: blur(2px); animation: mqw-wind-1 35s linear infinite; }
.scn-minerva-quiets-winds .wind-2 { position:absolute; top:25%; left:-30%; width:30px; height:1px; background: rgba(190,200,210,.15); border-radius:50%; filter: blur(3px); animation: mqw-wind-2 45s linear infinite reverse; }
.scn-minerva-quiets-winds .goddess-hint { position:absolute; top:8%; left:20%; width:30px; height:50px; background: radial-gradient(ellipse, rgba(220,230,240,.2) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: mqw-goddess 20s ease-in-out infinite; }
@keyframes mqw-sky { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes mqw-sea { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(1px) scaleY(1.005) } }
@keyframes mqw-horizon { 0%,100% { opacity:.5; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.02) } }
@keyframes mqw-boat { 0%,100% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-48%) rotate(1deg) } 50% { transform: translateX(-52%) rotate(0) } 75% { transform: translateX(-47%) rotate(-1deg) } }
@keyframes mqw-sail { 0%,100% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.05) } }
@keyframes mqw-wind-1 { 0% { transform: translateX(-100px) } 100% { transform: translateX(120vw) } }
@keyframes mqw-wind-2 { 0% { transform: translateX(-100px) } 100% { transform: translateX(130vw) } }
@keyframes mqw-goddess { 0%,100% { opacity:.1; transform: scale(1) } 50% { opacity:.3; transform: scale(1.2) } }

.scn-ulysses-spots-land { background: linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 40%, #8a9aaa 70%), radial-gradient(ellipse at 50% 100%, #8a9aaa 0%, transparent 80%); }
.scn-ulysses-spots-land .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a5a6a 0%, #7a8a9a 50%, transparent); animation: usl-sky 25s ease-in-out infinite alternate; }
.scn-ulysses-spots-land .sea-swell { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 80%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 30px 60px rgba(0,0,0,.5); animation: usl-sea 15s ease-in-out infinite; }
.scn-ulysses-spots-land .swell-peak { position:absolute; bottom:30%; left:40%; width:100px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(80,100,120,.4) 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: usl-swell 8s ease-in-out infinite; }
.scn-ulysses-spots-land .figure-spotting { position:absolute; bottom:35%; left:45%; width:20px; height:38px; background: linear-gradient(180deg, #1a2a3a, #0a1a2a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: usl-figure 6s ease-in-out infinite; }
.scn-ulysses-spots-land .land-afar { position:absolute; bottom:50%; right:15%; width:30px; height:20px; background: linear-gradient(180deg, #4a5a3a, #2a3a2a); border-radius: 40% 40% 0 0 / 80% 80% 0 0; box-shadow: 0 0 20px rgba(80,100,60,.3); animation: usl-land 20s ease-in-out infinite; }
.scn-ulysses-spots-land .mist { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(90deg, transparent, rgba(150,160,170,.2) 30%, rgba(150,160,170,.1) 70%, transparent); filter: blur(4px); animation: usl-mist 30s ease-in-out infinite; }
.scn-ulysses-spots-land .light-ray { position:absolute; top:10%; left:30%; width:4px; height:40px; background: linear-gradient(180deg, rgba(200,210,220,.3) 0%, transparent); transform: rotate(-15deg); filter: blur(2px); animation: usl-ray 10s ease-in-out infinite; }
@keyframes usl-sky { 0%,100% { opacity:.8 } 50% { opacity:.95 } }
@keyframes usl-sea { 0%,100% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(2px) scaleY(1.02) } 50% { transform: translateY(-3px) scaleY(.98) } 75% { transform: translateY(1px) scaleY(1.01) } }
@keyframes usl-swell { 0%,100% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } }
@keyframes usl-figure { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(-3px) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes usl-land { 0%,100% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } }
@keyframes usl-mist { 0%,100% { opacity:.3; transform: translateX(0) } 50% { opacity:.5; transform: translateX(10px) } }
@keyframes usl-ray { 0%,100% { opacity:.2; transform: rotate(-15deg) scaleY(1) } 50% { opacity:.5; transform: rotate(-18deg) scaleY(1.2) } }

.scn-footnote-helen-supper {
  background: linear-gradient(180deg, #2a1e1a 0%, #3d2c24 40%, #2a1e1a 100%),
              radial-gradient(ellipse at 50% 70%, #5a3a2a 0%, transparent 60%);
}
.scn-footnote-helen-supper .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3430 0%, transparent 100%);
  animation: hs-wall 12s ease-in-out infinite alternate;
}
.scn-footnote-helen-supper .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-footnote-helen-supper .table {
  position: absolute; bottom: 18%; left: 50%; width: 60%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-footnote-helen-supper .figure-left {
  position: absolute; bottom: 20%; left: 28%; width: 14%; height: 24%;
  background: linear-gradient(180deg, #2a1e1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs-fig-l 4s ease-in-out infinite;
}
.scn-footnote-helen-supper .figure-right {
  position: absolute; bottom: 20%; right: 28%; width: 14%; height: 24%;
  background: linear-gradient(180deg, #2a1e1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs-fig-r 4.5s ease-in-out infinite;
}
.scn-footnote-helen-supper .lamp-glow {
  position: absolute; bottom: 40%; left: 50%; width: 20%; height: 30%;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(200,160,80,0.6) 0%, rgba(200,160,80,0.1) 60%, transparent 100%);
  filter: blur(12px);
  animation: hs-lamp 3s ease-in-out infinite alternate;
}
.scn-footnote-helen-supper .lamp-body {
  position: absolute; bottom: 42%; left: 50%; width: 8%; height: 14%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 10px rgba(200,160,80,0.4);
}
.scn-footnote-helen-supper .plate {
  position: absolute; bottom: 20%; left: 50%; width: 12%; height: 4%;
  transform: translateX(-50%);
  background: radial-gradient(circle, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.5);
}
@keyframes hs-wall { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes hs-fig-l { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(-2deg) } }
@keyframes hs-fig-r { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(2deg) } }
@keyframes hs-lamp { 0% { opacity: 0.6; transform: translate(-50%,0) scale(1) } 100% { opacity: 1; transform: translate(-50%,-2px) scale(1.05) } }

.scn-footnote-donatello-horse {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #0f0f1a 100%),
              radial-gradient(ellipse at 30% 50%, #2a2a3e 0%, transparent 70%);
}
.scn-footnote-donatello-horse .horse-wall {
  position: absolute; top: 0; bottom: 15%; width: 30%;
  background: linear-gradient(180deg, #2a1e1a 0%, #0a0505 100%);
  border-radius: 20% 0 0 20% / 40% 0 0 40%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-footnote-donatello-horse .horse-wall.left {
  left: 0;
  background: linear-gradient(90deg, #1a0f0a 0%, #2a1e1a 100%);
  animation: dh-wall-l 18s ease-in-out infinite alternate;
}
.scn-footnote-donatello-horse .horse-wall.right {
  right: 0;
  background: linear-gradient(270deg, #1a0f0a 0%, #2a1e1a 100%);
  animation: dh-wall-r 18s ease-in-out infinite alternate;
}
.scn-footnote-donatello-horse .floor {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.8);
}
.scn-footnote-donatello-horse .figure1,
.scn-footnote-donatello-horse .figure2,
.scn-footnote-donatello-horse .figure3 {
  position: absolute; bottom: 16%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dh-fig 5s ease-in-out infinite;
}
.scn-footnote-donatello-horse .figure1 { left: 28%; animation-delay: 0s; }
.scn-footnote-donatello-horse .figure2 { left: 44%; animation-delay: 1s; }
.scn-footnote-donatello-horse .figure3 { right: 28%; animation-delay: 2s; }
.scn-footnote-donatello-horse .light-slit {
  position: absolute; top: 20%; left: 48%; width: 4%; height: 30%;
  background: linear-gradient(180deg, rgba(200,180,160,0.8) 0%, rgba(200,180,160,0.2) 100%);
  filter: blur(3px);
  animation: dh-slit 4s ease-in-out infinite alternate;
}
.scn-footnote-donatello-horse .dust {
  position: absolute; width: 2%; height: 2%;
  background: radial-gradient(circle, rgba(200,180,160,0.3), transparent);
  border-radius: 50%;
  animation: dh-dust 12s linear infinite;
}
.scn-footnote-donatello-horse .dust.particle1 { top: 30%; left: 30%; animation-duration: 14s; animation-delay: 0s; }
.scn-footnote-donatello-horse .dust.particle2 { top: 40%; right: 35%; animation-duration: 16s; animation-delay: 2s; }
@keyframes dh-wall-l { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes dh-wall-r { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes dh-fig { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes dh-slit { 0% { opacity: 0.4; transform: scaleX(1) } 100% { opacity: 1; transform: scaleX(1.2) } }
@keyframes dh-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.3 } 50% { transform: translateY(-20px) translateX(10px) scale(1.5); opacity: 0.6 } 100% { transform: translateY(-40px) translateX(-5px) scale(0.8); opacity: 0 } }

.scn-footnote-fish-smell {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 50%, #1a1a1a 100%),
              radial-gradient(circle at 50% 60%, #3a3a3a 0%, transparent 60%);
}
.scn-footnote-fish-smell .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-footnote-fish-smell .plate {
  position: absolute; bottom: 20%; left: 50%; width: 28%; height: 10%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 50%;
  box-shadow: inset 0 3px 8px rgba(0,0,0,0.5);
}
.scn-footnote-fish-smell .fish {
  position: absolute; bottom: 23%; left: 50%; width: 20%; height: 8%;
  transform: translateX(-50%) rotate(-10deg);
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 30% 30% 50% / 60% 40% 40% 60%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: fs-fish 4s ease-in-out infinite;
}
.scn-footnote-fish-smell .hand {
  position: absolute; bottom: 24%; left: 35%; width: 8%; height: 8%;
  background: radial-gradient(circle, #4a3a2a 0%, #1a1010 100%);
  border-radius: 50%;
  transform: rotate(20deg);
  animation: fs-hand 3s ease-in-out infinite alternate;
}
.scn-footnote-fish-smell .arm {
  position: absolute; bottom: 18%; left: 30%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #2a1e1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: fs-arm 3.5s ease-in-out infinite alternate;
}
.scn-footnote-fish-smell .candle {
  position: absolute; bottom: 25%; right: 20%; width: 4%; height: 16%;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 10px 4px rgba(200,160,80,0.3);
  animation: fs-candle 2s ease-in-out infinite alternate;
}
.scn-footnote-fish-smell .smell-wave {
  position: absolute; top: 30%; left: 45%; width: 10%; height: 10%;
  border: 2px solid rgba(100,80,60,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: fs-wave 6s ease-in-out infinite;
}
.scn-footnote-fish-smell .smell-wave.w1 { left: 40%; animation-delay: 0s; }
.scn-footnote-fish-smell .smell-wave.w2 { left: 50%; animation-delay: 2s; }
@keyframes fs-fish { 0%,100% { transform: translateX(-50%) rotate(-10deg) } 50% { transform: translateX(-50%) rotate(-5deg) } }
@keyframes fs-hand { 0% { transform: rotate(20deg) translateY(0) } 100% { transform: rotate(25deg) translateY(-4px) } }
@keyframes fs-arm { 0% { transform: rotate(0deg) } 100% { transform: rotate(-5deg) } }
@keyframes fs-candle { 0% { opacity: 0.8; transform: scaleY(1) } 100% { opacity: 1; transform: scaleY(1.05) } }
@keyframes fs-wave { 0% { transform: scale(0); opacity: 0.6 } 50% { transform: scale(1.5); opacity: 0.2 } 100% { transform: scale(2.5); opacity: 0 } }

.scn-footnote-phocaean-joke {
  background: linear-gradient(180deg, #1a1410 0%, #2a201a 40%, #1a1410 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-footnote-phocaean-joke .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1010 100%);
  animation: pj-wall 10s ease-in-out infinite alternate;
}
.scn-footnote-phocaean-joke .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a12 0%, #0a0505 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-footnote-phocaean-joke .lamp {
  position: absolute; bottom: 30%; left: 50%; width: 6%; height: 18%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(200,160,80,0.4);
  animation: pj-lamp 3s ease-in-out infinite alternate;
}
.scn-footnote-phocaean-joke .figure-a,
.scn-footnote-phocaean-joke .figure-b {
  position: absolute; bottom: 16%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #2a1e1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-footnote-phocaean-joke .figure-a {
  left: 25%;
  animation: pj-fig-a 5s ease-in-out infinite;
}
.scn-footnote-phocaean-joke .figure-b {
  right: 25%;
  animation: pj-fig-b 4s ease-in-out infinite;
}
.scn-footnote-phocaean-joke .shadow-a,
.scn-footnote-phocaean-joke .shadow-b {
  position: absolute; bottom: 14%; width: 20%; height: 6%;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-footnote-phocaean-joke .shadow-a { left: 22%; animation: pj-shad 5s ease-in-out infinite; }
.scn-footnote-phocaean-joke .shadow-b { right: 22%; animation: pj-shad 4s ease-in-out infinite; }
@keyframes pj-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes pj-lamp { 0% { opacity: 0.7; transform: translateX(-50%) scaleY(1) } 100% { opacity: 1; transform: translateX(-50%) scaleY(1.03) } }
@keyframes pj-fig-a { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-1deg) } }
@keyframes pj-fig-b { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(3deg) } }
@keyframes pj-shad { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.8) } }

.scn-alcinous-addresses-assembly { background: linear-gradient(180deg, #f4d9b0 0%, #d9b88a 30%, #b58c5e 70%, #7a603a 100%), radial-gradient(ellipse at 50% 0%, #ffe3b0 0%, transparent 60%); }
.scn-alcinous-addresses-assembly .dawn-sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #ffe3b0 0%, #f4c87a 40%, #d9a05a 100%); animation: aaa-sky 20s ease-in-out infinite alternate; }
.scn-alcinous-addresses-assembly .platform { position:absolute; bottom:30%; left:50%; width:120px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #c89a6a 0%, #8a6a3a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-alcinous-addresses-assembly .figure-king { position:absolute; bottom:40%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: aaa-king 6s ease-in-out infinite; }
.scn-alcinous-addresses-assembly .figure-councillor-a { position:absolute; bottom:30%; left:30%; width:30px; height:45px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.85); animation: aaa-councillor 9s ease-in-out infinite alternate; }
.scn-alcinous-addresses-assembly .figure-councillor-b { position:absolute; bottom:30%; left:55%; width:30px; height:45px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.9); animation: aaa-councillor 11s ease-in-out infinite alternate; }
.scn-alcinous-addresses-assembly .figure-councillor-c { position:absolute; bottom:30%; right:25%; width:30px; height:45px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.8); animation: aaa-councillor 13s ease-in-out infinite alternate; }
.scn-alcinous-addresses-assembly .light-rays { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(135deg, rgba(255,230,180,0.4) 0%, transparent 50%, rgba(255,200,120,0.2) 100%); animation: aaa-rays 15s ease-in-out infinite; filter: blur(3px); }
.scn-alcinous-addresses-assembly .pillar-left { position:absolute; top:10%; left:10%; width:16px; bottom:30%; background: linear-gradient(180deg, #b59a6a 0%, #7a5a3a 100%); border-radius: 4px; box-shadow: 4px 0 10px rgba(0,0,0,0.3); }
.scn-alcinous-addresses-assembly .pillar-right { position:absolute; top:10%; right:10%; width:16px; bottom:30%; background: linear-gradient(180deg, #b59a6a 0%, #7a5a3a 100%); border-radius: 4px; box-shadow: -4px 0 10px rgba(0,0,0,0.3); }
@keyframes aaa-sky { 0% { opacity:0.8; filter: brightness(1); } 50% { opacity:1; filter: brightness(1.1); } 100% { opacity:0.9; filter: brightness(1); } }
@keyframes aaa-king { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes aaa-councillor { 0% { transform: scale(0.9) translateY(0); } 50% { transform: scale(0.92) translateY(-1px); } 100% { transform: scale(0.9) translateY(0); } }
@keyframes aaa-rays { 0% { opacity:0.5; transform: rotate(-2deg); } 50% { opacity:0.8; transform: rotate(2deg); } 100% { opacity:0.5; transform: rotate(-2deg); } }

.scn-preparations-and-feast { background: linear-gradient(180deg, #e8c89a 0%, #c8a87a 30%, #9a7a5a 70%, #6a5a3a 100%), radial-gradient(ellipse at 50% 0%, #f4d9b0 0%, transparent 70%); }
.scn-preparations-and-feast .dawn-beach { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #dbb88a 0%, #b58c5e 50%, #8a6a4a 100%); animation: ppf-sky 25s ease-in-out infinite; }
.scn-preparations-and-feast .ship-hull { position:absolute; bottom:35%; left:30%; width:180px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 0 40% 40% / 0 0 80% 80%; transform: rotate(-5deg); animation: ppf-sway 8s ease-in-out infinite; }
.scn-preparations-and-feast .mast { position:absolute; bottom:35%; left:38%; width:6px; height:120px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); transform-origin: bottom center; animation: ppf-sway 8s ease-in-out infinite; }
.scn-preparations-and-feast .sail-furled { position:absolute; bottom:55%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 10% 10% 30% 30%; transform: rotate(10deg); animation: ppf-dangle 12s ease-in-out infinite; }
.scn-preparations-and-feast .feast-table { position:absolute; bottom:30%; right:20%; width:100px; height:20px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 4px; animation: ppf-table 6s ease-in-out infinite; }
.scn-preparations-and-feast .plate-a { position:absolute; bottom:33%; right:30%; width:20px; height:8px; background: radial-gradient(circle, #d4c4b0 0%, #a09070 70%); border-radius: 50%; animation: ppf-plate 14s ease-in-out infinite; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-preparations-and-feast .plate-b { position:absolute; bottom:33%; right:20%; width:18px; height:7px; background: radial-gradient(circle, #d4c4b0 0%, #a09070 70%); border-radius: 50%; animation: ppf-plate 16s ease-in-out infinite 2s; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-preparations-and-feast .figure-sailor-a { position:absolute; bottom:35%; left:20%; width:24px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.8); animation: ppf-move 10s ease-in-out infinite; }
.scn-preparations-and-feast .figure-sailor-b { position:absolute; bottom:35%; left:15%; width:24px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.85); animation: ppf-move 12s ease-in-out infinite 3s; }
@keyframes ppf-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ppf-sway { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes ppf-dangle { 0%,100% { transform: rotate(10deg); } 50% { transform: rotate(5deg); } }
@keyframes ppf-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes ppf-plate { 0%,100% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } }
@keyframes ppf-move { 0% { transform: scale(0.8) translateX(0); } 50% { transform: scale(0.82) translateX(10px); } 100% { transform: scale(0.8) translateX(0); } }

.scn-demodocus-brought-in { background: linear-gradient(180deg, #e8d4b0 0%, #c8b08a 30%, #a0886a 70%, #7a604a 100%), radial-gradient(ellipse at 50% 50%, #f0c8a0 0%, transparent 60%); }
.scn-demodocus-brought-in .interior-wall { position:absolute; inset:0; background: linear-gradient(180deg, #c8b08a 0%, #a0886a 50%, #7a604a 100%); animation: dbi-wall 30s ease-in-out infinite; }
.scn-demodocus-brought-in .window-light { position:absolute; top:20%; left:20%; width:40px; height:60px; background: radial-gradient(ellipse, #ffe8c0 0%, #f0c8a0 50%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: dbi-light 6s ease-in-out infinite alternate; }
.scn-demodocus-brought-in .bard-figure { position:absolute; bottom:30%; left:45%; width:30px; height:55px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: dbi-bard 8s ease-in-out infinite; }
.scn-demodocus-brought-in .servant-figure { position:absolute; bottom:30%; left:55%; width:28px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.9); animation: dbi-servant 10s ease-in-out infinite; }
.scn-demodocus-brought-in .throne-chair { position:absolute; bottom:25%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: dbi-chair 7s ease-in-out infinite; }
.scn-demodocus-brought-in .floor-tile { position:absolute; bottom:20%; left:10%; right:10%; height:8px; background: repeating-linear-gradient(90deg, #8a705a 0px, #8a705a 20px, #a0886a 20px, #a0886a 40px); opacity:0.6; }
.scn-demodocus-brought-in .ceiling-beam { position:absolute; top:8%; left:5%; right:5%; height:8px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; }
.scn-demodocus-brought-in .hearth-glow { position:absolute; bottom:20%; left:15%; width:30px; height:30px; background: radial-gradient(circle, #ffdea0 0%, #c88850 50%, transparent 100%); filter: blur(8px); animation: dbi-hearth 5s ease-in-out infinite alternate; }
@keyframes dbi-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes dbi-light { 0% { opacity:0.6; transform: scale(1); } 100% { opacity:1; transform: scale(1.2); } }
@keyframes dbi-bard { 0%,100% { transform: scaleX(-1) translateY(0) rotate(-1deg); } 50% { transform: scaleX(-1) translateY(-2px) rotate(1deg); } }
@keyframes dbi-servant { 0%,100% { transform: scale(0.9) translateX(0); } 50% { transform: scale(0.92) translateX(5px); } }
@keyframes dbi-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes dbi-hearth { 0% { opacity:0.7; transform: scale(1); } 100% { opacity:1; transform: scale(1.3); } }

.scn-demodocus-sings-quarrel { background: linear-gradient(180deg, #c87050 0%, #a05030 30%, #7a3020 70%, #4a1810 100%), radial-gradient(ellipse at 50% 60%, #e08050 0%, transparent 70%); }
.scn-demodocus-sings-quarrel .hall-backdrop { position:absolute; inset:0; background: linear-gradient(180deg, #b06040 0%, #8a4020 50%, #5a2010 100%); animation: dsq-backdrop 15s ease-in-out infinite; }
.scn-demodocus-sings-quarrel .bard-shadow { position:absolute; bottom:20%; left:10%; width:20px; height:40px; background: radial-gradient(ellipse, #1a0a05 0%, transparent 100%); filter: blur(4px); animation: dsq-shadow 6s ease-in-out infinite; }
.scn-demodocus-sings-quarrel .figure-achilles { position:absolute; bottom:25%; left:40%; width:30px; height:55px; background: linear-gradient(180deg, #4a2a1a 0%, #2a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: dsq-achilles 4s ease-in-out infinite; }
.scn-demodocus-sings-quarrel .figure-odysseus { position:absolute; bottom:25%; right:40%; width:30px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dsq-odysseus 4.5s ease-in-out infinite; }
.scn-demodocus-sings-quarrel .audience-left { position:absolute; bottom:22%; left:5%; width:20px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.7); animation: dsq-audience 8s ease-in-out infinite; }
.scn-demodocus-sings-quarrel .audience-right { position:absolute; bottom:22%; right:5%; width:20px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.7); animation: dsq-audience 9s ease-in-out infinite 1s; }
.scn-demodocus-sings-quarrel .spark-flare { position:absolute; top:30%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #ffa050 0%, #ff7020 40%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: dsq-spark 2s ease-in-out infinite; }
.scn-demodocus-sings-quarrel .shadow-stripe { position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 50%, rgba(0,0,0,0.4) 100%); animation: dsq-stripe 12s linear infinite; }
@keyframes dsq-backdrop { 0% { opacity:0.8; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes dsq-shadow { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.1); } }
@keyframes dsq-achilles { 0%,100% { transform: scaleX(-1) translateX(0) rotate(-2deg); } 50% { transform: scaleX(-1) translateX(-5px) rotate(2deg); } }
@keyframes dsq-odysseus { 0%,100% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(5px) rotate(-2deg); } }
@keyframes dsq-audience { 0%,100% { transform: scale(0.7) translateY(0); } 50% { transform: scale(0.72) translateY(-1px); } }
@keyframes dsq-spark { 0% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0; transform: scale(0.8); } }
@keyframes dsq-stripe { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }

/* acknowledgments – dim interior, calm */
.scn-acknowledgments { background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1e1206 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 60%); }
.scn-acknowledgments .lamp { position:absolute; top:30%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px 20px rgba(192,128,64,0.6); animation: ac-lamp 4s ease-in-out infinite alternate; }
.scn-acknowledgments .books { position:absolute; bottom:20%; left:20%; width:120px; height:90px; background: linear-gradient(90deg, #5a3a1a 0%, #7a4a2a 20%, #4a2a0e 40%, #6a3a20 60%, #3a1a06 80%, #5a2a10 100%); border-radius: 4px; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.4); animation: ac-books 9s ease-in-out infinite; }
.scn-acknowledgments .desk { position:absolute; bottom:8%; left:15%; width:70%; height:18%; background: linear-gradient(180deg, #4a3018 0%, #2a180a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-acknowledgments .chair { position:absolute; bottom:14%; left:40%; width:60px; height:80px; background: linear-gradient(180deg, #3a2210 0%, #1a0e04 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; transform-origin: bottom center; animation: ac-chair 12s ease-in-out infinite; }
.scn-acknowledgments .figure { position:absolute; bottom:18%; left:45%; width:24px; height:60px; background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-figure 5s ease-in-out infinite alternate; }
.scn-acknowledgments .window { position:absolute; top:10%; right:10%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 40%, #c0a070 0%, #4a3a2a 70%); border: 4px solid #2a1a0e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(192,160,112,0.3); animation: ac-window 6s ease-in-out infinite alternate; }
.scn-acknowledgments .shelf { position:absolute; top:15%; left:5%; width:30%; height:120px; background: linear-gradient(180deg, #4a3018 0%, #2a180a 100%); border-radius: 2px; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3); }
@keyframes ac-lamp { 0%,100% { box-shadow: 0 0 30px 15px rgba(192,128,64,0.5); opacity: 0.9; } 50% { box-shadow: 0 0 50px 30px rgba(192,128,64,0.8); opacity: 1; } }
@keyframes ac-books { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ac-chair { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes ac-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ac-window { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }

/* invocation-to-muse – overcast, calm */
.scn-invocation-to-muse { background: linear-gradient(180deg, #71849a 0%, #8a9bb0 30%, #b2c2d4 60%, #d6e0ed 100%), radial-gradient(ellipse at 50% 0%, #9aabbf 0%, transparent 60%); }
.scn-invocation-to-muse .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #a4b6ca 0%, #c8d6e6 100%); animation: mu-sky 18s ease-in-out infinite alternate; }
.scn-invocation-to-muse .sea { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a7a8a 0%, #3a5a6a 100%); border-radius: 0 0 40% 40% / 0 0 30% 30%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: mu-sea 12s ease-in-out infinite; }
.scn-invocation-to-muse .ship { position:absolute; bottom:25%; left:30%; width:120px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 40% 40% / 40% 40% 30% 30%; transform-origin: center bottom; animation: mu-ship 6s ease-in-out infinite; }
.scn-invocation-to-muse .sail { position:absolute; bottom:38%; left:38%; width:60px; height:80px; background: linear-gradient(180deg, #b8a88a 0%, #8a7a62 100%); border-radius: 0 0 30% 30% / 0 0 40% 40%; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: mu-sail 8s ease-in-out infinite; }
.scn-invocation-to-muse .figure { position:absolute; bottom:22%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mu-figure 4s ease-in-out infinite alternate; }
.scn-invocation-to-muse .clouds { position:absolute; top:10%; border-radius: 50%; background: linear-gradient(180deg, rgba(200,214,230,0.8) 0%, rgba(200,214,230,0.1) 100%); filter: blur(6px); }
.scn-invocation-to-muse .cloud-a { left:10%; width:120px; height:24px; animation: mu-drift-a 35s linear infinite; }
.scn-invocation-to-muse .cloud-b { right:5%; width:80px; height:16px; animation: mu-drift-b 50s linear infinite reverse; }
@keyframes mu-sky { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes mu-sea { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes mu-ship { 0% { transform: rotate(-1deg); } 25% { transform: rotate(2deg) translateY(1px); } 50% { transform: rotate(-1.5deg); } 75% { transform: rotate(2.5deg) translateY(-1px); } 100% { transform: rotate(-1deg); } }
@keyframes mu-sail { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(0.95); } 100% { transform: rotate(-1deg) scaleY(1); } }
@keyframes mu-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes mu-drift-a { 0% { transform: translateX(-60px); } 100% { transform: translateX(120vw); } }
@keyframes mu-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* odysseus-still-detained – tense, dim interior */
.scn-odysseus-still-detained { background: linear-gradient(180deg, #0e0a14 0%, #1a142a 30%, #241a36 60%, #0e0a14 100%), radial-gradient(ellipse at 50% 70%, #3a2a4e 0%, transparent 60%); }
.scn-odysseus-still-detained .wall { position:absolute; inset:0; background: linear-gradient(90deg, #1a142a 0%, #2a1e3a 30%, #1a1222 60%, #0e0818 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.8); animation: od-wall 9s ease-in-out infinite alternate; }
.scn-odysseus-still-detained .chain { position:absolute; top:30%; left:45%; width:80px; height:8px; background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 50%, #6a5a4a 100%); border-radius: 4px; box-shadow: 0 0 4px rgba(100,80,60,0.5); animation: od-chain 3s ease-in-out infinite; }
.scn-odysseus-still-detained .figure { position:absolute; bottom:20%; left:40%; width:30px; height:80px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: od-figure 4s ease-in-out infinite alternate; }
.scn-odysseus-still-detained .shadow { position:absolute; bottom:10%; left:35%; width:80px; height:120px; background: radial-gradient(ellipse at 50% 0%, #000000 0%, transparent 70%); opacity: 0.6; animation: od-shadow 5s ease-in-out infinite alternate; }
.scn-odysseus-still-detained .flicker { position:absolute; top:5%; left:20%; width:30px; height:40px; background: radial-gradient(circle, #c08040 0%, #8a5a1a 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(192,128,64,0.4); animation: od-flicker 2s ease-in-out infinite alternate; }
@keyframes od-wall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes od-chain { 0% { transform: rotate(0deg); } 25% { transform: rotate(-5deg) translateY(2px); } 50% { transform: rotate(5deg); } 75% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes od-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-6px) rotate(3deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes od-shadow { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.05); opacity: 0.7; } 100% { transform: scale(0.95); opacity: 0.5; } }
@keyframes od-flicker { 0% { box-shadow: 0 0 40px 15px rgba(192,128,64,0.3); opacity: 0.6; } 50% { box-shadow: 0 0 80px 40px rgba(192,128,64,0.6); opacity: 1; } 100% { box-shadow: 0 0 50px 20px rgba(192,128,64,0.4); opacity: 0.7; } }

/* neptune-at-ethiopia – overcast, calm */
.scn-neptune-at-ethiopia { background: linear-gradient(180deg, #6b7a6b 0%, #8a9a8a 30%, #a4b4a4 60%, #c4d4c4 100%), radial-gradient(ellipse at 50% 80%, #9aac9a 0%, transparent 60%); }
.scn-neptune-at-ethiopia .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0c0b0 0%, #d0e0d0 100%); animation: ne-sky 18s ease-in-out infinite alternate; }
.scn-neptune-at-ethiopia .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); }
.scn-neptune-at-ethiopia .figure-reclining { position:absolute; bottom:30%; left:30%; width:80px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ne-figure 6s ease-in-out infinite; }
.scn-neptune-at-ethiopia .ox-herd { position:absolute; bottom:20%; left:55%; width:100px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%; animation: ne-ox 8s ease-in-out infinite alternate; }
.scn-neptune-at-ethiopia .altar { position:absolute; bottom:25%; right:20%; width:40px; height:30px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-neptune-at-ethiopia .cloud-a { position:absolute; top:12%; left:5%; width:100px; height:20px; background: linear-gradient(180deg, rgba(200,210,200,0.7) 0%, rgba(200,210,200,0.1) 100%); border-radius: 50%; filter: blur(5px); animation: ne-drift-a 40s linear infinite; }
.scn-neptune-at-ethiopia .cloud-b { position:absolute; top:18%; right:10%; width:70px; height:14px; background: linear-gradient(180deg, rgba(180,190,180,0.6) 0%, rgba(180,190,180,0.05) 100%); border-radius: 50%; filter: blur(4px); animation: ne-drift-b 55s linear infinite reverse; }
@keyframes ne-sky { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes ne-figure { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(1deg) translateY(2px); } 100% { transform: rotate(0deg); } }
@keyframes ne-ox { 0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(0); } }
@keyframes ne-drift-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes ne-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-neptune-complains {
  background: linear-gradient(180deg, #87CEEB 0%, #f0d9b5 30%, #8ab4a4 60%, #3a6b5c 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-neptune-complains .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b8d4e3 0%, #87CEEB 100%); animation: nc-sky 12s ease-in-out infinite alternate; }
.scn-neptune-complains .sea { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(0deg, #2a5a4a 0%, #4a8a7a 40%, #7ab8a8 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: nc-sea 8s ease-in-out infinite; }
.scn-neptune-complains .cliff { position:absolute; bottom:40%; left:10%; width:80px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.4); }
.scn-neptune-complains .figure-neptune { position:absolute; bottom:50%; left:25%; width:24px; height:48px; background: linear-gradient(180deg, #202030 0%, #101020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nc-figure 6s ease-in-out infinite, nc-mood 4s ease-in-out infinite alternate; }
.scn-neptune-complains .wave-1 { position:absolute; bottom:25%; left:0; width:100%; height:12px; background: radial-gradient(ellipse at 20% 50%, #4a8a7a 0%, transparent 70%); filter: blur(3px); animation: nc-wave1 6s ease-in-out infinite; }
.scn-neptune-complains .wave-2 { position:absolute; bottom:20%; left:0; width:100%; height:10px; background: radial-gradient(ellipse at 80% 50%, #5a9a8a 0%, transparent 70%); filter: blur(3px); animation: nc-wave2 6s ease-in-out infinite reverse; }
.scn-neptune-complains .cloud-a { position:absolute; top:10%; left:20%; width:70px; height:15px; background: rgba(255,255,255,.3); border-radius:50%; filter: blur(8px); animation: nc-drift 30s linear infinite; }
.scn-neptune-complains .cloud-b { position:absolute; top:18%; right:15%; width:50px; height:12px; background: rgba(255,255,255,.2); border-radius:50%; filter: blur(6px); animation: nc-drift 40s linear infinite reverse; }
@keyframes nc-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes nc-sea { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes nc-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) rotate(4deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes nc-mood { 0% { filter: brightness(0.6) } 50% { filter: brightness(0.9) } 100% { filter: brightness(0.7) } }
@keyframes nc-wave1 { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-10px) scaleY(1.2) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes nc-wave2 { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(10px) scaleY(1.3) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes nc-drift { 0% { transform: translateX(${'-'}30px) } 100% { transform: translateX(120vw) } }

.scn-jove-allows-revenge {
  background: linear-gradient(180deg, #c8d8e8 0%, #ffffff 40%, #e0d0f0 70%, #b0c0d0 100%),
              radial-gradient(ellipse at 70% 20%, #ffefd0 0%, transparent 60%);
}
.scn-jove-allows-revenge .bg-heaven { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, transparent 30%, rgba(200,180,255,.1) 100%); }
.scn-jove-allows-revenge .throne { position:absolute; bottom:20%; left:30%; width:60px; height:40px; background: linear-gradient(180deg, #b08050 0%, #805030 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: ja-throne 10s ease-in-out infinite; }
.scn-jove-allows-revenge .figure-jove { position:absolute; bottom:30%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ja-jove 8s ease-in-out infinite; }
.scn-jove-allows-revenge .figure-neptune { position:absolute; bottom:25%; left:60%; width:22px; height:48px; background: linear-gradient(180deg, #304040 0%, #102030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ja-neptune 10s ease-in-out infinite; }
.scn-jove-allows-revenge .sceptre { position:absolute; bottom:45%; left:32%; width:4px; height:30px; background: #d0c040; border-radius: 2px; box-shadow: 0 0 12px rgba(255,215,0,.5); animation: ja-sceptre 6s ease-in-out infinite alternate; }
.scn-jove-allows-revenge .glow { position:absolute; bottom:40%; left:33%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,235,180,.4) 0%, transparent 70%); filter: blur(8px); animation: ja-glow 4s ease-in-out infinite alternate; }
.scn-jove-allows-revenge .cloud-a { position:absolute; top:8%; left:10%; width:60px; height:12px; background: rgba(255,255,255,.3); border-radius:50%; filter: blur(5px); animation: ja-drift 45s linear infinite; }
.scn-jove-allows-revenge .cloud-b { position:absolute; top:14%; right:20%; width:50px; height:10px; background: rgba(255,255,255,.2); border-radius:50%; filter: blur(4px); animation: ja-drift 35s linear infinite reverse; }
@keyframes ja-throne { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes ja-jove { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes ja-neptune { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(5px) rotate(3deg) } 66% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ja-sceptre { 0% { transform: rotate(-5deg) } 100% { transform: rotate(5deg) } }
@keyframes ja-glow { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes ja-drift { 0% { transform: translateX(0) } 100% { transform: translateX(100vw) } }

.scn-jove-suggests-transformation {
  background: linear-gradient(180deg, #a8c0d0 0%, #d8e8f0 40%, #9ab0a0 70%, #3a5a4a 100%),
              radial-gradient(ellipse at 40% 30%, #ffe8c0 0%, transparent 50%);
}
.scn-jove-suggests-transformation .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c0d8e8 0%, #a8c0d0 100%); animation: js-sky 15s ease-in-out infinite alternate; }
.scn-jove-suggests-transformation .sea { position:absolute; bottom:25%; left:0; right:0; height:20%; background: linear-gradient(0deg, #2a5a4a 0%, #4a8a7a 50%, #6a9a8a 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.3); animation: js-sea 12s ease-in-out infinite; }
.scn-jove-suggests-transformation .ship { position:absolute; bottom:30%; left:50%; width:70px; height:30px; background: linear-gradient(180deg, #604030 0%, #403020 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; transform: translateX(-50%); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: js-ship 8s ease-in-out infinite; }
.scn-jove-suggests-transformation .sail { position:absolute; bottom:42%; left:50%; width:30px; height:40px; background: linear-gradient(180deg, #d0c8b0 0%, #b0a890 100%); border-radius: 0 0 50% 50% / 0 0 60% 60%; transform: translateX(-50%); box-shadow: 0 0 4px rgba(0,0,0,.2); animation: js-sail 6s ease-in-out infinite alternate; }
.scn-jove-suggests-transformation .rock { position:absolute; bottom:20%; left:25%; width:50px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: 0 6px 10px rgba(0,0,0,.5); animation: js-rock 20s ease-in-out infinite; }
.scn-jove-suggests-transformation .figure-neptune { position:absolute; bottom:35%; left:15%; width:22px; height:50px; background: linear-gradient(180deg, #303840 0%, #182028 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: js-figure 7s ease-in-out infinite; }
.scn-jove-suggests-transformation .wave-1 { position:absolute; bottom:18%; left:0; width:100%; height:10px; background: radial-gradient(ellipse at 30% 50%, #5a8a7a 0%, transparent 60%); filter: blur(3px); animation: js-wave1 5s ease-in-out infinite; }
.scn-jove-suggests-transformation .wave-2 { position:absolute; bottom:14%; left:0; width:100%; height:8px; background: radial-gradient(ellipse at 70% 50%, #6a9a8a 0%, transparent 60%); filter: blur(3px); animation: js-wave2 7s ease-in-out infinite reverse; }
@keyframes js-sky { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes js-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes js-ship { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-48%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes js-sail { 0% { transform: translateX(-50%) scaleY(1) } 100% { transform: translateX(-50%) scaleY(0.9) } }
@keyframes js-rock { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes js-figure { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) translateX(4px) } 100% { transform: rotate(0) } }
@keyframes js-wave1 { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-8px) scaleY(1.3) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes js-wave2 { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(8px) scaleY(1.2) } 100% { transform: translateX(0) scaleY(1) } }

.scn-phaeacians-react {
  background: linear-gradient(180deg, #c0d0d8 0%, #d8e0e8 30%, #a0b8a0 60%, #5a7a6a 100%),
              radial-gradient(ellipse at 80% 40%, #fff0d0 0%, transparent 50%);
}
.scn-phaeacians-react .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0c8d8 0%, #d0dce8 100%); animation: pr-sky 20s ease-in-out infinite alternate; }
.scn-phaeacians-react .sea { position:absolute; bottom:30%; left:0; right:0; height:18%; background: linear-gradient(0deg, #2a5a4a 0%, #4a8a7a 50%, #6a9a8a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,.2); animation: pr-sea 15s ease-in-out infinite; }
.scn-phaeacians-react .shore { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #d0b890 0%, #b09870 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.2); }
.scn-phaeacians-react .crowd { position:absolute; bottom:18%; left:50%; width:120px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, rgba(60,50,40,.3) 0%, transparent 70%); filter: blur(2px); animation: pr-crowd 12s ease-in-out infinite; }
.scn-phaeacians-react .figure-1 { position:absolute; bottom:20%; left:40%; width:14px; height:28px; background: linear-gradient(180deg, #705040 0%, #503020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pr-fig1 5s ease-in-out infinite; }
.scn-phaeacians-react .figure-2 { position:absolute; bottom:21%; left:48%; width:14px; height:26px; background: linear-gradient(180deg, #806050 0%, #604030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pr-fig2 6s ease-in-out infinite 0.5s; }
.scn-phaeacians-react .figure-3 { position:absolute; bottom:19%; left:56%; width:12px; height:24px; background: linear-gradient(180deg, #907060 0%, #705040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pr-fig3 7s ease-in-out infinite 1s; }
.scn-phaeacians-react .rock-ship { position:absolute; bottom:25%; left:35%; width:50px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: pr-rock 20s ease-in-out infinite; }
@keyframes pr-sky { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes pr-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pr-crowd { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes pr-fig1 { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) translateX(2px) } 100% { transform: rotate(0) } }
@keyframes pr-fig2 { 0% { transform: rotate(0) } 50% { transform: rotate(-2deg) translateX(-2px) } 100% { transform: rotate(0) } }
@keyframes pr-fig3 { 0% { transform: rotate(0) } 50% { transform: rotate(4deg) translateX(1px) } 100% { transform: rotate(0) } }
@keyframes pr-rock { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(1) } }

.scn-other-cyclopes-ask {
  background: linear-gradient(180deg, #0b0e1a 0%, #1a1f30 40%, #2a1a2a 80%), radial-gradient(ellipse at 50% 0%, #2a1a2a 0%, transparent 60%);
  position: absolute; inset: 0;
}
.scn-other-cyclopes-ask .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #0c0f1c 0%, #1a1f30 100%); animation: oc-sky 20s ease-in-out infinite alternate; }
.scn-other-cyclopes-ask .moon { position: absolute; top: 8%; left: 70%; width: 40px; height: 40px; background: radial-gradient(circle, #c8d0e0 0%, #7a8aa0 60%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,208,224,.2); animation: oc-moon 30s linear infinite; }
.scn-other-cyclopes-ask .cave-mouth { position: absolute; bottom: 30%; left: 50%; width: 160px; height: 200px; transform: translateX(-50%); background: radial-gradient(ellipse 70% 100% at 50% 100%, #1a121a 0%, #0a060a 100%); border-radius: 40% 40% 10% 10%; box-shadow: inset 0 0 40px rgba(0,0,0,.8); animation: oc-cave 15s ease-in-out infinite; }
.scn-other-cyclopes-ask .cave-interior { position: absolute; bottom: 30%; left: 50%; width: 120px; height: 150px; transform: translateX(-50%); background: radial-gradient(circle at 50% 60%, #2a1a2a 0%, #0a0a0a 80%); border-radius: 50%; box-shadow: inset 0 0 60px #000; animation: oc-cave 15s ease-in-out infinite reverse; }
.scn-other-cyclopes-ask .cyclops-1 { position: absolute; bottom: 35%; left: 20%; width: 50px; height: 120px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 40% 40%/40% 40% 60% 60%; transform: perspective(200px) rotateY(15deg); animation: oc-fig 8s ease-in-out infinite; }
.scn-other-cyclopes-ask .cyclops-2 { position: absolute; bottom: 38%; left: 72%; width: 45px; height: 110px; background: linear-gradient(180deg, #2a2a3a 0%, #181828 100%); border-radius: 20% 20% 40% 40%/40% 40% 60% 60%; transform: perspective(200px) rotateY(-15deg); animation: oc-fig2 9s ease-in-out infinite; }
.scn-other-cyclopes-ask .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e16 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; animation: oc-ground 12s ease-in-out infinite alternate; }
.scn-other-cyclopes-ask .shadow { position: absolute; bottom: 30%; left: 20%; width: 120px; height: 40px; background: radial-gradient(ellipse at 50% 0%, #000 0%, transparent 60%); transform: translateX(-50%); animation: oc-shadow 10s ease-in-out infinite; }
@keyframes oc-sky { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .5; } }
@keyframes oc-moon { 0% { transform: translate(0,0); } 50% { transform: translate(5px, -3px); } 100% { transform: translate(-2px, 0); } }
@keyframes oc-cave { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(.98); } }
@keyframes oc-fig { 0% { transform: perspective(200px) rotateY(15deg) translateY(0); } 50% { transform: perspective(200px) rotateY(18deg) translateY(-2px); } 100% { transform: perspective(200px) rotateY(12deg) translateY(1px); } }
@keyframes oc-fig2 { 0% { transform: perspective(200px) rotateY(-15deg) translateY(0); } 50% { transform: perspective(200px) rotateY(-12deg) translateY(-1px); } 100% { transform: perspective(200px) rotateY(-18deg) translateY(2px); } }
@keyframes oc-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes oc-shadow { 0% { opacity: .3; transform: translateX(-50%) scaleX(1); } 50% { opacity: .5; transform: translateX(-50%) scaleX(1.1); } 100% { opacity: .2; transform: translateX(-50%) scaleX(.9); } }

.scn-escape-from-cave {
  background: linear-gradient(180deg, #0a0a14 0%, #14101c 40%, #1a121e 100%), radial-gradient(ellipse at 30% 60%, #1a121e 0%, transparent 70%);
  position: absolute; inset: 0;
}
.scn-escape-from-cave .cave-wall { position: absolute; top: 0; bottom: 0; width: 30%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 0 30% 30% 0; }
.scn-escape-from-cave .cave-wall.left { left: 0; border-radius: 0 30% 30% 0; }
.scn-escape-from-cave .cave-wall.right { right: 0; border-radius: 30% 0 0 30%; animation: ec-wall 15s ease-in-out infinite; }
.scn-escape-from-cave .cave-back { position: absolute; top: 0; left: 15%; right: 15%; bottom: 15%; background: radial-gradient(ellipse at 50% 70%, #1a1420 0%, #0a0a12 100%); border-radius: 0 0 20% 20%; }
.scn-escape-from-cave .cyclops-body { position: absolute; bottom: 10%; left: 50%; width: 100px; height: 150px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 40% 40%/40% 40% 50% 50%; box-shadow: inset 0 -20px 40px #000; animation: ec-body 12s ease-in-out infinite; }
.scn-escape-from-cave .cyclops-hand { position: absolute; bottom: 25%; width: 80px; height: 20px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 20% 20%; }
.scn-escape-from-cave .cyclops-hand.left { left: 10%; transform: rotate(20deg); animation: ec-hand-l 8s ease-in-out infinite; }
.scn-escape-from-cave .cyclops-hand.right { right: 10%; transform: rotate(-20deg); animation: ec-hand-r 9s ease-in-out infinite; }
.scn-escape-from-cave .stone { position: absolute; bottom: 15%; left: 20%; width: 50px; height: 60px; background: linear-gradient(135deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 20% 20% 30% 30%; transform: rotate(-10deg); animation: ec-stone 6s ease-in-out infinite; }
.scn-escape-from-cave .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, #0e0e1a 0%, #05050a 100%); }
@keyframes ec-wall { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-1px); } }
@keyframes ec-body { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes ec-hand-l { 0% { transform: rotate(20deg) translate(0,0); } 33% { transform: rotate(25deg) translate(2px,-2px); } 66% { transform: rotate(15deg) translate(-1px,1px); } 100% { transform: rotate(20deg) translate(0,0); } }
@keyframes ec-hand-r { 0% { transform: rotate(-20deg) translate(0,0); } 33% { transform: rotate(-25deg) translate(-2px,-2px); } 66% { transform: rotate(-15deg) translate(1px,1px); } 100% { transform: rotate(-20deg) translate(0,0); } }
@keyframes ec-stone { 0% { transform: rotate(-10deg) translate(0,0); } 50% { transform: rotate(-15deg) translate(3px,-3px); } 100% { transform: rotate(-5deg) translate(-2px,0); } }

.scn-escape-from-cave-morning {
  background: linear-gradient(180deg, #f0d4b0 0%, #e8c080 30%, #c09060 60%), radial-gradient(ellipse at 50% 100%, #c09060 0%, transparent 70%);
  position: absolute; inset: 0;
}
.scn-escape-from-cave-morning .morning-sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(135deg, #ffe8c0 0%, #ffcc88 50%, #d0a070 100%); animation: em-sky 25s ease-in-out infinite alternate; }
.scn-escape-from-cave-morning .sun { position: absolute; top: 10%; left: 60%; width: 60px; height: 60px; background: radial-gradient(circle, #fff0c0 0%, #f0a040 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 80px 20px rgba(240,160,64,.5); animation: em-sun 10s ease-in-out infinite; }
.scn-escape-from-cave-morning .cave-entrance { position: absolute; bottom: 20%; left: 40%; width: 120px; height: 160px; background: radial-gradient(ellipse 60% 100% at 50% 0%, #1a1a2a 0%, #0a0a12 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 30px 0 40px #000, inset -30px 0 40px #000; }
.scn-escape-from-cave-morning .cave-dark { position: absolute; bottom: 20%; left: 40%; width: 80px; height: 120px; background: #0a0a12; border-radius: 30% 30% 0 0; }
.scn-escape-from-cave-morning .ram { position: absolute; bottom: 20%; left: 30%; width: 50px; height: 40px; background: #b08050; border-radius: 50% 50% 40% 40%/60% 60% 40% 40%; transform: translateX(-20px); animation: em-ram 6s ease-in-out infinite; }
.scn-escape-from-cave-morning .ram::after { content: ''; position: absolute; top: -10px; left: 20px; width: 20px; height: 10px; background: #8a6840; border-radius: 50% 50% 0 0; transform: rotate(20deg); }
.scn-escape-from-cave-morning .ewe { position: absolute; bottom: 20%; left: 55%; width: 45px; height: 35px; background: #c09060; border-radius: 50% 50% 40% 40%/60% 60% 40% 40%; transform: translateX(10px); animation: em-ewe 7s ease-in-out infinite; }
.scn-escape-from-cave-morning .sheep-shadow { position: absolute; bottom: 17%; left: 25%; width: 100px; height: 20px; background: radial-gradient(ellipse at 50% 0%, #4a3020 0%, transparent 80%); }
.scn-escape-from-cave-morning .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #b08050 0%, #8a6030 100%); border-radius: 40% 60% 0 0; animation: em-ground 20s ease-in-out infinite alternate; }
@keyframes em-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes em-sun { 0% { transform: translate(0,0); } 50% { transform: translate(5px,-5px); } 100% { transform: translate(-3px,0); } }
@keyframes em-ram { 0% { transform: translateX(-20px) translateY(0); } 50% { transform: translateX(-15px) translateY(-3px); } 100% { transform: translateX(-20px) translateY(0); } }
@keyframes em-ewe { 0% { transform: translateX(10px) translateY(0); } 50% { transform: translateX(15px) translateY(-2px); } 100% { transform: translateX(10px) translateY(0); } }
@keyframes em-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

.scn-polyphemus-talks-to-ram {
  background: linear-gradient(180deg, #f8e0b0 0%, #e8c080 50%, #b08040 100%), radial-gradient(ellipse at 50% 100%, #b08040 0%, transparent 60%);
  position: absolute; inset: 0;
}
.scn-polyphemus-talks-to-ram .bright-sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(135deg, #fff0c0 0%, #e8c080 100%); animation: pr-sky 30s ease-in-out infinite alternate; }
.scn-polyphemus-talks-to-ram .cave-arch { position: absolute; bottom: 15%; left: 50%; width: 180px; height: 200px; transform: translateX(-50%); background: radial-gradient(ellipse 60% 100% at 50% 0%, #1a1a2a 0%, #0a0a12 100%); border-radius: 40% 40% 10% 10%; box-shadow: inset 0 0 60px #000; }
.scn-polyphemus-talks-to-ram .cyclops-silhouette { position: absolute; bottom: 5%; left: 45%; width: 120px; height: 200px; transform: translateX(-50%); background: #0a0a12; border-radius: 30% 30% 40% 40%/40% 40% 50% 50%; animation: pr-body 15s ease-in-out infinite; }
.scn-polyphemus-talks-to-ram .cyclops-eye { position: absolute; top: 30%; left: 50%; width: 20px; height: 12px; background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 80%); border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 20px 4px rgba(192,128,64,.4); animation: pr-eye 5s ease-in-out infinite; }
.scn-polyphemus-talks-to-ram .ram-body { position: absolute; bottom: 15%; left: 30%; width: 70px; height: 50px; background: #b08050; border-radius: 50% 60% 30% 40%/60% 50% 40% 40%; transform: rotate(-5deg); animation: pr-ram 8s ease-in-out infinite; }
.scn-polyphemus-talks-to-ram .ram-head { position: absolute; bottom: 20%; left: 25%; width: 35px; height: 25px; background: #a07040; border-radius: 50% 50% 30% 30%; transform: rotate(-15deg); animation: pr-head 8s ease-in-out infinite; }
.scn-polyphemus-talks-to-ram .ram-head::after { content: ''; position: absolute; top: -8px; left: 10px; width: 15px; height: 12px; background: #7a5020; border-radius: 50% 50% 0 0; transform: rotate(30deg); }
.scn-polyphemus-talks-to-ram .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #9a7040 0%, #704a20 100%); }
.scn-polyphemus-talks-to-ram .dust { position: absolute; bottom: 18%; left: 5%; width: 150px; height: 20px; background: radial-gradient(ellipse at 50% 0%, #b09070 0%, transparent 80%); animation: pr-dust 12s ease-in-out infinite; }
@keyframes pr-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes pr-body { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg); } 50% { transform: translateX(-50%) scaleY(1.02) rotate(1deg); } 100% { transform: translateX(-50%) scaleY(.98) rotate(-1deg); } }
@keyframes pr-eye { 0% { box-shadow: 0 0 20px 4px rgba(192,128,64,.4); } 50% { box-shadow: 0 0 30px 8px rgba(255,208,128,.6); } 100% { box-shadow: 0 0 15px 2px rgba(192,128,64,.3); } }
@keyframes pr-ram { 0% { transform: rotate(-5deg) translate(0,0); } 50% { transform: rotate(-8deg) translate(3px,-2px); } 100% { transform: rotate(-2deg) translate(0,1px); } }
@keyframes pr-head { 0% { transform: rotate(-15deg) translate(0,0); } 50% { transform: rotate(-10deg) translate(2px,-1px); } 100% { transform: rotate(-20deg) translate(-1px,0); } }
@keyframes pr-dust { 0% { transform: translate(0,0); } 50% { transform: translate(-10px,5px); } 100% { transform: translate(5px,-3px); } }

/* calypso-detains-odysseus - tense & dim-interior */
.scn-calypso-detains-odysseus { background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 40%, #1a0e0e 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%); }
.scn-calypso-detains-odysseus .cave-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a1a 0%, #1a0e0e 50%, #0e0606 100%), radial-gradient(circle at 30% 40%, #3a2a1a 0%, transparent 60%); animation: cao-shift 20s ease-in-out infinite alternate; }
.scn-calypso-detains-odysseus .fire { position:absolute; bottom:30%; left:20%; width:40px; height:60px; background: radial-gradient(circle at 50% 100%, #f0a050 0%, #c06020 40%, transparent 70%); border-radius:50% 50% 20% 20%; box-shadow: 0 -10px 60px 30px #c06020, 0 0 120px 60px rgba(192,96,32,0.3); animation: cao-fire 3s ease-in-out infinite; }
.scn-calypso-detains-odysseus .calypso-fig { position:absolute; bottom:28%; left:35%; width:22px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cao-fig-left 6s ease-in-out infinite; }
.scn-calypso-detains-odysseus .odysseus-fig { position:absolute; bottom:25%; left:55%; width:20px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin: bottom center; animation: cao-fig-right 7s ease-in-out infinite; }
.scn-calypso-detains-odysseus .rock-pool { position:absolute; bottom:18%; left:10%; right:10%; height:10%; background: linear-gradient(0deg, #3a2a2a 0%, #2a1a1a 100%); border-radius:0 0 40% 40%; box-shadow: inset 0 5px 15px rgba(0,0,0,0.6); animation: cao-pool 12s ease-in-out infinite alternate; }
.scn-calypso-detains-odysseus .glow-embers { position:absolute; bottom:27%; left:18%; width:60px; height:60px; background: radial-gradient(circle, rgba(240,160,80,0.15) 0%, transparent 100%); animation: cao-ember 4s ease-in-out infinite alternate; }
@keyframes cao-shift { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cao-fire { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-2px); } 100% { transform: scaleY(0.95) translateY(1px); } }
@keyframes cao-fig-left { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cao-fig-right { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes cao-pool { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1.02); } }
@keyframes cao-ember { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(0.9); } }

/* poseidon-ethiopian-feast - calm & overcast */
.scn-poseidon-ethiopian-feast { background: linear-gradient(180deg, #c0c8d0 0%, #a0a8b0 40%, #808890 100%), radial-gradient(ellipse at 50% 100%, #707880 0%, transparent 70%); }
.scn-poseidon-ethiopian-feast .overcast-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b0b8c0 0%, #9098a0 100%); animation: pef-sky 30s ease-in-out infinite alternate; }
.scn-poseidon-ethiopian-feast .horizon { position:absolute; bottom:30%; left:0; right:0; height:2px; background: #606870; box-shadow: 0 1px 4px rgba(0,0,0,0.2); }
.scn-poseidon-ethiopian-feast .feast-table { position:absolute; bottom:18%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:10% 10% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: pef-table 15s ease-in-out infinite alternate; }
.scn-poseidon-ethiopian-feast .poseidon-fig { position:absolute; bottom:25%; left:35%; width:28px; height:45px; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius:50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin: bottom center; animation: pef-poseidon 8s ease-in-out infinite; }
.scn-poseidon-ethiopian-feast .ethiopian-fig { position:absolute; bottom:27%; left:55%; width:24px; 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: pef-ethio 10s ease-in-out infinite; }
.scn-poseidon-ethiopian-feast .cup { position:absolute; bottom:22%; left:48%; width:10px; height:12px; background: linear-gradient(180deg, #c0a070 0%, #907050 100%); border-radius:30% 30% 10% 10%; box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3); animation: pef-cup 6s ease-in-out infinite ; }
.scn-poseidon-ethiopian-feast .cloud-slow { position:absolute; top:12%; left:10%; width:120px; height:24px; background: linear-gradient(180deg, rgba(200,208,216,0.7) 0%, rgba(160,168,176,0.3) 100%); border-radius:50%; filter: blur(8px); animation: pef-cloud 50s linear infinite; }
@keyframes pef-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pef-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pef-poseidon { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(1deg); } 66% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pef-ethio { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(1px) rotate(-1deg); } }
@keyframes pef-cup { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes pef-cloud { 0% { transform: translateX(-130px); } 100% { transform: translateX(calc(100vw + 130px)); } }

/* zeus-speaks-of-aegisthus - tense & bright-interior */
.scn-zeus-speaks-of-aegisthus { background: linear-gradient(180deg, #f5f0e0 0%, #d0c8b0 40%, #b0a890 100%), radial-gradient(circle at 50% 40%, #f0e8d0 0%, transparent 60%); }
.scn-zeus-speaks-of-aegisthus .olympus-hall { position:absolute; inset:0; background: linear-gradient(135deg, #e8e0c8 0%, #c0b8a0 50%, #a09880 100%), repeating-linear-gradient(90deg, transparent 0px, transparent 40px, rgba(180,170,150,0.2) 40px, rgba(180,170,150,0.2) 42px); animation: zsa-shimmer 8s ease-in-out infinite alternate; }
.scn-zeus-speaks-of-aegisthus .throne { position:absolute; bottom:20%; left:40%; right:40%; height:35%; background: linear-gradient(180deg, #b0a080 0%, #8a7a6a 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 10px 30px rgba(0,0,0,0.3); }
.scn-zeus-speaks-of-aegisthus .zeus-fig { position:absolute; bottom:24%; left:44%; width:30px; height:50px; background: linear-gradient(180deg, #e8d8c0 0%, #c0b0a0 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: zsa-zeus 9s ease-in-out infinite; }
.scn-zeus-speaks-of-aegisthus .other-gods { position:absolute; bottom:22%; left:15%; right:15%; height:20%; background: linear-gradient(0deg, #c0b8a0 0%, #a09880 100%); border-radius:30% 30% 0 0; opacity:0.6; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.2); animation: zsa-gods 12s ease-in-out infinite alternate; }
.scn-zeus-speaks-of-aegisthus .torch-left { position:absolute; bottom:40%; left:12%; width:8px; height:30px; background: linear-gradient(180deg, #f0c060 0%, #c08020 60%, transparent); border-radius:50% 50% 0 0; box-shadow: 0 0 40px 15px #f0c060; animation: zsa-torch 3s ease-in-out infinite alternate; }
.scn-zeus-speaks-of-aegisthus .torch-right { position:absolute; bottom:40%; right:12%; width:8px; height:30px; background: linear-gradient(180deg, #f0c060 0%, #c08020 60%, transparent); border-radius:50% 50% 0 0; box-shadow: 0 0 40px 15px #f0c060; animation: zsa-torch 3s ease-in-out infinite alternate-reverse; }
@keyframes zsa-shimmer { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.92; } }
@keyframes zsa-zeus { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-2deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes zsa-gods { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes zsa-torch { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.1) translateY(-2px); } 100% { transform: scaleY(0.95) translateY(1px); } }

/* athene-pleads-for-odysseus - warm & bright-interior */
.scn-athene-pleads-for-odysseus { background: linear-gradient(180deg, #f8e8d0 0%, #e0c8a0 40%, #c0a880 100%), radial-gradient(circle at 50% 30%, #f0d8b0 0%, transparent 70%); }
.scn-athene-pleads-for-odysseus .golden-hall { position:absolute; inset:0; background: linear-gradient(135deg, #f0dcc0 0%, #d0b890 50%, #b09878 100%), radial-gradient(circle at 30% 50%, #f8e0c0 0%, transparent 60%); animation: apo-glow 10s ease-in-out infinite alternate; }
.scn-athene-pleads-for-odysseus .zeus-throne { position:absolute; bottom:20%; right:10%; left:50%; height:40%; background: linear-gradient(180deg, #c8a878 0%, #a88a5a 100%); border-radius:20% 20% 5% 5%; box-shadow: 0 12px 30px rgba(0,0,0,0.2); }
.scn-athene-pleads-for-odysseus .zeus-seated { position:absolute; bottom:25%; right:20%; width:28px; height:48px; background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%); border-radius:50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: apo-zeus 7s ease-in-out infinite; }
.scn-athene-pleads-for-odysseus .athene-standing { position:absolute; bottom:28%; left:25%; width:22px; height:42px; background: linear-gradient(180deg, #c0b888 0%, #a09868 100%); border-radius:50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: apo-athene 6s ease-in-out infinite; }
.scn-athene-pleads-for-odysseus .light-rays { position:absolute; top:10%; left:0; right:0; height:40%; background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, rgba(255,220,160,0.1) 50%, transparent 100%); animation: apo-rays 9s ease-in-out infinite alternate; }
.scn-athene-pleads-for-odysseus .halo-glow { position:absolute; top:20%; left:20%; width:120px; height:120px; background: radial-gradient(circle, rgba(255,240,200,0.15) 0%, transparent 100%); animation: apo-halo 8s ease-in-out infinite alternate; }
@keyframes apo-glow { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes apo-zeus { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(1px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes apo-athene { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(-2px) translateY(1px) rotate(-1deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes apo-rays { 0% { opacity:0.3; transform: rotate(-2deg); } 50% { opacity:0.5; transform: rotate(2deg); } 100% { opacity:0.35; transform: rotate(-1deg); } }
@keyframes apo-halo { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.08); opacity:0.9; } 100% { transform: scale(0.95); opacity:0.7; } }

/* Scene: nestor-encourages-telemachus (warm, sunlit, wide horizon) */
.scn-nestor-encourages-telemachus {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #daa520 100%),
              radial-gradient(ellipse at 50% 100%, #b8860b 0%, transparent 70%);
}
.scn-nestor-encourages-telemachus .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffebcd 0%, #87ceeb 100%);
  animation: ne-sky 15s ease-in-out infinite alternate;
}
.scn-nestor-encourages-telemachus .sun {
  position: absolute; top: 5%; left: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fffacd 0%, #ffd700 70%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,215,0,.5);
  animation: ne-sun 20s ease-in-out infinite alternate;
}
.scn-nestor-encourages-telemachus .clouds {
  position: absolute; top: 8%; left: 0; right: 0; height: 60px;
  background: repeating-linear-gradient(90deg, transparent 0px, rgba(255,255,255,.6) 40px, transparent 80px);
  filter: blur(8px); opacity: .6;
  animation: ne-clouds 40s linear infinite;
}
.scn-nestor-encourages-telemachus .palace {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #deb887 0%, #a0522d 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,.3);
  animation: ne-palace 10s ease-in-out infinite alternate;
}
.scn-nestor-encourages-telemachus .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8fbc8f 0%, #556b2f 100%);
  border-radius: 20% 20% 0 0;
}
.scn-nestor-encourages-telemachus .figure-nestor {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ne-nestor 8s ease-in-out infinite;
}
.scn-nestor-encourages-telemachus .figure-telemachus {
  position: absolute; bottom: 20%; left: 55%; width: 26px; height: 72px;
  background: linear-gradient(180deg, #1e90ff 0%, #000080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ne-telemachus 9s ease-in-out infinite;
}
@keyframes ne-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ne-sun { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(10px,-5px) scale(1.05) } 100% { transform: translate(-5px,3px) scale(.98) } }
@keyframes ne-clouds { 0% { background-position: 0 0 } 100% { background-position: 200% 0 } }
@keyframes ne-palace { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ne-nestor { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(2deg) translateX(2px) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) translateX(-1px) } }
@keyframes ne-telemachus { 0%,100% { transform: rotate(0deg) translateY(0) } 33% { transform: rotate(1deg) translateY(-2px) } 66% { transform: rotate(-1deg) translateY(0) } }

/* Scene: telemachus-desponds (tense, sunlit, close-up) */
.scn-telemachus-desponds {
  background: linear-gradient(135deg, #f0e68c 0%, #b8860b 40%, #8b4513 100%),
              radial-gradient(ellipse at 30% 50%, #daa520 0%, transparent 60%);
}
.scn-telemachus-desponds .bg-sun {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #ffebcd 0%, #fff8dc 50%, #daa520 100%);
  animation: td-bg 12s ease-in-out infinite alternate;
}
.scn-telemachus-desponds .shadow-stripe {
  position: absolute; top: 0; bottom: 0; left: 40%; width: 15%;
  background: linear-gradient(180deg, #2f4f4f 0%, #1a1a1a 100%);
  opacity: .5;
  animation: td-stripe 5s ease-in-out infinite alternate;
}
.scn-telemachus-desponds .wall {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(135deg, #c4a882 0%, #a0825a 100%);
  border-radius: 5px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
}
.scn-telemachus-desponds .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #deb887 0%, #a0522d 100%);
}
.scn-telemachus-desponds .figure-telemachus {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4682b4 0%, #191970 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: td-figure 4s ease-in-out infinite;
}
.scn-telemachus-desponds .shadow-streak {
  position: absolute; bottom: 15%; left: 30%; width: 80px; height: 4px;
  background: #000; opacity: .3;
  transform: rotate(-20deg);
  animation: td-streak 3s ease-in-out infinite alternate;
}
.scn-telemachus-desponds .light-ray {
  position: absolute; top: 5%; left: 20%; width: 2px; height: 200px;
  background: linear-gradient(180deg, rgba(255,255,255,.8) 0%, transparent 100%);
  animation: td-ray 6s ease-in-out infinite;
}
@keyframes td-bg { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes td-stripe { 0% { transform: translateX(-5px) } 50% { transform: translateX(5px) } 100% { transform: translateX(-3px) } }
@keyframes td-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) } 30% { transform: translateX(-50%) rotate(2deg) translateY(-2px) } 60% { transform: translateX(-50%) rotate(-2deg) translateY(2px) } }
@keyframes td-streak { 0% { opacity: .1; transform: rotate(-20deg) translateX(0) } 50% { opacity: .5; transform: rotate(-15deg) translateX(10px) } 100% { opacity: .2; transform: rotate(-20deg) translateX(0) } }
@keyframes td-ray { 0% { opacity: .3; transform: scaleY(1) } 50% { opacity: .8; transform: scaleY(1.2) } 100% { opacity: .4; transform: scaleY(1) } }

/* Scene: minerva-speaks-again (warm, sunlit, interior cutaway) */
.scn-minerva-speaks-again {
  background: linear-gradient(180deg, #ffe4b5 0%, #deb887 50%, #a0522d 100%),
              radial-gradient(ellipse at 50% 0%, #fffacd 0%, transparent 70%);
}
.scn-minerva-speaks-again .frame-left {
  position: absolute; top: 0; bottom: 0; left: 0; width: 12%;
  background: linear-gradient(90deg, #8b4513 0%, #a0522d 100%);
  box-shadow: inset -5px 0 10px rgba(0,0,0,.3);
}
.scn-minerva-speaks-again .frame-right {
  position: absolute; top: 0; bottom: 0; right: 0; width: 12%;
  background: linear-gradient(90deg, #a0522d 0%, #8b4513 100%);
  box-shadow: inset 5px 0 10px rgba(0,0,0,.3);
}
.scn-minerva-speaks-again .floor {
  position: absolute; bottom: 0; left: 12%; right: 12%; height: 20%;
  background: linear-gradient(180deg, #cd853f 0%, #8b4513 100%);
  border-top: 3px solid #daa520;
}
.scn-minerva-speaks-again .ceiling {
  position: absolute; top: 0; left: 12%; right: 12%; height: 15%;
  background: linear-gradient(180deg, #deb887 0%, #b8860b 100%);
  border-bottom: 3px solid #daa520;
}
.scn-minerva-speaks-again .figure-athena {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #f0e68c 0%, #daa520 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ms-athena 7s ease-in-out infinite;
}
.scn-minerva-speaks-again .figure-telemachus {
  position: absolute; bottom: 20%; left: 55%; width: 26px; height: 72px;
  background: linear-gradient(180deg, #4682b4 0%, #191970 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ms-telemachus 9s ease-in-out infinite;
}
.scn-minerva-speaks-again .light-pool {
  position: absolute; bottom: 18%; left: 35%; width: 80px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,215,0,.4) 0%, transparent 70%);
  animation: ms-pool 5s ease-in-out infinite alternate;
}
@keyframes ms-athena { 0%,100% { transform: rotate(0deg) } 20% { transform: rotate(2deg) translateX(3px) } 40% { transform: rotate(-1deg) } 60% { transform: rotate(1deg) translateX(-2px) } 80% { transform: rotate(0deg) } }
@keyframes ms-telemachus { 0%,100% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-2deg) translateY(2px) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-1deg) translateY(-1px) } }
@keyframes ms-pool { 0% { opacity: .3; transform: scale(.9) } 50% { opacity: .7; transform: scale(1.1) } 100% { opacity: .4; transform: scale(1) } }

/* Scene: telemachus-asks-about-agamemnon (tense, sunlit, silhouette against sky) */
.scn-telemachus-asks-about-agamemnon {
  background: linear-gradient(180deg, #ff8c00 0%, #ffd700 40%, #87ceeb 100%),
              radial-gradient(ellipse at 50% 0%, #ff8c00 0%, transparent 60%);
}
.scn-telemachus-asks-about-agamemnon .bg-sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #ffa500 0%, #ffd700 30%, #87ceeb 70%, #4682b4 100%);
  animation: ta-sky 10s ease-in-out infinite alternate;
}
.scn-telemachus-asks-about-agamemnon .sun {
  position: absolute; top: 5%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fffacd 0%, #ff8c00 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,140,0,.6);
  animation: ta-sun 15s ease-in-out infinite alternate;
}
.scn-telemachus-asks-about-agamemnon .clouds {
  position: absolute; top: 10%; left: 0; right: 0; height: 40px;
  background: repeating-linear-gradient(90deg, transparent 0px, rgba(255,255,255,.5) 30px, transparent 60px);
  filter: blur(6px);
  animation: ta-clouds 25s linear infinite;
}
.scn-telemachus-asks-about-agamemnon .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8b4513 0%, #2f1b0a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-telemachus-asks-about-agamemnon .figure-nestor {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2f1b0a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ta-nestor 6s ease-in-out infinite;
}
.scn-telemachus-asks-about-agamemnon .figure-telemachus {
  position: absolute; bottom: 18%; left: 55%; width: 26px; height: 72px;
  background: linear-gradient(180deg, #1a1a2e 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ta-telemachus 7s ease-in-out infinite;
}
.scn-telemachus-asks-about-agamemnon .shadow-rays {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(45deg, transparent 0px, rgba(0,0,0,.1) 20px, transparent 40px);
  animation: ta-rays 8s ease-in-out infinite alternate;
}
@keyframes ta-sky { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes ta-sun { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(-10px,5px) scale(1.05) } 100% { transform: translate(5px,-3px) scale(.98) } }
@keyframes ta-clouds { 0% { background-position: 0 0 } 100% { background-position: 200% 0 } }
@keyframes ta-nestor { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(3deg) translateX(2px) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(1deg) translateX(-1px) } }
@keyframes ta-telemachus { 0%,100% { transform: rotate(0deg) translateY(0) } 33% { transform: rotate(2deg) translateY(-2px) } 66% { transform: rotate(-1deg) translateY(1px) } }
@keyframes ta-rays { 0% { opacity: .1 } 50% { opacity: .3 } 100% { opacity: .15 } }

.scn-pisistratus-offers-cup { background: linear-gradient(180deg, #7aa5c0 0%, #b0d0e0 30%, #f0e8c0 50%, #e8d8a0 70%, #c0a070 100%), radial-gradient(ellipse at 20% 80%, #fff4d0 0%, transparent 60%); }
.scn-pisistratus-offers-cup .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #a0c8e0 0%, #cce0f0 100%); animation: poc-sky 18s ease-in-out infinite alternate; }
.scn-pisistratus-offers-cup .sea { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5090b0 0%, #307090 100%); animation: poc-sea 25s linear infinite; }
.scn-pisistratus-offers-cup .temple-floor { position:absolute; bottom:20%; left:5%; right:5%; height:18%; background: linear-gradient(180deg, #d0b880 0%, #b89860 100%); border-radius: 10% 10% 0 0; }
.scn-pisistratus-offers-cup .column-left { position:absolute; bottom:20%; left:15%; width:8px; height:40%; background: linear-gradient(90deg, #e8dcc0 0%, #f0e4c8 30%, #d0c0a0 100%); border-radius: 4px; box-shadow: 4px 0 6px rgba(0,0,0,0.15); animation: poc-column 8s ease-in-out infinite; }
.scn-pisistratus-offers-cup .column-right { position:absolute; bottom:20%; right:15%; width:8px; height:40%; background: linear-gradient(90deg, #e8dcc0 0%, #f0e4c8 30%, #d0c0a0 100%); border-radius: 4px; box-shadow: -4px 0 6px rgba(0,0,0,0.15); animation: poc-column 8s ease-in-out infinite reverse; }
.scn-pisistratus-offers-cup .altar-table { position:absolute; bottom:20%; left:45%; right:45%; height:10px; background: linear-gradient(180deg, #c8a860 0%, #a88840 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-pisistratus-offers-cup .offering-cup { position:absolute; bottom:21%; left:48%; width:14px; height:18px; background: radial-gradient(circle at 50% 30%, #f0d080 0%, #c8a050 70%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: poc-cup 5s ease-in-out infinite; }
.scn-pisistratus-offers-cup .hand { position:absolute; bottom:21%; left:44%; width:12px; height:20px; background: linear-gradient(180deg, #d0a878 0%, #b88858 100%); border-radius: 40% 40% 50% 50% / 30% 30% 60% 60%; transform-origin: bottom center; animation: poc-hand 5s ease-in-out infinite; }
@keyframes poc-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes poc-sea { 0% { background-position: 0% 0% } 50% { background-position: 10% 0% } 100% { background-position: 0% 0% } }
@keyframes poc-column { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes poc-cup { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(2px,-1px) rotate(3deg) } 50% { transform: translate(0,0) rotate(0deg) } 75% { transform: translate(-2px,-1px) rotate(-3deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes poc-hand { 0% { transform: translate(0,0) rotate(-5deg) } 25% { transform: translate(3px,0) rotate(0deg) } 50% { transform: translate(6px,-2px) rotate(5deg) } 75% { transform: translate(3px,0) rotate(0deg) } 100% { transform: translate(0,0) rotate(-5deg) } }

.scn-minerva-prays-to-neptune { background: linear-gradient(180deg, #7aa5c0 0%, #b0d0e0 30%, #f0e8c0 50%, #e8d8a0 70%, #c0a070 100%), radial-gradient(ellipse at 20% 80%, #fff4d0 0%, transparent 60%); }
.scn-minerva-prays-to-neptune .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #a0c8e0 0%, #cce0f0 100%); animation: mpr-sky 14s ease-in-out infinite alternate; }
.scn-minerva-prays-to-neptune .sea { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5090b0 0%, #307090 100%); animation: mpr-sea 30s linear infinite; }
.scn-minerva-prays-to-neptune .temple-arch { position:absolute; top:5%; left:15%; right:15%; height:30%; background: radial-gradient(ellipse at 50% 0%, #e8dcc0 0%, transparent 70%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 8px 10px rgba(0,0,0,0.1); animation: mpr-arch 20s ease-in-out infinite; }
.scn-minerva-prays-to-neptune .altar-flame { position:absolute; bottom:20%; left:48%; width:14px; height:30px; background: radial-gradient(circle, #ffd080 0%, #c86620 70%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 20px 6px #ffb040; animation: mpr-flame 3s ease-in-out infinite alternate; }
.scn-minerva-prays-to-neptune .minerva-figure { position:absolute; bottom:18%; left:35%; width:24px; height:50px; background: linear-gradient(180deg, #b09870 0%, #8a7050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mpr-figure 10s ease-in-out infinite; }
.scn-minerva-prays-to-neptune .hands-raised { position:absolute; bottom:32%; left:35%; width:20px; height:12px; background: linear-gradient(180deg, #d0a878 0%, #b88858 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; animation: mpr-hands 6s ease-in-out infinite; }
.scn-minerva-prays-to-neptune .discarded-cup { position:absolute; bottom:20%; left:44%; width:12px; height:14px; background: radial-gradient(circle at 50% 30%, #f0d080 0%, #c8a050 70%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform: rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: mpr-cup 8s ease-in-out infinite; }
@keyframes mpr-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes mpr-sea { 0% { background-position: 0% 0% } 50% { background-position: 5% 0% } 100% { background-position: 0% 0% } }
@keyframes mpr-arch { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes mpr-flame { 0% { transform: scaleY(1) translateX(0); opacity:0.8 } 25% { transform: scaleY(1.1) translateX(-2px); opacity:1 } 50% { transform: scaleY(1) translateX(0); opacity:0.9 } 75% { transform: scaleY(0.9) translateX(2px); opacity:0.7 } 100% { transform: scaleY(1) translateX(0); opacity:0.8 } }
@keyframes mpr-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mpr-hands { 0% { transform: translate(0,0) rotate(-10deg) } 25% { transform: translate(0,-2px) rotate(0deg) } 50% { transform: translate(0,0) rotate(10deg) } 75% { transform: translate(0,-2px) rotate(0deg) } 100% { transform: translate(0,0) rotate(-10deg) } }
@keyframes mpr-cup { 0%,100% { transform: rotate(-20deg) translate(0,0) } 50% { transform: rotate(-15deg) translate(1px,-1px) } }

.scn-dinner-proceeds { background: linear-gradient(180deg, #d0b888 0%, #c8a878 30%, #b89860 50%, #a88850 70%, #907840 100%), radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 70%); }
.scn-dinner-proceeds .hall-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c8a878 0%, #b09060 100%); animation: dp-wall 25s ease-in-out infinite; }
.scn-dinner-proceeds .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a88850 0%, #907840 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-dinner-proceeds .dining-table { position:absolute; bottom:15%; left:20%; right:20%; height:20px; background: linear-gradient(180deg, #7a6030 0%, #5a4020 100%); border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,0.5); }
.scn-dinner-proceeds .figure-left { position:absolute; bottom:10%; left:22%; width:30px; height:60px; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-figure-left 12s ease-in-out infinite; }
.scn-dinner-proceeds .figure-right { position:absolute; bottom:10%; right:22%; width:30px; height:60px; background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-figure-right 14s ease-in-out infinite; }
.scn-dinner-proceeds .plate-left { position:absolute; bottom:17%; left:27%; width:24px; height:10px; background: radial-gradient(circle, #f0e0c0 0%, #d0b080 70%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: dp-plate 8s ease-in-out infinite; }
.scn-dinner-proceeds .plate-right { position:absolute; bottom:17%; right:27%; width:24px; height:10px; background: radial-gradient(circle, #f0e0c0 0%, #d0b080 70%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: dp-plate 8s ease-in-out infinite 4s; }
.scn-dinner-proceeds .lamp { position:absolute; top:20%; left:48%; width:28px; height:20px; background: radial-gradient(circle at 50% 40%, #ffe8a0 0%, #e8c040 50%, #c08020 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 30px 10px #e8c040, 0 0 60px 20px rgba(232,192,64,0.3); animation: dp-lamp 5s ease-in-out infinite alternate; }
@keyframes dp-wall { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes dp-figure-left { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dp-figure-right { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dp-plate { 0%,100% { transform: scale(1) } 50% { transform: scale(0.95) } }
@keyframes dp-lamp { 0% { transform: scaleY(1) scaleX(1); opacity:0.8 } 25% { transform: scaleY(1.05) scaleX(0.95); opacity:1 } 50% { transform: scaleY(1) scaleX(1); opacity:0.9 } 75% { transform: scaleY(0.95) scaleX(1.05); opacity:0.7 } 100% { transform: scaleY(1) scaleX(1); opacity:0.8 } }

.scn-nestor-asks-who-strangers-are { background: linear-gradient(180deg, #c8b088 0%, #b89870 30%, #a88858 50%, #987848 70%, #886838 100%), radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, transparent 70%); }
.scn-nestor-asks-who-strangers-are .palace-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #b89870 0%, #a08050 100%); animation: naw-wall 20s ease-in-out infinite; }
.scn-nestor-asks-who-strangers-are .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #987848 0%, #806830 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-nestor-asks-who-strangers-are .throne { position:absolute; bottom:18%; left:15%; width:40px; height:50px; background: linear-gradient(180deg, #a08050 0%, #806830 100%); border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%; box-shadow: 0 6px 10px rgba(0,0,0,0.4); animation: naw-throne 15s ease-in-out infinite; }
.scn-nestor-asks-who-strangers-are .nestor-figure { position:absolute; bottom:20%; left:16%; width:24px; height:55px; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: naw-nestor 12s ease-in-out infinite; }
.scn-nestor-asks-who-strangers-are .telemachus-figure { position:absolute; bottom:18%; right:18%; width:22px; height:50px; background: linear-gradient(180deg, #7a6848 0%, #5a4828 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: naw-telemachus 14s ease-in-out infinite; }
.scn-nestor-asks-who-strangers-are .minerva-standing { position:absolute; bottom:18%; right:30%; width:20px; height:52px; background: linear-gradient(180deg, #b09870 0%, #8a7050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: naw-minerva 16s ease-in-out infinite; }
.scn-nestor-asks-who-strangers-are .pillar { position:absolute; bottom:0; left:45%; right:45%; height:100%; background: linear-gradient(90deg, #c8b088 0%, #d8c098 40%, #b89870 100%); width:10px; border-radius: 4px; box-shadow: 4px 0 6px rgba(0,0,0,0.1); animation: naw-pillar 10s ease-in-out infinite; }
@keyframes naw-wall { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes naw-throne { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes naw-nestor { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes naw-telemachus { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes naw-minerva { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes naw-pillar { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }

/* dawn-telemachus-rises */
.scn-dawn-telemachus-rises {
  background:
    linear-gradient(180deg, #f7e9d0 0%, #e6c9a8 30%, #b08d6b 70%, #5a3e28 100%),
    radial-gradient(ellipse at 80% 20%, #fdf4e3 0%, transparent 60%);
}
.scn-dawn-telemachus-rises .bg-wall {
  position: absolute; inset: 0 30% 0 0; background: linear-gradient(90deg, #c9b393 0%, #b49770 100%); border-radius: 0 8px 0 0; animation: dtr-wall 12s ease-in-out infinite alternate;
}
.scn-dawn-telemachus-rises .window-opener {
  position: absolute; top: 8%; left: 5%; width: 30%; height: 45%; background: linear-gradient(135deg, #fdf4e3 0%, #e8d5b7 100%); border-radius: 4px 4px 20px 20px; box-shadow: inset 0 0 20px #fdf4e3; animation: dtr-window 8s ease-in-out infinite;
}
.scn-dawn-telemachus-rises .dawn-light {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(ellipse at 20% 10%, rgba(255,235,180,0.4) 0%, transparent 70%); animation: dtr-light 6s ease-in-out infinite alternate;
}
.scn-dawn-telemachus-rises .bed {
  position: absolute; bottom: 12%; left: 10%; width: 50%; height: 18%; background: linear-gradient(180deg, #5a3e28 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: dtr-bed 20s ease-in-out infinite;
}
.scn-dawn-telemachus-rises .figure-rising {
  position: absolute; bottom: 12%; left: 45%; width: 14%; height: 40%; background: linear-gradient(180deg, #d4b48c 0%, #a07a5a 40%, #5a3e28 100%); border-radius: 40% 40% 30% 30% / 80% 80% 40% 40%; transform-origin: bottom; animation: dtr-rise 10s ease-in-out infinite;
}
.scn-dawn-telemachus-rises .sword-belt {
  position: absolute; bottom: 24%; left: 48%; width: 8%; height: 6%; background: linear-gradient(90deg, #8a6a42, #6a4a2a, #8a6a42); border-radius: 20%; box-shadow: 0 0 6px #6a4a2a; animation: dtr-sword 4s ease-in-out infinite;
}
.scn-dawn-telemachus-rises .sandals {
  position: absolute; bottom: 6%; left: 42%; width: 12%; height: 4%; background: linear-gradient(180deg, #b08d6b 0%, #7a5a3a 100%); border-radius: 40% 40% 20% 20%; animation: dtr-sandals 6s ease-in-out infinite;
}
.scn-dawn-telemachus-rises .drapery {
  position: absolute; top: 30%; right: 5%; width: 20%; height: 70%; background: linear-gradient(135deg, #e8d5b7 0%, #c9b393 100%); border-radius: 40% 20% 20% 40%; filter: blur(2px); opacity: 0.5; animation: dtr-drape 18s linear infinite;
}
@keyframes dtr-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes dtr-window { 0% { transform: scale(1); box-shadow: inset 0 0 20px #fdf4e3; } 50% { transform: scale(1.02); box-shadow: inset 0 0 40px #ffe8a0; } 100% { transform: scale(0.98); box-shadow: inset 0 0 20px #fdf4e3; } }
@keyframes dtr-light { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes dtr-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dtr-rise { 0% { transform: translateY(20%) scaleY(0.8); } 25% { transform: translateY(10%) scaleY(0.9); } 50% { transform: translateY(0) scaleY(1); } 75% { transform: translateY(-2%) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes dtr-sword { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes dtr-sandals { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dtr-drape { 0% { transform: translateX(0); } 100% { transform: translateX(-30px); } }

/* aegyptius-speaks */
.scn-aegyptius-speaks {
  background:
    linear-gradient(180deg, #fce8d0 0%, #e0c098 40%, #b88a5a 100%),
    radial-gradient(ellipse at 60% 30%, #ffe0a0 0%, transparent 50%);
}
.scn-aegyptius-speaks .bg-sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #fdf4e0 0%, #f0d4b0 100%); animation: aeg-sky 15s ease-in-out infinite alternate;
}
.scn-aegyptius-speaks .sun-flare {
  position: absolute; top: 15%; left: 55%; width: 20%; height: 20%; background: radial-gradient(circle, rgba(255,230,150,0.6) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: aeg-sun 25s ease-in-out infinite;
}
.scn-aegyptius-speaks .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #b88a5a 0%, #8a6a42 100%); border-radius: 60% 40% 0 0; animation: aeg-ground 10s ease-in-out infinite;
}
.scn-aegyptius-speaks .old-man-torso {
  position: absolute; bottom: 20%; left: 35%; width: 25%; height: 50%; background: linear-gradient(180deg, #c9a87a 0%, #a08050 60%, #6a4a2a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom; animation: aeg-bend 8s ease-in-out infinite;
}
.scn-aegyptius-speaks .staff {
  position: absolute; bottom: 10%; left: 45%; width: 4%; height: 60%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3e28 100%); border-radius: 10% 10% 20% 20% / 10% 10% 30% 30%; transform-origin: bottom; animation: aeg-staff 6s ease-in-out infinite;
}
.scn-aegyptius-speaks .hand-gesture {
  position: absolute; bottom: 40%; left: 52%; width: 6%; height: 8%; background: radial-gradient(circle, #d4b48c 0%, #b08d6b 100%); border-radius: 50%; transform-origin: center; animation: aeg-hand 4s ease-in-out infinite;
}
.scn-aegyptius-speaks .shadow-cave {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 30%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%); border-radius: 40%; filter: blur(5px); animation: aeg-shadow 20s ease-in-out infinite reverse;
}
.scn-aegyptius-speaks .dust-motes {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 60%; background: radial-gradient(circle, rgba(255,240,200,0.15) 1px, transparent 2px); background-size: 30px 30px; animation: aeg-dust 40s linear infinite;
}
@keyframes aeg-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes aeg-sun { 0% { transform: scale(0.8); opacity: 0.5; } 50% { transform: scale(1.2); opacity: 0.9; } 100% { transform: scale(0.9); opacity: 0.6; } }
@keyframes aeg-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes aeg-bend { 0% { transform: rotate(-2deg) translateY(0); } 30% { transform: rotate(3deg) translateY(-1px); } 60% { transform: rotate(-1deg) translateY(1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes aeg-staff { 0% { transform: rotate(-3deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-3deg); } }
@keyframes aeg-hand { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(15deg) scale(1.1); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes aeg-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes aeg-dust { 0% { background-position: 0 0; } 100% { background-position: 100px 50px; } }

/* aegyptius-addresses-assembly */
.scn-aegyptius-addresses-assembly {
  background:
    linear-gradient(180deg, #fdf4e0 0%, #e6c9a8 40%, #b08d6b 100%),
    radial-gradient(ellipse at 50% 20%, #fff5dc 0%, transparent 60%);
}
.scn-aegyptius-addresses-assembly .bg-horizon {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #fce8d0 0%, #e0c098 100%); animation: aaa-horizon 14s ease-in-out infinite alternate;
}
.scn-aegyptius-addresses-assembly .sun-position {
  position: absolute; top: 10%; left: 50%; width: 18%; height: 18%; background: radial-gradient(circle, #ffe8a0 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: aaa-sun 30s ease-in-out infinite;
}
.scn-aegyptius-addresses-assembly .crowd-figures {
  position: absolute; bottom: 10%; left: 5%; width: 90%; height: 40%; background: repeating-linear-gradient(90deg, #5a3e28 0%, #5a3e28 3%, transparent 3%, transparent 6%), linear-gradient(180deg, #7a5a3a 0%, #5a3e28 100%); border-radius: 10% 10% 0 0; animation: aaa-crowd 20s ease-in-out infinite;
}
.scn-aegyptius-addresses-assembly .speaker-podium {
  position: absolute; bottom: 30%; left: 42%; width: 16%; height: 25%; background: linear-gradient(180deg, #8a6a42 0%, #6a4a2a 100%); border-radius: 10% 10% 0 0; animation: aaa-podium 12s ease-in-out infinite;
}
.scn-aegyptius-addresses-assembly .herald-staff {
  position: absolute; bottom: 35%; left: 30%; width: 3%; height: 45%; background: linear-gradient(180deg, #8a6a42 0%, #5a3e28 100%); border-radius: 10% 10% 20% 20%; transform-origin: bottom; animation: aaa-herald 8s ease-in-out infinite;
}
.scn-aegyptius-addresses-assembly .cloak-wave {
  position: absolute; bottom: 35%; left: 48%; width: 12%; height: 20%; background: linear-gradient(135deg, #e0c098 0%, #c9a87a 100%); border-radius: 40% 20% 20% 40%; filter: blur(1px); animation: aaa-cloak 6s ease-in-out infinite;
}
.scn-aegyptius-addresses-assembly .stone-slab {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3220 100%); border-radius: 5% 5% 0 0; animation: aaa-slab 30s ease-in-out infinite;
}
@keyframes aaa-horizon { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes aaa-sun { 0% { transform: scale(0.9); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 0.9; } 100% { transform: scale(0.95); opacity: 0.7; } }
@keyframes aaa-crowd { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.98); } }
@keyframes aaa-podium { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes aaa-herald { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes aaa-cloak { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(8deg) scaleX(1.05); } 100% { transform: rotate(-5deg) scaleX(1); } }
@keyframes aaa-slab { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }

/* telemachus-rises-to-speak */
.scn-telemachus-rises-to-speak {
  background:
    linear-gradient(180deg, #fce8d0 0%, #e0c098 30%, #b88a5a 70%, #7a5a3a 100%),
    radial-gradient(ellipse at 40% 20%, #ffe0a0 0%, transparent 60%);
}
.scn-telemachus-rises-to-speak .bg-courtyard {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #f0d4b0 0%, #d4b48c 100%); animation: trs-court 10s ease-in-out infinite alternate;
}
.scn-telemachus-rises-to-speak .sun-hard {
  position: absolute; top: 5%; left: 30%; width: 25%; height: 25%; background: radial-gradient(circle, #ffe8a0 0%, transparent 60%); border-radius: 50%; filter: blur(4px); animation: trs-sun 8s ease-in-out infinite;
}
.scn-telemachus-rises-to-speak .podium-step {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 12%; background: linear-gradient(180deg, #8a6a42 0%, #6a4a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); animation: trs-step 4s ease-in-out infinite;
}
.scn-telemachus-rises-to-speak .telemachus-standing {
  position: absolute; bottom: 20%; left: 40%; width: 18%; height: 50%; background: linear-gradient(180deg, #d4b48c 0%, #a07a5a 40%, #5a3e28 100%); border-radius: 40% 40% 30% 30% / 80% 80% 40% 40%; transform-origin: bottom; animation: trs-stand 6s ease-in-out infinite;
}
.scn-telemachus-rises-to-speak .herald-beside {
  position: absolute; bottom: 20%; left: 60%; width: 12%; height: 40%; background: linear-gradient(180deg, #c9a87a 0%, #8a6a42 100%); border-radius: 30% 30% 20% 20% / 70% 70% 40% 40%; transform-origin: bottom; animation: trs-herald 5s ease-in-out infinite;
}
.scn-telemachus-rises-to-speak .staff-offered {
  position: absolute; bottom: 30%; left: 52%; width: 3%; height: 35%; background: linear-gradient(180deg, #703a1a 0%, #4a2010 100%); border-radius: 10%; transform-origin: bottom left; animation: trs-staff 3s ease-in-out infinite;
}
.scn-telemachus-rises-to-speak .sharp-shadow {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 8%; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); border-radius: 20%; filter: blur(1px); animation: trs-shadow 7s ease-in-out infinite;
}
.scn-telemachus-rises-to-speak .crowd-tense {
  position: absolute; bottom: 5%; left: 5%; width: 90%; height: 25%; background: repeating-linear-gradient(90deg, #5a3e28 0%, #5a3e28 2%, transparent 2%, transparent 5%), linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; animation: trs-crowd 3s ease-in-out infinite;
}
@keyframes trs-court { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes trs-sun { 0% { transform: scale(0.9); opacity: 0.7; } 50% { transform: scale(1.15); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }
@keyframes trs-step { 0% { transform: translateY(0); box-shadow: 0 -4px 8px rgba(0,0,0,0.3); } 50% { transform: translateY(-2px); box-shadow: 0 -6px 12px rgba(0,0,0,0.5); } 100% { transform: translateY(0); } }
@keyframes trs-stand { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes trs-herald { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes trs-staff { 0% { transform: rotate(-5deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes trs-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes trs-crowd { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* translator-notes-textual */
.scn-translator-notes-textual {
  background: linear-gradient(180deg, #3a2e1c 0%, #4c3a24 40%, #2e2415 100%), radial-gradient(ellipse at 50% 80%, #6a5a3a 0%, transparent 60%);
}
.scn-translator-notes-textual .desk {
  position: absolute;
  bottom: 0;
  left: 5%;
  width: 90%;
  height: 45%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 0 0 / 12% 12% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-translator-notes-textual .book {
  position: absolute;
  bottom: 36%;
  height: 26%;
  background: linear-gradient(90deg, #5e3e2e 0%, #7a5a4a 50%, #5e3e2e 100%);
  border-radius: 4% 4% 2% 2% / 20% 20% 6% 6%;
  border-left: 2px solid #8a6a5a;
  border-right: 2px solid #8a6a5a;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-translator-notes-textual .book-left {
  left: 10%;
  width: 18%;
  bottom: 34%;
  transform: rotate(-3deg);
  animation: tn-book-shift 12s ease-in-out infinite;
}
.scn-translator-notes-textual .book-center {
  left: 36%;
  width: 22%;
  bottom: 30%;
  transform: rotate(1deg) scale(1.05);
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  animation: tn-book-shift 14s ease-in-out infinite reverse;
}
.scn-translator-notes-textual .book-right {
  left: 64%;
  width: 20%;
  bottom: 33%;
  transform: rotate(2deg);
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a5a 50%, #6a4a3a 100%);
  animation: tn-book-shift 16s ease-in-out infinite;
}
.scn-translator-notes-textual .lamp {
  position: absolute;
  bottom: 48%;
  left: 50%;
  width: 20px;
  height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b09060 0%, #7a5a3a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
}
.scn-translator-notes-textual .lamp-glow {
  position: absolute;
  bottom: 46%;
  left: 50%;
  width: 60px;
  height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,200,140,0.6) 0%, rgba(200,160,100,0.2) 40%, transparent 70%);
  border-radius: 50%;
  animation: tn-lamp-flicker 4s ease-in-out infinite alternate;
}
.scn-translator-notes-textual .papers {
  position: absolute;
  bottom: 16%;
  left: 30%;
  width: 40%;
  height: 12%;
  background: linear-gradient(135deg, #e8dcc8 0%, #d4c8b0 50%, #e0d4c0 100%);
  border-radius: 3%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-2deg);
  animation: tn-papers-shift 20s ease-in-out infinite;
}
.scn-translator-notes-textual .inkwell {
  position: absolute;
  bottom: 12%;
  left: 18%;
  width: 16px;
  height: 20px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
@keyframes tn-book-shift {
  0%, 100% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
}
@keyframes tn-lamp-flicker {
  0% { opacity: 0.7; transform: scale(1); }
  30% { opacity: 0.8; transform: scale(1.02); }
  60% { opacity: 0.9; transform: scale(0.98); }
  100% { opacity: 0.75; transform: scale(1.01); }
}
@keyframes tn-papers-shift {
  0% { transform: rotate(-2deg) translateX(0); }
  25% { transform: rotate(-1.5deg) translateX(3px); }
  50% { transform: rotate(-2.5deg) translateX(-2px); }
  75% { transform: rotate(-1deg) translateX(4px); }
  100% { transform: rotate(-2deg) translateX(0); }
}

/* preface-1900-1921 */
.scn-preface-1900-1921 {
  background: linear-gradient(180deg, #2a2a3a 0%, #1e1e2e 40%, #141420 100%), radial-gradient(ellipse at 50% 40%, #3a3a4e 0%, transparent 60%);
}
.scn-preface-1900-1921 .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #3a3a4e 0%, #2a2a3e 100%);
}
.scn-preface-1900-1921 .window {
  position: absolute;
  top: 10%;
  left: 30%;
  width: 40%;
  height: 35%;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%);
  border-radius: 8% 8% 4% 4%;
  border: 4px solid #4a3a2a;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: pf-window-glow 15s ease-in-out infinite alternate;
}
.scn-preface-1900-1921 .shelf {
  position: absolute;
  left: 5%;
  width: 90%;
  height: 4%;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%);
  border-radius: 2%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
}
.scn-preface-1900-1921 .shelf-top { bottom: 65%; }
.scn-preface-1900-1921 .shelf-mid { bottom: 42%; }
.scn-preface-1900-1921 .shelf-bot { bottom: 19%; }
.scn-preface-1900-1921 .book-row {
  position: absolute;
  left: 8%;
  width: 84%;
  height: 18%;
  background: repeating-linear-gradient(90deg, #6a4a3a 0%, #6a4a3a 6%, #7a5a4a 6%, #7a5a4a 12%, #5e3e2e 12%, #5e3e2e 18%, #8a6a5a 18%, #8a6a5a 24%, #4a3a2a 24%, #4a3a2a 30%);
  border-radius: 4% 4% 2% 2% / 20% 20% 6% 6%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3);
  animation: pf-books-sway 20s ease-in-out infinite;
}
.scn-preface-1900-1921 .book-row-1 { bottom: 47%; height: 15%; }
.scn-preface-1900-1921 .book-row-2 { bottom: 24%; height: 15%; }
.scn-preface-1900-1921 .book-row-3 { bottom: 1%; height: 15%; }
.scn-preface-1900-1921 .candle {
  position: absolute;
  bottom: 72%;
  left: 48%;
  width: 8px;
  height: 20px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,220,140,0.4);
  animation: pf-candle-glow 3s ease-in-out infinite alternate;
}
@keyframes pf-window-glow {
  0% { opacity: 0.5; box-shadow: inset 0 0 30px rgba(0,0,0,0.7); }
  30% { opacity: 0.6; box-shadow: inset 0 0 40px rgba(0,0,0,0.6); }
  70% { opacity: 0.7; box-shadow: inset 0 0 50px rgba(0,0,0,0.5); }
  100% { opacity: 0.6; box-shadow: inset 0 0 35px rgba(0,0,0,0.65); }
}
@keyframes pf-books-sway {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes pf-candle-glow {
  0% { opacity: 0.6; box-shadow: 0 0 15px 6px rgba(255,220,140,0.3); }
  30% { opacity: 0.8; box-shadow: 0 0 25px 10px rgba(255,220,140,0.5); }
  70% { opacity: 0.9; box-shadow: 0 0 20px 8px rgba(255,220,140,0.4); }
  100% { opacity: 0.7; box-shadow: 0 0 12px 4px rgba(255,220,140,0.35); }
}

/* prefaces-revisions */
.scn-prefaces-revisions {
  background: linear-gradient(180deg, #2e2622 0%, #1e1a16 50%, #120e0c 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 50%);
}
.scn-prefaces-revisions .wall {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 2px, rgba(255,255,255,0.02) 2px, rgba(255,255,255,0.02) 4px);
}
.scn-prefaces-revisions .desk-vert {
  position: absolute;
  left: 10%;
  top: 10%;
  width: 80%;
  height: 80%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-prefaces-revisions .index-card {
  position: absolute;
  width: 22%;
  height: 14%;
  background: linear-gradient(135deg, #f0e8d8 0%, #e0d8c8 100%);
  border-radius: 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(0deg);
  animation: pre-card-shuffle 12s ease-in-out infinite;
}
.scn-prefaces-revisions .index-card-1 {
  left: 12%;
  top: 18%;
  animation-delay: 0s;
  transform: rotate(-4deg);
}
.scn-prefaces-revisions .index-card-2 {
  left: 38%;
  top: 30%;
  animation-delay: 2s;
  transform: rotate(2deg);
}
.scn-prefaces-revisions .index-card-3 {
  left: 60%;
  top: 22%;
  animation-delay: 4s;
  transform: rotate(-1deg);
}
.scn-prefaces-revisions .typewriter {
  position: absolute;
  bottom: 12%;
  left: 28%;
  width: 44%;
  height: 30%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 10% 10% 6% 6% / 30% 30% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: pre-typewriter-bob 6s ease-in-out infinite;
}
.scn-prefaces-revisions .typewriter-key {
  position: absolute;
  bottom: 24%;
  left: 40%;
  width: 20%;
  height: 8%;
  background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 100%);
  border-radius: 12% 12% 8% 8%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pre-keypress 2s ease-in-out infinite;
}
.scn-prefaces-revisions .lamp-desk {
  position: absolute;
  bottom: 22%;
  right: 16%;
  width: 18px;
  height: 28px;
  background: linear-gradient(180deg, #b09060 0%, #7a5a3a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,200,140,0.3);
  animation: pre-lamp-pulse 5s ease-in-out infinite alternate;
}
@keyframes pre-card-shuffle {
  0%, 100% { transform: rotate(0deg) translate(0,0); }
  30% { transform: rotate(3deg) translate(4px,-2px); }
  60% { transform: rotate(-2deg) translate(-2px,1px); }
}
@keyframes pre-typewriter-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes pre-keypress {
  0%, 100% { transform: translateY(0) scale(1,1); }
  40% { transform: translateY(2px) scale(0.95,0.9); }
  80% { transform: translateY(0) scale(1,1); }
}
@keyframes pre-lamp-pulse {
  0% { opacity: 0.6; box-shadow: 0 0 20px 6px rgba(255,200,140,0.2); }
  30% { opacity: 0.8; box-shadow: 0 0 35px 12px rgba(255,200,140,0.4); }
  70% { opacity: 0.7; box-shadow: 0 0 25px 8px rgba(255,200,140,0.3); }
  100% { opacity: 0.5; box-shadow: 0 0 15px 4px rgba(255,200,140,0.15); }
}

/* paunch-comparison */
.scn-paunch-comparison {
  background: linear-gradient(180deg, #1a0a00 0%, #2a1400 40%, #3a1c00 100%), radial-gradient(ellipse at 50% 80%, #6a3a1a 0%, transparent 60%);
}
.scn-paunch-comparison .hearth {
  position: absolute;
  bottom: 0;
  left: 5%;
  width: 90%;
  height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-paunch-comparison .fire-base {
  position: absolute;
  bottom: 18%;
  left: 40%;
  width: 20%;
  height: 15%;
  background: linear-gradient(180deg, #4a2a0a 0%, #6a3a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(255,100,0,0.3);
}
.scn-paunch-comparison .fire-flame {
  position: absolute;
  bottom: 30%;
  width: 12%;
  height: 20%;
  border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%;
  background: linear-gradient(180deg, #ff8040 0%, #ff6020 30%, #c04000 60%, #802000 100%);
  opacity: 0.8;
  animation: pc-flame 2s ease-in-out infinite alternate;
}
.scn-paunch-comparison .flame-1 { left: 44%; animation-delay: 0s; }
.scn-paunch-comparison .flame-2 { left: 48%; animation-delay: 0.4s; transform: scale(0.8); }
.scn-paunch-comparison .flame-3 { left: 52%; animation-delay: 0.8s; transform: scale(0.6); }
.scn-paunch-comparison .cauldron {
  position: absolute;
  bottom: 22%;
  left: 42%;
  width: 16%;
  height: 14%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: pc-cauldron-rock 6s ease-in-out infinite;
}
.scn-paunch-comparison .figure-cook {
  position: absolute;
  bottom: 8%;
  left: 18%;
  width: 14%;
  height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-figure-bend 4s ease-in-out infinite;
}
.scn-paunch-comparison .spit {
  position: absolute;
  bottom: 32%;
  left: 28%;
  width: 18%;
  height: 2%;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%);
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: pc-spit-turn 8s linear infinite;
}
@keyframes pc-flame {
  0% { transform: translateY(0) scaleY(1); opacity: 0.7; }
  30% { transform: translateY(-6px) scaleY(1.2); opacity: 0.9; }
  60% { transform: translateY(-3px) scaleY(0.9); opacity: 0.8; }
  100% { transform: translateY(-2px) scaleY(1.1); opacity: 0.6; }
}
@keyframes pc-cauldron-rock {
  0%, 100% { transform: rotate(0deg); }
  30% { transform: rotate(2deg); }
  60% { transform: rotate(-1deg); }
}
@keyframes pc-figure-bend {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(-3deg); }
  60% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes pc-spit-turn {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}

/* Scene 1: mercury-flies-to-ogygia – sunlit outdoor flight */
.scn-mercury-flies-to-ogygia {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0d4f1 30%, #f0e68c 60%, #ffd700 80%, #ffcc33 100%),
    radial-gradient(ellipse at 70% 20%, #fffde0 0%, transparent 60%);
}
.scn-mercury-flies-to-ogygia .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  animation: mfo-sky 15s ease-in-out infinite alternate;
}
.scn-mercury-flies-to-ogygia .sun {
  position: absolute; top: 10%; left: 70%;
  width: 70px; height: 70px;
  background: radial-gradient(circle, #fff5cc 0%, #ffcc33 50%, #ffaa00 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffcc33, 0 0 120px 40px rgba(255,204,51,0.4);
  animation: mfo-sun 12s ease-in-out infinite alternate;
}
.scn-mercury-flies-to-ogygia .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2e64a1 0%, #1a3e6b 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  border-radius: 20% 30% 0 0;
  animation: mfo-sea 8s ease-in-out infinite alternate;
}
.scn-mercury-flies-to-ogygia .figure {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a321a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: mfo-flight 10s ease-in-out infinite;
}
.scn-mercury-flies-to-ogygia .sandals-glow {
  position: absolute; bottom: 43%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 10px;
  background: radial-gradient(ellipse, #ffd700 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: mfo-sandals 10s ease-in-out infinite;
}
.scn-mercury-flies-to-ogygia .wand {
  position: absolute; bottom: 50%; left: 55%;
  width: 4px; height: 30px;
  background: linear-gradient(180deg, #c0a060 0%, #806030 100%);
  border-radius: 20%;
  transform-origin: bottom center;
  animation: mfo-wand 4s ease-in-out infinite;
}
.scn-mercury-flies-to-ogygia .wind-a,
.scn-mercury-flies-to-ogygia .wind-b {
  position: absolute; height: 3px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-mercury-flies-to-ogygia .wind-a {
  top: 30%; width: 120px; left: -10%;
  animation: mfo-wind-a 8s linear infinite;
}
.scn-mercury-flies-to-ogygia .wind-b {
  top: 45%; width: 80px; left: -5%;
  animation: mfo-wind-b 6s linear infinite reverse;
}

@keyframes mfo-sky     { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes mfo-sun     { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes mfo-sea     { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes mfo-flight  {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-48%) translateY(-8px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(0deg); }
  75% { transform: translateX(-52%) translateY(-6px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes mfo-sandals { 0% { opacity: 0.5 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes mfo-wand    { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }
@keyframes mfo-wind-a  { 0% { transform: translateX(0) } 100% { transform: translateX(150vw) } }
@keyframes mfo-wind-b  { 0% { transform: translateX(0) } 100% { transform: translateX(140vw) } }

/* Scene 2: calypso's-cave – bright interior with fire and loom */
.scn-calypso's-cave {
  background:
    linear-gradient(135deg, #3a2a1a 0%, #5a3a1a 30%, #4a2a0a 60%, #2a1a0a 100%),
    radial-gradient(circle at 50% 70%, #ff8c42 0%, transparent 60%);
}
.scn-calypso's-cave .cave-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  border-radius: 20% 20% 40% 40% / 0 0 30% 30%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
  animation: cc-cave 12s ease-in-out infinite alternate;
}
.scn-calypso's-cave .fire {
  position: absolute; bottom: 20%; left: 30%;
  width: 50px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #ff6600 0%, #ff3300 40%, #cc2200 70%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 40px 15px #ff4400, 0 0 80px 30px rgba(255,68,0,0.4);
  animation: cc-fire 2s ease-in-out infinite alternate;
}
.scn-calypso's-cave .loom {
  position: absolute; bottom: 25%; left: 55%;
  width: 60px; height: 80px;
  background: linear-gradient(135deg, #8b5a2b 0%, #5a3a1a 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: cc-loom 6s ease-in-out infinite alternate;
}
.scn-calypso's-cave .calypso {
  position: absolute; bottom: 20%; left: 55%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc-sing 4s ease-in-out infinite;
}
.scn-calypso's-cave .smoke {
  position: absolute; bottom: 55%; left: 32%;
  width: 40px; height: 60px;
  background: radial-gradient(ellipse, rgba(200,200,200,0.3) 0%, transparent 80%);
  filter: blur(8px);
  animation: cc-smoke 7s ease-in-out infinite;
}
.scn-calypso's-cave .shuttle {
  position: absolute; bottom: 35%; left: 58%;
  width: 30px; height: 6px;
  background: linear-gradient(90deg, #ffd700 0%, #daa520 100%);
  border-radius: 20%;
  box-shadow: 0 0 10px 2px #ffd700;
  animation: cc-shuttle 3s ease-in-out infinite;
}
@keyframes cc-cave    { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes cc-fire    { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9 } 50% { transform: scaleY(1.1) scaleX(0.95); opacity: 1 } 100% { transform: scaleY(0.95) scaleX(1.05); opacity: 0.95 } }
@keyframes cc-loom    { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes cc-sing    { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(-1px) rotate(2deg) } 75% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cc-smoke   { 0% { transform: translateY(0) scale(1); opacity: 0.3 } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.6 } 100% { transform: translateY(-40px) scale(2); opacity: 0 } }
@keyframes cc-shuttle { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(10px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* Scene 3: mercury-and-calypso-converse – interior with two figures and table */
.scn-mercury-and-calypso-converse {
  background:
    linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 70%, #1a0a00 100%),
    radial-gradient(circle at 60% 50%, #b08040 0%, transparent 70%);
}
.scn-mercury-and-calypso-converse .cave-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: mcc-cave 15s ease-in-out infinite alternate;
}
.scn-mercury-and-calypso-converse .fire {
  position: absolute; bottom: 15%; left: 20%;
  width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #ff7700 0%, #ff3300 40%, #cc2200 70%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 30px 10px #ff4400, 0 0 60px 20px rgba(255,68,0,0.3);
  animation: mcc-fire 3s ease-in-out infinite alternate;
}
.scn-mercury-and-calypso-converse .table {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 30px;
  background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: mcc-table 10s ease-in-out infinite alternate;
}
.scn-mercury-and-calypso-converse .ambrosia-glow {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 60%, transparent 90%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ffd700, 0 0 40px 15px rgba(255,215,0,0.3);
  animation: mcc-glow 4s ease-in-out infinite alternate;
}
.scn-mercury-and-calypso-converse .mercury-fig {
  position: absolute; bottom: 28%; left: 42%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a321a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcc-mercury 8s ease-in-out infinite;
}
.scn-mercury-and-calypso-converse .calypso-fig {
  position: absolute; bottom: 28%; left: 58%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcc-calypso 8s ease-in-out infinite reverse;
}
@keyframes mcc-cave     { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes mcc-fire     { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9 } 50% { transform: scaleY(1.1) scaleX(0.95); opacity: 1 } 100% { transform: scaleY(0.95) scaleX(1.05); opacity: 0.95 } }
@keyframes mcc-table    { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes mcc-glow     { 0% { opacity: 0.5; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.6; transform: scale(0.9) } }
@keyframes mcc-mercury  { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(-1px) rotate(0deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mcc-calypso  { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(1deg) } }

/* Scene 4: mercury-delivers-message – interior, table with nectar, scroll */
.scn-mercury-delivers-message {
  background:
    linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 70%, #1a0a00 100%),
    radial-gradient(circle at 40% 60%, #c08040 0%, transparent 60%);
}
.scn-mercury-delivers-message .cave-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  box-shadow: inset 0 15px 35px rgba(0,0,0,0.5);
  animation: mdm-cave 20s ease-in-out infinite alternate;
}
.scn-mercury-delivers-message .fire {
  position: absolute; bottom: 18%; left: 25%;
  width: 35px; height: 55px;
  background: radial-gradient(ellipse at 50% 100%, #ff8800 0%, #ff4400 40%, #cc2200 70%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 30px 10px #ff4400, 0 0 60px 20px rgba(255,68,0,0.3);
  animation: mdm-fire 2.5s ease-in-out infinite alternate;
}
.scn-mercury-delivers-message .table {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 110px; height: 28px;
  background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: mdm-table 12s ease-in-out infinite alternate;
}
.scn-mercury-delivers-message .nectar-glow {
  position: absolute; bottom: 25%; left: 48%;
  width: 35px; height: 20px;
  background: radial-gradient(ellipse, #ff3300 0%, #cc4400 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 25px 6px #ff4400, 0 0 50px 12px rgba(255,68,0,0.3);
  animation: mdm-nectar 5s ease-in-out infinite alternate;
}
.scn-mercury-delivers-message .mercury-stand {
  position: absolute; bottom: 23%; left: 40%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #4a321a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mdm-mercury 7s ease-in-out infinite;
}
.scn-mercury-delivers-message .calypso-seated {
  position: absolute; bottom: 20%; left: 60%;
  width: 24px; height: 45px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mdm-calypso 7s ease-in-out infinite reverse;
}
.scn-mercury-delivers-message .scroll {
  position: absolute; bottom: 45%; left: 52%;
  width: 20px; height: 30px;
  background: linear-gradient(135deg, #d4c5a9 0%, #a08668 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-15deg);
  animation: mdm-scroll 8s ease-in-out infinite alternate;
}
@keyframes mdm-cave      { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes mdm-fire      { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9 } 50% { transform: scaleY(1.1) scaleX(0.95); opacity: 1 } 100% { transform: scaleY(0.95) scaleX(1.05); opacity: 0.95 } }
@keyframes mdm-table     { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes mdm-nectar    { 0% { opacity: 0.4; transform: scale(0.9) } 50% { opacity: 0.9; transform: scale(1.1) } 100% { opacity: 0.5; transform: scale(1) } }
@keyframes mdm-mercury   { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(-1px) rotate(0deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mdm-calypso   { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes mdm-scroll    { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-3px) } 100% { transform: rotate(-20deg) translateY(0) } }

.scn-ulysses-throws-disc {
  background:
    linear-gradient(180deg, #a0c4ff 0%, #f9e79f 40%, #f5cba7 70%, #d5b88c 100%),
    radial-gradient(ellipse at 30% 20%, #f9e79f 0%, transparent 60%);
}
.scn-ulysses-throws-disc .sky   { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #7fb3ff 0%, #a0c4ff 50%, transparent 100%); animation: utd-sky 8s ease-in-out infinite alternate; }
.scn-ulysses-throws-disc .sun   { position:absolute; top:10%; left:25%; width:60px; height:60px; background: radial-gradient(circle, #f7dc6f 0%, #f9e79f 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px #f7dc6f, 0 0 80px 40px rgba(247,220,111,.4); animation: utd-sun 12s ease-in-out infinite alternate; }
.scn-ulysses-throws-disc .ground{ position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #d5b88c 0%, #e8cfa0 30%, #f5cba7 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: utd-ground 20s ease-in-out infinite; }
.scn-ulysses-throws-disc .figure{ position:absolute; bottom:25%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: utd-figure 4s ease-in-out infinite; }
.scn-ulysses-throws-disc .arm   { position:absolute; bottom:52%; left:33%; width:40px; height:10px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 40% 40% 50%; transform-origin: right center; animation: utd-arm 0.6s ease-in-out infinite; }
.scn-ulysses-throws-disc .disc  { position:absolute; bottom:60%; left:20%; width:30px; height:8px; background: radial-gradient(ellipse, #c0392b 0%, #922b21 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: utd-disc 0.6s ease-in-out infinite; }
.scn-ulysses-throws-disc .shadow{ position:absolute; bottom:20%; left:30%; width:50px; height:8px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(4px); animation: utd-shadow 4s ease-in-out infinite; }
@keyframes utd-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes utd-sun { 0% { transform: scale(1); box-shadow: 0 0 40px 20px #f7dc6f; } 50% { transform: scale(1.05); box-shadow: 0 0 60px 30px #f7dc6f; } 100% { transform: scale(.95); box-shadow: 0 0 30px 15px #f7dc6f; } }
@keyframes utd-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes utd-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-5px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes utd-arm { 0% { transform: rotate(-30deg); } 25% { transform: rotate(10deg); } 50% { transform: rotate(-40deg); } 75% { transform: rotate(20deg); } 100% { transform: rotate(-30deg); } }
@keyframes utd-disc { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-20px) translateY(-15px) rotate(30deg); } 50% { transform: translateX(-40px) translateY(0) rotate(60deg); } 75% { transform: translateX(-60px) translateY(15px) rotate(90deg); } 100% { transform: translateX(-80px) translateY(0) rotate(120deg); } }
@keyframes utd-shadow { 0% { transform: scaleX(1) translateX(0); opacity:.3; } 50% { transform: scaleX(.8) translateX(-20px); opacity:.5; } 100% { transform: scaleX(1) translateX(0); opacity:.3; } }

.scn-ulysses-challenges-all {
  background:
    linear-gradient(180deg, #f7dc6f 0%, #f9e79f 30%, #f5cba7 60%, #e8cfa0 100%),
    radial-gradient(ellipse at 50% 80%, #f9e79f 0%, transparent 60%);
}
.scn-ulysses-challenges-all .sky     { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0c4ff 0%, #d4e6f1 50%, transparent 100%); animation: uca-sky 10s ease-in-out infinite alternate; }
.scn-ulysses-challenges-all .sun     { position:absolute; top:8%; right:30%; width:70px; height:70px; background: radial-gradient(circle, #f7dc6f 0%, #f9e79f 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 25px #f7dc6f, 0 0 100px 50px rgba(247,220,111,.4); animation: uca-sun 15s ease-in-out infinite alternate; }
.scn-ulysses-challenges-all .ground  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #d5b88c 0%, #e8cfa0 20%, #f5cba7 60%, transparent 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.2); animation: uca-ground 25s ease-in-out infinite; }
.scn-ulysses-challenges-all .crowd   { position:absolute; bottom:25%; left:10%; right:10%; height:50px; background: repeating-linear-gradient(90deg, #2c3e50 0px, #2c3e50 8px, transparent 8px, transparent 16px); background-size:16px 100%; mask-image: linear-gradient(0deg, transparent 0%, #000 30%, #000 70%, transparent 100%); -webkit-mask-image: linear-gradient(0deg, transparent 0%, #000 30%, #000 70%, transparent 100%); animation: uca-crowd 6s ease-in-out infinite; }
.scn-ulysses-challenges-all .figure  { position:absolute; bottom:20%; left:45%; width:35px; height:80px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: uca-figure 4s ease-in-out infinite; }
.scn-ulysses-challenges-all .arm     { position:absolute; bottom:55%; left:42%; width:45px; height:12px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 40% 40% 50%; transform-origin: right center; animation: uca-arm 1.2s ease-in-out infinite; }
.scn-ulysses-challenges-all .dust    { position:absolute; bottom:18%; left:40%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(213,184,140,.6) 0%, transparent 70%); filter: blur(4px); animation: uca-dust 4s ease-in-out infinite; }
@keyframes uca-sky    { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes uca-sun    { 0% { transform: scale(1); } 50% { transform: scale(1.08); } 100% { transform: scale(.95); } }
@keyframes uca-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes uca-crowd  { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-5px) scaleY(1.1); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes uca-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes uca-arm    { 0% { transform: rotate(-20deg); } 30% { transform: rotate(30deg); } 60% { transform: rotate(-10deg); } 100% { transform: rotate(-20deg); } }
@keyframes uca-dust   { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(-10px) scale(1.5); opacity:.2; } 100% { transform: translateY(0) scale(1); opacity:.6; } }

.scn-alcinous-praises-ulysses {
  background:
    linear-gradient(180deg, #f5e6ca 0%, #e8cfa0 40%, #d5b88c 70%, #c4a67a 100%),
    radial-gradient(ellipse at 50% 30%, #f9e79f 0%, transparent 60%);
}
.scn-alcinous-praises-ulysses .wall        { position:absolute; inset:0; background: linear-gradient(90deg, #d5b88c 0%, #e8cfa0 30%, #f5e6ca 50%, #e8cfa0 70%, #d5b88c 100%); animation: apu-wall 30s ease-in-out infinite alternate; }
.scn-alcinous-praises-ulysses .floor       { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #c4a67a 0px, #c4a67a 40px, #b89b6e 40px, #b89b6e 80px); box-shadow: inset 0 10px 20px rgba(0,0,0,.2); animation: apu-floor 20s linear infinite; }
.scn-alcinous-praises-ulysses .throne      { position:absolute; bottom:22%; left:50%; width:80px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.4); animation: apu-throne 6s ease-in-out infinite; }
.scn-alcinous-praises-ulysses .king        { position:absolute; bottom:35%; left:50%; width:40px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: apu-king 5s ease-in-out infinite; }
.scn-alcinous-praises-ulysses .guest       { position:absolute; bottom:20%; left:30%; width:35px; height:75px; background: linear-gradient(180deg, #5d6d7e 0%, #34495e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: apu-guest 7s ease-in-out infinite; }
.scn-alcinous-praises-ulysses .pillar-left { position:absolute; bottom:0; left:10%; width:30px; height:70%; background: linear-gradient(180deg, #d5b88c 0%, #b89b6e 100%); border-radius: 10% 10% 0 0; box-shadow: inset -5px 0 10px rgba(0,0,0,.2); animation: apu-pillar 12s ease-in-out infinite alternate; }
.scn-alcinous-praises-ulysses .pillar-right{ position:absolute; bottom:0; right:10%; width:30px; height:70%; background: linear-gradient(180deg, #d5b88c 0%, #b89b6e 100%); border-radius: 10% 10% 0 0; box-shadow: inset 5px 0 10px rgba(0,0,0,.2); animation: apu-pillar 12s ease-in-out infinite alternate-reverse; }
.scn-alcinous-praises-ulysses .light-beam  { position:absolute; top:10%; left:35%; right:35%; height:40%; background: linear-gradient(180deg, rgba(249,231,159,.4) 0%, transparent 100%); filter: blur(20px); animation: apu-light 8s ease-in-out infinite alternate; }
@keyframes apu-wall  { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes apu-floor { 0% { background-position: 0 0; } 100% { background-position: -80px 0; } }
@keyframes apu-throne { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes apu-king { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes apu-guest { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes apu-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes apu-light { 0% { opacity:.3; transform: scaleY(1); } 50% { opacity:.6; transform: scaleY(1.2); } 100% { opacity:.3; transform: scaleY(1); } }

.scn-dancing-and-song-of-mars-and-venus {
  background:
    linear-gradient(180deg, #fdfefe 0%, #f4f6f7 30%, #e5e8e8 60%, #d5dbdb 100%),
    radial-gradient(ellipse at 50% 20%, #fdfefe 0%, transparent 70%);
}
.scn-dancing-and-song-of-mars-and-venus .ceiling     { position:absolute; top:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #d5dbdb 0%, #e5e8e8 100%); border-radius: 0 0 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.1); animation: dms-ceiling 15s ease-in-out infinite alternate; }
.scn-dancing-and-song-of-mars-and-venus .floor       { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-conic-gradient(#d5dbdb 0% 25%, #e5e8e8 25% 50%) 0 0 / 40px 40px; animation: dms-floor 20s linear infinite; }
.scn-dancing-and-song-of-mars-and-venus .wall-back   { position:absolute; top:15%; bottom:20%; left:10%; right:10%; background: linear-gradient(90deg, #e5e8e8 0%, #f4f6f7 30%, #fdfefe 50%, #f4f6f7 70%, #e5e8e8 100%); border-radius: 10%; box-shadow: inset 0 0 40px rgba(0,0,0,.05); animation: dms-wall 25s ease-in-out infinite alternate; }
.scn-dancing-and-song-of-mars-and-venus .lamp        { position:absolute; top:8%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 80%, #f9e79f 0%, #f7dc6f 40%, transparent 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 60px 30px rgba(247,220,111,.5), 0 0 120px 60px rgba(247,220,111,.2); animation: dms-lamp 4s ease-in-out infinite alternate; }
.scn-dancing-and-song-of-mars-and-venus .dancer1     { position:absolute; bottom:28%; left:35%; width:25px; height:60px; background: linear-gradient(180deg, #5b2c6f 0%, #3b1f4d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dms-dancer1 3s ease-in-out infinite; }
.scn-dancing-and-song-of-mars-and-venus .dancer2     { position:absolute; bottom:28%; left:50%; width:25px; height:60px; background: linear-gradient(180deg, #1a5276 0%, #0e2f44 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dms-dancer2 3s ease-in-out infinite; }
.scn-dancing-and-song-of-mars-and-venus .lyre        { position:absolute; bottom:40%; left:58%; width:18px; height:30px; background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: dms-lyre 5s ease-in-out infinite; }
.scn-dancing-and-song-of-mars-and-venus .shadow-pair { position:absolute; bottom:22%; left:32%; right:30%; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,.15) 0%, transparent 70%); filter: blur(3px); animation: dms-shadow 3s ease-in-out infinite; }
@keyframes dms-ceiling { 0% { opacity:.8; transform: translateY(0); } 50% { opacity:1; transform: translateY(-2px); } 100% { opacity:.9; transform: translateY(0); } }
@keyframes dms-floor   { 0% { background-position: 0 0; } 100% { background-position: 40px 40px; } }
@keyframes dms-wall    { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes dms-lamp    { 0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 60px 30px rgba(247,220,111,.4); } 50% { transform: translateX(-50%) scaleY(1.1); box-shadow: 0 0 80px 40px rgba(247,220,111,.6); } 100% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 60px 30px rgba(247,220,111,.4); } }
@keyframes dms-dancer1 { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(10px) rotate(5deg); } 50% { transform: translateX(0) rotate(-5deg); } 75% { transform: translateX(-10px) rotate(5deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes dms-dancer2 { 0% { transform: translateX(0) rotate(5deg); } 25% { transform: translateX(-10px) rotate(-5deg); } 50% { transform: translateX(0) rotate(5deg); } 75% { transform: translateX(10px) rotate(-5deg); } 100% { transform: translateX(0) rotate(5deg); } }
@keyframes dms-lyre    { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dms-shadow  { 0% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(1.2); opacity:.3; } 100% { transform: scaleX(1); opacity:.5; } }

/* one block per scene id. Append to style.css. */
.scn-laertes-farmhouse-dinner {
  background:
    linear-gradient(180deg, #c25a3c 0%, #5e2c1c 60%, #2e1406 100%),
    radial-gradient(ellipse at 30% 50%, #d4845a 0%, transparent 60%);
}
.scn-laertes-farmhouse-dinner .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(160deg, #b86a47 0%, #7a3d25 100%);
  animation: lfd-wall 12s ease-in-out infinite alternate;
}
.scn-laertes-farmhouse-dinner .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(0deg, #3b2212 0%, #5a3520 100%);
  border-radius: 20% 20% 0 0 / 8% 8% 0 0;
}
.scn-laertes-farmhouse-dinner .table {
  position:absolute; bottom:12%; left:20%; width:60%; height:8%;
  background: linear-gradient(180deg, #a07a5a 0%, #6b4d33 100%);
  border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,.6);
  transform: perspective(400px) rotateX(5deg);
  animation: lfd-table 16s ease-in-out infinite;
}
.scn-laertes-farmhouse-dinner .platter {
  position:absolute; bottom:20%; left:35%; width:30%; height:5%;
  background: radial-gradient(ellipse, #d4a373 0%, #b87a44 70%);
  border-radius: 40%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.3);
}
.scn-laertes-farmhouse-dinner .cup-1 {
  position:absolute; bottom:20%; left:32%; width:4%; height:6%;
  background: #7a4a2e; border-radius: 0 0 30% 30% / 0 0 60% 60%;
  transform: skewX(-5deg); box-shadow: inset 0 4px 6px rgba(0,0,0,.5);
  animation: lfd-cup 6s ease-in-out infinite;
}
.scn-laertes-farmhouse-dinner .cup-2 {
  position:absolute; bottom:20%; right:32%; width:4%; height:6%;
  background: #7a4a2e; border-radius: 0 0 30% 30% / 0 0 60% 60%;
  transform: skewX(5deg); box-shadow: inset 0 4px 6px rgba(0,0,0,.5);
  animation: lfd-cup 6s ease-in-out infinite reverse;
}
.scn-laertes-farmhouse-dinner .figure-seated {
  position:absolute; bottom:18%; width:12%; height:22%;
  background: linear-gradient(180deg, #2a1a0e 0%, #140a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-laertes-farmhouse-dinner .seated-1 {
  left:22%;
  animation: lfd-figure1 5s ease-in-out infinite;
}
.scn-laertes-farmhouse-dinner .seated-2 {
  right:22%;
  animation: lfd-figure2 6s ease-in-out infinite;
}
.scn-laertes-farmhouse-dinner .hearth {
  position:absolute; bottom:30%; left:5%; width:15%; height:20%;
  background: radial-gradient(ellipse at 50% 20%, #f0b060 0%, #c04020 60%, #2a1008 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 12px rgba(240,176,96,.4), inset 0 -10px 10px rgba(0,0,0,.6);
  animation: lfd-hearth 3s ease-in-out infinite alternate;
}
@keyframes lfd-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes lfd-table { 0%,100% { transform: perspective(400px) rotateX(5deg) translateY(0) } 50% { transform: perspective(400px) rotateX(5deg) translateY(-2px) } }
@keyframes lfd-cup { 0%,100% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-5deg) translateY(-3px) scale(1.02) } }
@keyframes lfd-figure1 { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(2deg) } }
@keyframes lfd-figure2 { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-4px) rotate(-2deg) } }
@keyframes lfd-hearth { 0% { opacity:.7; box-shadow: 0 0 20px 8px rgba(240,176,96,.3) } 100% { opacity:1; box-shadow: 0 0 40px 18px rgba(240,176,96,.6) } }

.scn-laertes-wishes-he-were-young {
  background:
    linear-gradient(180deg, #c26e4a 0%, #7a4228 50%, #2e180e 100%),
    radial-gradient(ellipse at 50% 30%, #d4946a 0%, transparent 60%);
}
.scn-laertes-wishes-he-were-young .room {
  position:absolute; inset:0;
  background: linear-gradient(160deg, #b85a30 0%, #4a2818 100%);
  opacity:.9;
}
.scn-laertes-wishes-he-were-young .window-light {
  position:absolute; top:6%; left:60%; width:20%; height:30%;
  background: radial-gradient(ellipse at 50% 50%, #fed7a0 0%, #e8b080 40%, transparent 70%);
  border-radius: 10% 10% 50% 50% / 20% 20% 40% 40%;
  box-shadow: 0 0 60px 30px #e8b080;
  animation: lwy-light 8s ease-in-out infinite alternate;
}
.scn-laertes-wishes-he-were-young .old-figure {
  position:absolute; bottom:15%; left:30%; width:16%; height:38%;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lwy-figure 6s ease-in-out infinite;
}
.scn-laertes-wishes-he-were-young .staff {
  position:absolute; bottom:18%; left:32%; width:2%; height:36%;
  background: linear-gradient(180deg, #6b4d33 0%, #3b2618 100%);
  border-radius: 2px 2px 0 0;
  transform: rotate(-6deg);
  animation: lwy-staff 7s ease-in-out infinite;
}
.scn-laertes-wishes-he-were-young .shadow-warm {
  position:absolute; bottom:0; left:15%; right:15%; height:30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.35) 0%, transparent 70%);
  filter: blur(8px);
}
.scn-laertes-wishes-he-were-young .dust-mote {
  position:absolute; top:10%; left:40%; width:8px; height:8px;
  background: #f0d090; border-radius: 50%;
  box-shadow: 0 0 12px 4px #f0d090;
  filter: blur(3px);
  animation: lwy-dust 20s linear infinite;
}
@keyframes lwy-light { 0% { opacity:.6; transform: scale(.95) } 100% { opacity:1; transform: scale(1.05) } }
@keyframes lwy-figure { 0%,100% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(-8px) rotate(3deg) } }
@keyframes lwy-staff { 0%,100% { transform: rotate(-6deg) } 50% { transform: rotate(-4deg) scale(1.02) } }
@keyframes lwy-dust { 0% { transform: translate(0,0) scale(.8); opacity:.4 } 25% { transform: translate(20px, -10px) scale(1.2); opacity:.8 } 50% { transform: translate(40px, 0) scale(1); opacity:.6 } 75% { transform: translate(60px, -8px) scale(.9); opacity:.7 } 100% { transform: translate(80px, 0) scale(.8); opacity:.4 } }

.scn-dolius-arrives {
  background:
    linear-gradient(180deg, #b85a3a 0%, #6e3820 50%, #2a1408 100%),
    radial-gradient(ellipse at 40% 60%, #d07040 0%, transparent 60%);
}
.scn-dolius-arrives .archway {
  position:absolute; inset:0;
  background: linear-gradient(160deg, #8a5030 0%, #4a2818 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 20%, 85% 20%, 85% 80%, 15% 80%, 15% 20%, 0% 20%);
}
.scn-dolius-arrives .door-open {
  position:absolute; bottom:10%; left:30%; width:40%; height:70%;
  background: linear-gradient(180deg, #1a0e08 0%, #0a0502 100%);
  border-radius: 0 0 8% 8% / 0 0 20% 20%;
  box-shadow: inset 0 0 20px 8px rgba(0,0,0,.8);
  transform: perspective(600px) rotateY(-10deg);
  animation: dar-door 10s ease-in-out infinite alternate;
}
.scn-dolius-arrives .threshold {
  position:absolute; bottom:8%; left:25%; width:50%; height:3%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3e28 100%);
  border-radius: 4px;
}
.scn-dolius-arrives .dolius-mantle {
  position:absolute; bottom:12%; left:32%; width:12%; height:30%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: dar-dolius 8s ease-in-out infinite;
}
.scn-dolius-arrives .sons-figures {
  position:absolute; bottom:14%; right:34%; width:10%; height:26%;
  background: linear-gradient(180deg, #1a0e08 0%, #0a0402 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: dar-sons 9s ease-in-out infinite;
}
.scn-dolius-arrives .lantern-swing {
  position:absolute; bottom:38%; left:45%; width:3%; height:8%;
  background: #3a2a1a;
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  transform-origin: top center;
  animation: dar-lantern 4s ease-in-out infinite alternate;
}
.scn-dolius-arrives .floor-tile {
  position:absolute; bottom:0; left:0; right:0; height:10%;
  background: repeating-conic-gradient(#5a3e28 0% 25%, #4a2e1a 0% 50%) 0 0 / 20px 20px;
  opacity:.6;
  animation: dar-floor 30s linear infinite;
}
@keyframes dar-door { 0% { transform: perspective(600px) rotateY(-10deg) } 100% { transform: perspective(600px) rotateY(-15deg) } }
@keyframes dar-dolius { 0%,100% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(8px) rotate(3deg) } }
@keyframes dar-sons { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-6px) rotate(-4deg) } }
@keyframes dar-lantern { 0% { transform: rotate(-15deg) } 100% { transform: rotate(15deg) } }
@keyframes dar-floor { 0% { background-position: 0 0 } 100% { background-position: 20px 0 } }

.scn-dolius-greets-ulysses {
  background:
    linear-gradient(180deg, #c26e4a 0%, #7a4228 50%, #2e180e 100%),
    radial-gradient(ellipse at 50% 40%, #d4946a 0%, transparent 60%);
}
.scn-dolius-greets-ulysses .wall-hug {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #b85a30 0%, #4a2818 100%);
  opacity:.8;
}
.scn-dolius-greets-ulysses .ulysses {
  position:absolute; bottom:12%; left:20%; width:14%; height:35%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dgu-ulysses 6s ease-in-out infinite;
}
.scn-dolius-greets-ulysses .dolius {
  position:absolute; bottom:12%; right:20%; width:14%; height:35%;
  background: linear-gradient(180deg, #3a2212 0%, #1a0c06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dgu-dolius 6s ease-in-out infinite reverse;
}
.scn-dolius-greets-ulysses .grasp-hands {
  position:absolute; bottom:22%; left:45%; width:8%; height:6%;
  background: #4a2a1a;
  border-radius: 40% 20% 40% 20% / 60% 30% 60% 30%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.5);
  transform: rotate(-10deg);
  animation: dgu-hands 4s ease-in-out infinite;
}
.scn-dolius-greets-ulysses .wrist-kiss {
  position:absolute; bottom:25%; right:38%; width:4%; height:4%;
  background: radial-gradient(circle, #d49a6a 0%, #a06640 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #d49a6a;
  animation: dgu-kiss 5s ease-in-out infinite;
}
.scn-dolius-greets-ulysses .light-warm {
  position:absolute; top:20%; left:30%; width:40%; height:40%;
  background: radial-gradient(ellipse at 50% 50%, #f0c090 0%, #d07040 40%, transparent 70%);
  border-radius: 50%;
  mix-blend-mode: overlay;
  filter: blur(20px);
  animation: dgu-light 12s ease-in-out infinite alternate;
}
@keyframes dgu-ulysses { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-4px) rotate(-2deg) } }
@keyframes dgu-dolius { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(2deg) } }
@keyframes dgu-hands { 0%,100% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(10deg) scale(1.05) } }
@keyframes dgu-kiss { 0%,100% { opacity:.6; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } }
@keyframes dgu-light { 0% { opacity:.5; transform: scale(1) } 100% { opacity:1; transform: scale(1.1) } }

/* footnote-salt-works */
.scn-footnote-salt-works {
  background: 
    linear-gradient(180deg, #2a1f12 0%, #3a2a1a 40%, #4a3a2a 70%, #1a120a 100%),
    radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 70%);
}
.scn-footnote-salt-works .sw-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 8px 24px rgba(0,0,0,0.6);
  animation: sw-wallpulse 12s ease-in-out infinite alternate;
}
.scn-footnote-salt-works .sw-window {
  position: absolute;
  top: 12%; left: 35%;
  width: 28%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #6a5a3a 0%, #3a2a1a 70%);
  border-radius: 8px;
  border: 4px solid #2a1a0a;
  box-shadow: 0 0 40px 10px rgba(100,80,50,0.3);
  animation: sw-windowglow 6s ease-in-out infinite alternate;
}
.scn-footnote-salt-works .sw-saltpile {
  position: absolute;
  bottom: 10%; left: 10%;
  width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #c8c0b0 0%, #a09888 60%, #5a5040 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: sw-saltmove 15s ease-in-out infinite;
}
.scn-footnote-salt-works .sw-basket {
  position: absolute;
  bottom: 15%; left: 55%;
  width: 10%; height: 12%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 0 0 30% 30% / 0 0 40% 40%;
  border: 2px solid #3a2a1a;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: sw-basketrock 5s ease-in-out infinite alternate;
}
.scn-footnote-salt-works .sw-lantern {
  position: absolute;
  top: 35%; left: 70%;
  width: 6%; height: 8%;
  background: radial-gradient(circle, #d8b080 0%, #a07040 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 8px #a07040, 0 0 60px 16px rgba(160,112,64,0.4);
  animation: sw-lanternflicker 2.5s ease-in-out infinite alternate;
}
.scn-footnote-salt-works .sw-figure {
  position: absolute;
  bottom: 8%; left: 45%;
  width: 5%; height: 12%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sw-figurewalk 8s ease-in-out infinite;
}
.scn-footnote-salt-works .sw-dust {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(circle at 30% 40%, rgba(200,180,150,0.15) 0%, transparent 50%);
  filter: blur(6px);
  animation: sw-dustdrift 20s linear infinite;
}
@keyframes sw-wallpulse { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sw-windowglow { 0% { box-shadow:0 0 30px 6px rgba(100,80,50,0.2); opacity:0.7 } 50% { box-shadow:0 0 50px 14px rgba(120,90,60,0.4); opacity:1 } 100% { box-shadow:0 0 35px 8px rgba(100,80,50,0.25); opacity:0.75 } }
@keyframes sw-saltmove { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1.02) } }
@keyframes sw-basketrock { 0% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes sw-lanternflicker { 0% { opacity:0.7; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(0.98) } }
@keyframes sw-figurewalk { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(9px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(12px) rotate(0) } }
@keyframes sw-dustdrift { 0% { opacity:0.8; transform: translateY(0) } 50% { opacity:1; transform: translateY(-5px) } 100% { opacity:0.7; transform: translateY(5px) } }

/* footnote-road-past-harbour */
.scn-footnote-road-past-harbour {
  background:
    linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 40%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 70%);
}
.scn-footnote-road-past-harbour .rh-wall {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-footnote-road-past-harbour .rh-window {
  position: absolute;
  top: 8%; left: 20%;
  width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #3a5a7a 0%, #1a2a3a 100%);
  border-radius: 12px;
  border: 6px solid #0a1a2a;
  box-shadow: inset 0 0 20px rgba(60,80,100,0.4);
  animation: rh-windowfade 10s ease-in-out infinite alternate;
}
.scn-footnote-road-past-harbour .rh-curtain {
  position: absolute;
  top: 8%; left: 18%;
  width: 44%; height: 32%;
  background: linear-gradient(180deg, rgba(60,70,90,0.8) 0%, rgba(40,50,70,0.6) 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  filter: blur(3px);
  animation: rh-curtainsway 8s ease-in-out infinite alternate;
}
.scn-footnote-road-past-harbour .rh-harbour {
  position: absolute;
  bottom: 10%; left: 20%;
  width: 60%; height: 20%;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
  animation: rh-harbourwave 12s ease-in-out infinite;
}
.scn-footnote-road-past-harbour .rh-boat {
  position: absolute;
  bottom: 12%; left: 45%;
  width: 8%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: rh-boatsway 6s ease-in-out infinite alternate;
}
.scn-footnote-road-past-harbour .rh-lantern {
  position: absolute;
  top: 15%; left: 50%;
  width: 4%; height: 6%;
  background: radial-gradient(circle, #b08060 0%, #806040 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #806040, 0 0 40px 12px rgba(128,96,64,0.3);
  animation: rh-lanternflicker 3s ease-in-out infinite alternate;
}
.scn-footnote-road-past-harbour .rh-star1 {
  position: absolute;
  top: 5%; left: 70%;
  width: 2%; height: 2%;
  background: radial-gradient(circle, #d0d8e0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,210,220,0.6);
  animation: rh-twinkle1 5s ease-in-out infinite alternate;
}
.scn-footnote-road-past-harbour .rh-star2 {
  position: absolute;
  top: 12%; left: 80%;
  width: 1.5%; height: 1.5%;
  background: radial-gradient(circle, #d0d8e0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 1px rgba(200,210,220,0.5);
  animation: rh-twinkle2 7s ease-in-out infinite alternate;
}
@keyframes rh-windowfade { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes rh-curtainsway { 0% { transform: translateX(-2px) } 100% { transform: translateX(2px) } }
@keyframes rh-harbourwave { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes rh-boatsway { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes rh-lanternflicker { 0% { opacity:0.7; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(0.98) } }
@keyframes rh-twinkle1 { 0% { opacity:0.3 } 50% { opacity:1 } 100% { opacity:0.5 } }
@keyframes rh-twinkle2 { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.3 } }

/* footnote-malconsiglio-rock */
.scn-footnote-malconsiglio-rock {
  background:
    linear-gradient(180deg, #0a1a2a 0%, #1a2a4a 40%, #0a1a2a 100%),
    radial-gradient(ellipse at 70% 50%, #2a4a6a 0%, transparent 70%);
}
.scn-footnote-malconsiglio-rock .mr-sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%);
  animation: mr-skybreath 15s ease-in-out infinite alternate;
}
.scn-footnote-malconsiglio-rock .mr-sea {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 50%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: mr-seawave 20s ease-in-out infinite;
}
.scn-footnote-malconsiglio-rock .mr-rock {
  position: absolute;
  bottom: 20%; left: 15%;
  width: 30%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px rgba(0,0,0,0.6), inset 0 -10px 20px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: mr-rockglow 8s ease-in-out infinite alternate;
}
.scn-footnote-malconsiglio-rock .mr-boat {
  position: absolute;
  bottom: 15%; right: 20%;
  width: 10%; height: 8%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 30% 30%;
  transform-origin: bottom center;
  animation: mr-boatfloat 12s ease-in-out infinite;
}
.scn-footnote-malconsiglio-rock .mr-figure {
  position: absolute;
  bottom: 25%; left: 30%;
  width: 3%; height: 8%;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-figurepoint 6s ease-in-out infinite;
}
.scn-footnote-malconsiglio-rock .mr-cloud {
  position: absolute;
  top: 8%; right: 10%;
  width: 20%; height: 6%;
  background: linear-gradient(180deg, rgba(200,210,220,0.3) 0%, rgba(200,210,220,0.1) 100%);
  border-radius: 40%;
  filter: blur(5px);
  animation: mr-clouddrift 40s linear infinite;
}
@keyframes mr-skybreath { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mr-seawave { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes mr-rockglow { 0% { box-shadow: 0 0 20px rgba(0,0,0,0.5), inset 0 -10px 20px rgba(0,0,0,0.4) } 50% { box-shadow: 0 0 40px rgba(60,40,20,0.2), inset 0 -10px 20px rgba(0,0,0,0.5) } 100% { box-shadow: 0 0 25px rgba(0,0,0,0.6), inset 0 -10px 20px rgba(0,0,0,0.4) } }
@keyframes mr-boatfloat { 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 mr-figurepoint { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(2px) rotate(5deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes mr-clouddrift { 0% { transform: translateX(0) } 100% { transform: translateX(-50vw) } }

/* footnote-second-cave */
.scn-footnote-second-cave {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, transparent 70%);
}
.scn-footnote-second-cave .sc-cavewall {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: sc-wallshadow 14s ease-in-out infinite alternate;
}
.scn-footnote-second-cave .sc-stalactite {
  position: absolute;
  top: 0; left: 30%;
  width: 5%; height: 25%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 20% 20% 40% 40% / 40% 40% 60% 60%;
  transform-origin: top center;
  animation: sc-stalactitesway 10s ease-in-out infinite alternate;
}
.scn-footnote-second-cave .sc-torch {
  position: absolute;
  top: 25%; left: 50%;
  width: 6%; height: 12%;
  background: radial-gradient(ellipse at 50% 0%, #d08040 0%, #a06030 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 40px 10px #a06030, 0 0 80px 20px rgba(160,96,48,0.4);
  animation: sc-torchflicker 2s ease-in-out infinite alternate;
}
.scn-footnote-second-cave .sc-figure {
  position: absolute;
  bottom: 10%; left: 40%;
  width: 4%; height: 14%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-figuremove 8s ease-in-out infinite;
}
.scn-footnote-second-cave .sc-shadow {
  position: absolute;
  bottom: 0; left: 30%;
  width: 20%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.8) 0%, transparent 70%);
  filter: blur(4px);
  animation: sc-shadowstretch 6s ease-in-out infinite alternate;
}
.scn-footnote-second-cave .sc-glint {
  position: absolute;
  top: 20%; left: 45%;
  width: 2%; height: 2%;
  background: radial-gradient(circle, #e0c0a0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(224,192,160,0.4);
  animation: sc-glintpulse 3.5s ease-in-out infinite alternate;
}
@keyframes sc-wallshadow { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sc-stalactitesway { 0% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes sc-torchflicker { 0% { opacity:0.7; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(0.98) } }
@keyframes sc-figuremove { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes sc-shadowstretch { 0% { transform: scaleX(1) scaleY(1) } 100% { transform: scaleX(1.2) scaleY(0.8) } }
@keyframes sc-glintpulse { 0% { opacity:0.3 } 50% { opacity:1 } 100% { opacity:0.5 } }

/* Scene 1: translator-note-odyssey-iliad */
.scn-translator-note-odyssey-iliad {
  background:
    linear-gradient(180deg, #3c2a1a 0%, #2a1e10 50%, #1f1409 100%),
    radial-gradient(ellipse at 50% 80%, #4a3520 0%, transparent 70%);
}
.scn-translator-note-odyssey-iliad .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #5a3e2a 0%, #3e2a18 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: tn1-desk 12s ease-in-out infinite alternate;
}
.scn-translator-note-odyssey-iliad .paper {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(135deg, #e8dac4 0%, #d4c4a8 100%);
  border-radius: 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: tn1-paper 18s ease-in-out infinite;
}
.scn-translator-note-odyssey-iliad .inkwell {
  position: absolute; bottom: 22%; left: 55%; width: 10%; height: 12%;
  background: radial-gradient(circle at 40% 30%, #3a2a1a 0%, #1f1409 100%);
  border-radius: 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-translator-note-odyssey-iliad .quill {
  position: absolute; bottom: 30%; left: 62%; width: 2%; height: 16%;
  background: linear-gradient(180deg, #f0ece0 0%, #b0a090 50%, #8a7a5a 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: tn1-quill 5s ease-in-out infinite alternate;
}
.scn-translator-note-odyssey-iliad .candle-glow {
  position: absolute; bottom: 15%; left: 20%; width: 16%; height: 20%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  opacity: 0.7;
  animation: tn1-glow 4s ease-in-out infinite alternate;
}
.scn-translator-note-odyssey-iliad .candle-flame {
  position: absolute; bottom: 28%; left: 24%; width: 4%; height: 6%;
  background: radial-gradient(circle, #ffe0a0 0%, #ff8040 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: tn1-flame 2s ease-in-out infinite alternate;
}
.scn-translator-note-odyssey-iliad .smoke {
  position: absolute; bottom: 34%; left: 25%; width: 6%; height: 10%;
  background: radial-gradient(circle, rgba(255,220,180,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: tn1-smoke 8s ease-in-out infinite;
}
.scn-translator-note-odyssey-iliad .book-spine {
  position: absolute; bottom: 8%; left: 5%; width: 8%; height: 30%;
  background: linear-gradient(90deg, #7a5a3a 0%, #5a3e2a 50%, #4a2e1a 100%);
  border-radius: 4% 10% 10% 4%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
}
@keyframes tn1-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes tn1-paper { 0%,100% { transform: scale(1); } 50% { transform: scale(1.01) rotate(0.5deg); } }
@keyframes tn1-quill { 0% { transform: rotate(-20deg); } 100% { transform: rotate(-15deg); } }
@keyframes tn1-glow { 0% { opacity: 0.5; transform: scale(0.95); } 100% { opacity: 0.8; transform: scale(1.05); } }
@keyframes tn1-flame { 0% { transform: scaleY(1) rotate(-3deg); } 50% { transform: scaleY(1.1) rotate(0deg); } 100% { transform: scaleY(0.9) rotate(3deg); } }
@keyframes tn1-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-10px) scale(1.5); opacity: 0.2; } 100% { transform: translateY(0) scale(1); opacity: 0.4; } }

/* Scene 2: translator-discusses-authorship */
.scn-translator-discusses-authorship {
  background:
    linear-gradient(180deg, #2a1e14 0%, #1a120c 40%, #0f0a06 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-translator-discusses-authorship .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 60%); opacity: 0.6;
}
.scn-translator-discusses-authorship .bookshelf {
  position: absolute; top: 5%; left: 5%; width: 25%; height: 70%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2e18 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-translator-discusses-authorship .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #5a3e2a 0%, #3e2a18 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: tda-desk 15s ease-in-out infinite alternate;
}
.scn-translator-discusses-authorship .lamp-glow {
  position: absolute; top: 30%; left: 50%; width: 20%; height: 25%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  opacity: 0.65;
  animation: tda-glow 5s ease-in-out infinite alternate;
}
.scn-translator-discusses-authorship .lamp-base {
  position: absolute; top: 50%; left: 48%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3e2a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
}
.scn-translator-discusses-authorship .chair {
  position: absolute; bottom: 30%; right: 15%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f1409 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.7);
  animation: tda-chair 8s ease-in-out infinite alternate;
}
.scn-translator-discusses-authorship .papers {
  position: absolute; bottom: 18%; left: 20%; width: 30%; height: 12%;
  background: linear-gradient(135deg, #e0d0b8 0%, #c0b098 100%);
  border-radius: 2%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: tda-papers 20s ease-in-out infinite;
}
.scn-translator-discusses-authorship .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  pointer-events: none;
}
@keyframes tda-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes tda-glow { 0% { opacity: 0.5; transform: scale(0.95); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes tda-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tda-papers { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } }

/* Scene 3: translator-on-poem-structure */
.scn-translator-on-poem-structure {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1e14 50%, #1a120c 100%),
    radial-gradient(ellipse at 50% 60%, #4a3520 0%, transparent 70%);
}
.scn-translator-on-poem-structure .desk-top {
  position: absolute; inset: 0; background: linear-gradient(135deg, #5a3e2a 0%, #3e2a18 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-translator-on-poem-structure .paper-large {
  position: absolute; top: 25%; left: 20%; width: 55%; height: 40%;
  background: linear-gradient(135deg, #e8dac4 0%, #d4c4a8 100%);
  border-radius: 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform: rotate(2deg);
  animation: tops-paper 14s ease-in-out infinite alternate;
}
.scn-translator-on-poem-structure .ink-spill {
  position: absolute; top: 60%; left: 30%; width: 8%; height: 6%;
  background: radial-gradient(circle, #2a1e14 0%, #1f1409 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.5);
  animation: tops-spill 20s ease-in-out infinite;
}
.scn-translator-on-poem-structure .compass {
  position: absolute; top: 35%; left: 65%; width: 10%; height: 10%;
  background: linear-gradient(135deg, #b8a088 0%, #8a7058 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: tops-compass 10s ease-in-out infinite alternate;
}
.scn-translator-on-poem-structure .ruler {
  position: absolute; top: 55%; left: 15%; width: 35%; height: 3%;
  background: linear-gradient(90deg, #c8b8a0 0%, #a89880 100%);
  border-radius: 4%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tops-ruler 22s ease-in-out infinite;
}
.scn-translator-on-poem-structure .book-closed {
  position: absolute; top: 10%; right: 8%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3e2a 100%);
  border-radius: 4% 8% 8% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-translator-on-poem-structure .pencil {
  position: absolute; top: 65%; left: 50%; width: 2%; height: 14%;
  background: linear-gradient(180deg, #d4b888 0%, #b89868 50%, #8a7050 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: tops-pencil 5s ease-in-out infinite alternate;
}
@keyframes tops-paper { 0%,100% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(4deg) scale(1.005); } }
@keyframes tops-spill { 0%,100% { opacity: 0.8; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.1); } }
@keyframes tops-compass { 0% { transform: rotate(0deg); } 100% { transform: rotate(15deg); } }
@keyframes tops-ruler { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(4px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes tops-pencil { 0% { transform: rotate(30deg); } 100% { transform: rotate(25deg); } }

/* Scene 4: penelope-and-suitors-poem */
.scn-penelope-and-suitors-poem {
  background:
    linear-gradient(180deg, #2a1e14 0%, #1a120c 40%, #0f0a06 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-penelope-and-suitors-poem .loom-frame {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 55%;
  background: linear-gradient(180deg, #5a3e2a 0%, #3e2a18 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
}
.scn-penelope-and-suitors-poem .loom-threads {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 45%;
  background: repeating-linear-gradient(0deg, #d4c0a8 0px, #d4c0a8 2px, transparent 2px, transparent 6px);
  mask-image: linear-gradient(180deg, transparent 10%, #000 30%, #000 70%, transparent 90%);
  border-radius: 2%;
  animation: psp-weave 12s linear infinite;
}
.scn-penelope-and-suitors-poem .figure-weaver {
  position: absolute; bottom: 12%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f1409 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.8);
  animation: psp-figure 6s ease-in-out infinite alternate;
}
.scn-penelope-and-suitors-poem .shuttle {
  position: absolute; bottom: 28%; left: 30%; width: 8%; height: 4%;
  background: linear-gradient(90deg, #8a7050 0%, #6a5030 100%);
  border-radius: 20%;
  animation: psp-shuttle 4s ease-in-out infinite alternate;
}
.scn-penelope-and-suitors-poem .lamp-glow {
  position: absolute; top: 15%; left: 65%; width: 18%; height: 22%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 80%);
  border-radius: 50%;
  filter: blur(12px);
  opacity: 0.6;
  animation: psp-glow 5s ease-in-out infinite alternate;
}
.scn-penelope-and-suitors-poem .lamp-base {
  position: absolute; top: 32%; left: 68%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3e2a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-penelope-and-suitors-poem .suitors-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, transparent 80%);
  pointer-events: none;
}
@keyframes psp-weave { 0% { background-position: 0 0; } 100% { background-position: 0 8px; } }
@keyframes psp-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes psp-shuttle { 0% { transform: translateX(0); } 100% { transform: translateX(30px); } }
@keyframes psp-glow { 0% { opacity: 0.5; transform: scale(0.95); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(1); } }

/* Scene: ulysses-chooses-home (tense, bright interior) */
.scn-ulysses-chooses-home {
  background: 
    linear-gradient(135deg, #3e2a1a 0%, #5a3a22 30%, #7a5030 60%, #5a3a22 100%),
    radial-gradient(ellipse at 70% 20%, #c08050 0%, transparent 60%);
}
.scn-ulysses-chooses-home .interior-wall {
  position: absolute; inset: 0 30% 0 0;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-right: 2px solid #2a1a10;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  animation: uch-wall 6s ease-in-out infinite alternate;
}
.scn-ulysses-chooses-home .window-frame {
  position: absolute; top: 15%; left: 5%; width: 35%; height: 55%;
  border: 8px solid #2a1a10;
  background: transparent;
  box-shadow: inset 0 0 40px rgba(255,220,180,0.3), 0 0 20px rgba(255,200,150,0.2);
}
.scn-ulysses-chooses-home .window-light {
  position: absolute; top: 15%; left: 5%; width: 35%; height: 55%;
  background: radial-gradient(ellipse at 50% 50%, #ffe0b0 0%, #ffcc80 40%, transparent 70%);
  opacity: 0.6;
  mix-blend-mode: screen;
  animation: uch-light 4s ease-in-out infinite alternate;
}
.scn-ulysses-chooses-home .table {
  position: absolute; bottom: 10%; left: 10%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(10deg);
}
.scn-ulysses-chooses-home .ulysses-silhouette {
  position: absolute; bottom: 18%; left: 35%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0804 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -5px 0 15px rgba(0,0,0,0.7);
  animation: uch-figure 3s ease-in-out infinite;
}
.scn-ulysses-chooses-home .shadow-goddess {
  position: absolute; bottom: 20%; left: 55%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.6;
  transform: scaleX(-1);
  animation: uch-goddess 5s ease-in-out infinite alternate;
}
.scn-ulysses-chooses-home .flicker-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, rgba(0,0,0,0) 0%, rgba(0,0,0,0.3) 60%, rgba(0,0,0,0.6) 100%);
  animation: uch-flicker 2s steps(2) infinite;
}
@keyframes uch-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes uch-light { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.3; transform: scale(0.95); } }
@keyframes uch-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(2px) rotate(0); } }
@keyframes uch-goddess { 0% { transform: scaleX(-1) translateY(0); } 100% { transform: scaleX(-1) translateY(-5px); } }
@keyframes uch-flicker { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }

/* Scene: ulysses-builds-raft (calm, dawn) */
.scn-ulysses-builds-raft {
  background:
    linear-gradient(180deg, #c8d8e8 0%, #e0e8f0 30%, #f8f0e8 60%, #c8b8a8 100%),
    radial-gradient(ellipse at 80% 20%, #ffe8d0 0%, transparent 60%);
}
.scn-ulysses-builds-raft .dawn-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a0b8d0 0%, #d0c0a0 50%, #f8e8c0 100%);
  opacity: 0.8;
  animation: ubr-sky 20s ease-in-out infinite alternate;
}
.scn-ulysses-builds-raft .sea-calina {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #80a0b0 0%, #6090a8 50%, #407090 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,40,60,0.3);
  animation: ubr-sea 10s ease-in-out infinite alternate;
}
.scn-ulysses-builds-raft .raft {
  position: absolute; bottom: 35%; left: 20%; width: 25%; height: 6%;
  background: linear-gradient(90deg, #5a3a20 0%, #7a5030 50%, #5a3a20 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.3);
  transform: rotate(-2deg);
  animation: ubr-raft 6s ease-in-out infinite;
}
.scn-ulysses-builds-raft .ulysses-raft {
  position: absolute; bottom: 38%; left: 25%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ubr-figure 5s ease-in-out infinite alternate;
}
.scn-ulysses-builds-raft .goddess-figure {
  position: absolute; bottom: 30%; left: 5%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #c8a888 0%, #b89878 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: ubr-goddess 8s ease-in-out infinite alternate;
}
.scn-ulysses-builds-raft .dawn-light-ray {
  position: absolute; top: 5%; left: 10%; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(255,230,180,0.4) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  animation: ubr-rays 12s ease-in-out infinite alternate;
}
.scn-ulysses-builds-raft .cloud-light {
  position: absolute; top: 15%; right: 20%; width: 20%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,230,200,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: ubr-cloud 30s linear infinite;
}
@keyframes ubr-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes ubr-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(0.97); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ubr-raft { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes ubr-figure { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes ubr-goddess { 0% { transform: translateY(0) scaleX(1); } 100% { transform: translateY(-4px) scaleX(0.9); } }
@keyframes ubr-rays { 0% { opacity: 0.4; transform: scale(1); } 100% { opacity: 0.7; transform: scale(1.1); } }
@keyframes ubr-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-30px); } }

/* Scene: calypso-sends-ulysses-off (calm, dawn) */
.scn-calypso-sends-ulysses-off {
  background:
    linear-gradient(180deg, #b0c4d8 0%, #d0d8e0 40%, #e8dcc8 70%, #c0a888 100%),
    radial-gradient(ellipse at 60% 40%, #ffe0c0 0%, transparent 50%);
}
.scn-calypso-sends-ulysses-off .dawn-sky-2 {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #90a8c0 0%, #d0c0a0 50%, #f0e0c0 100%);
  opacity: 0.85;
  animation: csu-sky 18s ease-in-out infinite alternate;
}
.scn-calypso-sends-ulysses-off .sea-2 {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7090a0 0%, #5080a0 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,30,50,0.2);
  animation: csu-sea 12s ease-in-out infinite alternate;
}
.scn-calypso-sends-ulysses-off .cliff {
  position: absolute; bottom: 30%; left: 5%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 5px 0 15px rgba(0,0,0,0.4);
}
.scn-calypso-sends-ulysses-off .calypso-figure {
  position: absolute; bottom: 55%; left: 10%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #c8a080 0%, #b09070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.9;
  animation: csu-goddess 10s ease-in-out infinite alternate;
}
.scn-calypso-sends-ulysses-off .raft-2 {
  position: absolute; bottom: 25%; left: 50%; width: 18%; height: 5%;
  background: linear-gradient(90deg, #5a3a20 0%, #7a5030 50%, #5a3a20 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.3);
  transform: rotate(3deg);
  animation: csu-raft 8s ease-in-out infinite;
}
.scn-calypso-sends-ulysses-off .away-ulysses {
  position: absolute; bottom: 28%; left: 55%; width: 8%; height: 16%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: csu-figure-away 6s ease-in-out infinite;
}
.scn-calypso-sends-ulysses-off .departing-wave {
  position: absolute; bottom: 22%; left: 45%; width: 30%; height: 4%;
  background: radial-gradient(ellipse, rgba(200,220,230,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: csu-wave 9s ease-in-out infinite alternate;
}
@keyframes csu-sky { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes csu-sea { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes csu-goddess { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }
@keyframes csu-raft { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes csu-figure-away { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.93); } 100% { transform: scaleY(1); } }
@keyframes csu-wave { 0% { opacity: 0.5; transform: scaleX(1); } 100% { opacity: 0.2; transform: scaleX(0.8); } }

/* Scene: neptune-sees-ulysses (tense, sunlit) */
.scn-neptune-sees-ulysses {
  background:
    linear-gradient(180deg, #a0b8d0 0%, #c0d0e0 30%, #e0d8c0 60%, #c0a880 100%),
    radial-gradient(ellipse at 70% 10%, #ffd080 0%, transparent 50%);
}
.scn-neptune-sees-ulysses .sunlit-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7090a0 0%, #4080a0 50%, #206080 100%);
  border-radius: 20% 80% 0 0 / 30% 60% 0 0;
  box-shadow: inset 0 30px 60px rgba(0,30,50,0.3);
  animation: nsu-sea 3s ease-in-out infinite alternate;
}
.scn-neptune-sees-ulysses .ship {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 8%;
  background: linear-gradient(90deg, #4a3020 0%, #6a4a30 50%, #4a3020 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.5);
  transform: rotate(-4deg);
  animation: nsu-ship 4s ease-in-out infinite;
}
.scn-neptune-sees-ulysses .neptune-figure {
  position: absolute; top: 5%; left: 15%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #2a4040 0%, #1a3030 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  clip-path: polygon(10% 0%, 90% 0%, 100% 60%, 80% 100%, 20% 100%, 0% 60%);
  box-shadow: 0 10px 30px rgba(0,0,0,0.5);
  animation: nsu-neptune 5s ease-in-out infinite alternate;
}
.scn-neptune-sees-ulysses .angry-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8090a0 0%, #a0a8b0 40%, #c0b8a0 100%);
  opacity: 0.7;
  mix-blend-mode: overlay;
  animation: nsu-angry 6s ease-in-out infinite alternate;
}
.scn-neptune-sees-ulysses .sea-shadow {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,30,60,0.5) 0%, transparent 60%);
  filter: blur(8px);
  animation: nsu-shadow 4s ease-in-out infinite alternate;
}
.scn-neptune-sees-ulysses .lightning-flash {
  position: absolute; top: 10%; left: 60%; width: 5%; height: 20%;
  background: linear-gradient(180deg, rgba(255,255,200,0.8) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 50% 20%, 80% 20%, 40% 40%, 60% 40%, 20% 100%, 10% 60%);
  opacity: 0;
  animation: nsu-lightning 2s steps(1) infinite;
}
.scn-neptune-sees-ulysses .storm-wave {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(90deg, rgba(80,120,140,0.4) 0%, rgba(60,100,120,0.2) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: nsu-wave-storm 3s ease-in-out infinite alternate;
}
@keyframes nsu-sea { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.04); } }
@keyframes nsu-ship { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes nsu-neptune { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(0.95) rotate(-2deg); } }
@keyframes nsu-angry { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes nsu-shadow { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.2); } }
@keyframes nsu-lightning { 0% { opacity: 0; } 10% { opacity: 1; } 20% { opacity: 0.3; } 100% { opacity: 0; } }
@keyframes nsu-wave-storm { 0% { transform: translateX(0) scaleY(1); } 100% { transform: translateX(-10px) scaleY(1.1); } }

.scn-footnote-alcinous-presents {
  background: linear-gradient(180deg, #2a241e 0%, #3b2e24 40%, #4c3a2e 100%),
              radial-gradient(ellipse at 50% 30%, #5c483a 0%, transparent 60%);
}
.scn-footnote-alcinous-presents .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(90deg, #3b2e24 0%, #4c3a2e 50%, #3b2e24 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.5);
  animation: fp-wall 12s ease-in-out infinite alternate;
}
.scn-footnote-alcinous-presents .table {
  position:absolute; bottom:20%; left:15%; right:15%; height:10%;
  background: linear-gradient(180deg, #6a4e3a 0%, #4a3520 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  transform-origin: center;
  animation: fp-table 8s ease-in-out infinite;
}
.scn-footnote-alcinous-presents .goblet {
  position:absolute; bottom:28%; left:50%; width:20px; height:30px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #b08050 0%, #8a6030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 0 10px rgba(200,160,100,0.3);
  animation: fp-goblet 6s ease-in-out infinite;
}
.scn-footnote-alcinous-presents .candle {
  position:absolute; bottom:30%; left:35%; width:8px; height:40px;
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b090 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom;
  animation: fp-candle 4s ease-in-out infinite alternate;
}
.scn-footnote-alcinous-presents .flame-glow {
  position:absolute; bottom:55%; left:35%; width:20px; height:30px;
  transform:translate(-50%,0);
  background: radial-gradient(circle, #ffcc80 0%, #ff9900 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: fp-glow 3s ease-in-out infinite alternate;
}
.scn-footnote-alcinous-presents .arm {
  position:absolute; bottom:24%; left:40%; width:12px; height:40px;
  background: linear-gradient(180deg, #4a3520 0%, #3a2510 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: top center;
  animation: fp-arm 8s ease-in-out infinite;
}
.scn-footnote-alcinous-presents .shadow {
  position:absolute; bottom:22%; left:30%; width:80px; height:20px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(10px);
  animation: fp-shadow 6s ease-in-out infinite;
}
@keyframes fp-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes fp-table {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.02); }
}
@keyframes fp-goblet {
  0%,100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
}
@keyframes fp-candle {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.05) translateY(-2px); }
  100% { transform: scaleY(0.95) translateY(1px); }
}
@keyframes fp-glow {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.8; transform: scale(0.9); }
}
@keyframes fp-arm {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(5deg) translateX(5px); }
  50% { transform: rotate(-5deg) translateX(-3px); }
  75% { transform: rotate(3deg) translateX(2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes fp-shadow {
  0%,100% { transform: scale(1); opacity: 0.4; }
  50% { transform: scale(0.9); opacity: 0.6; }
}

.scn-footnote-iliad-washing {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2420 40%, #3a3028 100%),
              radial-gradient(ellipse at 50% 60%, #4a3a30 0%, transparent 70%);
}
.scn-footnote-iliad-washing .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3a3028 0%, #2a2420 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
  animation: iw-floor 10s ease-in-out infinite alternate;
}
.scn-footnote-iliad-washing .basin {
  position:absolute; bottom:20%; left:50%; width:100px; height:50px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 15% 15% / 60% 60% 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: iw-basin 14s ease-in-out infinite;
}
.scn-footnote-iliad-washing .water {
  position:absolute; bottom:26%; left:50%; width:80px; height:30px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #4a6a7a 0%, #3a5a6a 100%);
  border-radius: 50% / 30% 30% 40% 40%;
  opacity: 0.7;
  animation: iw-water 6s ease-in-out infinite alternate;
}
.scn-footnote-iliad-washing .cloth {
  position:absolute; bottom:24%; left:45%; width:40px; height:20px;
  background: linear-gradient(180deg, #b0a090 0%, #907060 100%);
  border-radius: 10% 30% 20% 30%;
  transform-origin: left center;
  animation: iw-cloth 8s ease-in-out infinite;
}
.scn-footnote-iliad-washing .hand {
  position:absolute; bottom:30%; left:40%; width:16px; height:30px;
  background: linear-gradient(180deg, #4a3520 0%, #3a2510 100%);
  border-radius: 40% 30% 30% 40%;
  transform-origin: top center;
  animation: iw-hand 5s ease-in-out infinite;
}
.scn-footnote-iliad-washing .drops {
  position:absolute; bottom:32%; left:52%; width:4px; height:6px;
  background: radial-gradient(circle, #7a9aaa 0%, #4a6a7a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(100,150,180,0.5);
  animation: iw-drops 2s ease-in-out infinite;
}
.scn-footnote-iliad-washing .vignette {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 30%, transparent 40%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
  animation: iw-vig 18s ease-in-out infinite alternate;
}
@keyframes iw-floor {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes iw-basin {
  0%,100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
}
@keyframes iw-water {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes iw-cloth {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  75% { transform: translateX(2px) rotate(4deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes iw-hand {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-5px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes iw-drops {
  0%,100% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(10px) scale(0.5); opacity: 0; }
}
@keyframes iw-vig {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

.scn-footnote-other-islands {
  background: linear-gradient(180deg, #2a2a2a 0%, #3a3a3a 50%, #4a4a4a 100%),
              radial-gradient(ellipse at 50% 50%, #5a5a4a 0%, transparent 80%);
}
.scn-footnote-other-islands .parchment {
  position:absolute; bottom:10%; left:10%; right:10%; top:10%;
  background: linear-gradient(135deg, #c8b898 0%, #d8c8a8 40%, #b8a888 100%);
  border-radius: 5% / 3%;
  box-shadow: 0 8px 30px rgba(0,0,0,0.5), inset 0 0 40px rgba(0,0,0,0.1);
  transform: rotate(-2deg);
  animation: oi-parch 20s ease-in-out infinite alternate;
}
.scn-footnote-other-islands .sea {
  position:absolute; bottom:20%; left:20%; right:20%; top:30%;
  background: linear-gradient(180deg, #3a5a6a 0%, #2a4a5a 100%);
  border-radius: 10% / 20%;
  opacity: 0.7;
  animation: oi-sea 12s ease-in-out infinite alternate;
}
.scn-footnote-other-islands .island-a {
  position:absolute; bottom:35%; left:30%; width:50px; height:30px;
  background: linear-gradient(180deg, #4a6a3a 0%, #3a5a2a 100%);
  border-radius: 50% 60% 40% 50% / 60% 50% 50% 40%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
  transform: rotate(5deg);
  animation: oi-island-a 18s ease-in-out infinite;
}
.scn-footnote-other-islands .island-b {
  position:absolute; bottom:30%; right:25%; width:60px; height:25px;
  background: linear-gradient(180deg, #5a7a4a 0%, #4a6a3a 100%);
  border-radius: 60% 40% 50% 50% / 40% 50% 50% 60%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.3);
  transform: rotate(-10deg);
  animation: oi-island-b 22s ease-in-out infinite alternate;
}
.scn-footnote-other-islands .compass {
  position:absolute; top:15%; left:10%; width:50px; height:50px;
  background: radial-gradient(circle, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: oi-compass 30s linear infinite;
}
.scn-footnote-other-islands .line-horiz {
  position:absolute; top:45%; left:15%; right:15%; height:2px;
  background: linear-gradient(90deg, transparent 0%, #6a5a4a 50%, transparent 100%);
  animation: oi-line 8s ease-in-out infinite alternate;
}
.scn-footnote-other-islands .line-vert {
  position:absolute; left:55%; top:20%; bottom:20%; width:2px;
  background: linear-gradient(180deg, transparent 0%, #6a5a4a 50%, transparent 100%);
  animation: oi-line 10s ease-in-out infinite alternate;
}
.scn-footnote-other-islands .dot {
  position:absolute; bottom:40%; left:42%; width:6px; height:6px;
  background: #8a6a4a;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(138,106,74,0.6);
  animation: oi-dot 4s ease-in-out infinite;
}
@keyframes oi-parch {
  0%,100% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.01); }
}
@keyframes oi-sea {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.03); }
  100% { opacity: 0.7; transform: scaleY(0.98); }
}
@keyframes oi-island-a {
  0%,100% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(3px); }
}
@keyframes oi-island-b {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes oi-compass {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes oi-line {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes oi-dot {
  0%,100% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.5); opacity: 1; }
}

.scn-footnote-third-person {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%),
              radial-gradient(ellipse at 50% 40%, #4a4a5a 0%, transparent 70%);
}
.scn-footnote-third-person .backdrop {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: inset 0 -30px 60px rgba(0,0,0,0.5);
  animation: tp-backdrop 16s ease-in-out infinite alternate;
}
.scn-footnote-third-person .scroll {
  position:absolute; bottom:10%; left:15%; right:15%; top:30%;
  background: linear-gradient(135deg, #c8b898 0%, #e8d8b8 50%, #c8b898 100%);
  border-radius: 8% / 5%;
  box-shadow: 0 8px 30px rgba(0,0,0,0.4), inset 0 0 40px rgba(0,0,0,0.1);
  transform: rotate(2deg);
  animation: tp-scroll 12s ease-in-out infinite alternate;
}
.scn-footnote-third-person .figure-stand {
  position:absolute; bottom:35%; left:25%; width:18px; height:50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tp-stand 6s ease-in-out infinite;
}
.scn-footnote-third-person .figure-sit {
  position:absolute; bottom:30%; left:45%; width:22px; height:30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scaleY(0.6) translateY(10px);
  transform-origin: bottom center;
  animation: tp-sit 8s ease-in-out infinite alternate;
}
.scn-footnote-third-person .figure-point {
  position:absolute; bottom:32%; right:25%; width:18px; height:55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tp-point 10s ease-in-out infinite;
}
.scn-footnote-third-person .shadow-floor {
  position:absolute; bottom:0; left:10%; right:10%; height:10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 0 0 30% 30%;
  filter: blur(10px);
  animation: tp-shadow 6s ease-in-out infinite alternate;
}
@keyframes tp-backdrop {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes tp-scroll {
  0%,100% { transform: rotate(2deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.01); }
}
@keyframes tp-stand {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(3deg) translateX(2px); }
  50% { transform: rotate(-2deg) translateX(-1px); }
  75% { transform: rotate(4deg) translateX(1px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes tp-sit {
  0% { transform: scaleY(0.6) translateY(10px) rotate(0deg); }
  50% { transform: scaleY(0.65) translateY(8px) rotate(2deg); }
  100% { transform: scaleY(0.6) translateY(10px) rotate(-2deg); }
}
@keyframes tp-point {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-5px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes tp-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

/* River God Stills Waves — calm, overcast wide horizon */
.scn-river-god-stills-waves {
  background:
    linear-gradient(180deg, #5a6b7a 0%, #3a4a5a 40%, #2a3a4a 70%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 20%, #7a8b9a 0%, transparent 60%);
}
.scn-river-god-stills-waves .sky-rg {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a7b8a 0%, #4a5a6a 50%, #3a4a5a 100%);
  animation: rg-sky 14s ease-in-out infinite alternate;
}
.scn-river-god-stills-waves .river-rg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.3);
  animation: rg-river 10s ease-in-out infinite;
}
.scn-river-god-stills-waves .god-rg {
  position: absolute; bottom: 40%; left: 35%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: rg-god 6s ease-in-out infinite;
  filter: drop-shadow(0 8px 12px rgba(0,0,0,0.5));
}
.scn-river-god-stills-waves .waves-rg {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(90,110,130,0.4) 0%, rgba(50,70,90,0.2) 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: rg-waves 8s ease-in-out infinite alternate;
}
.scn-river-god-stills-waves .figure-rg {
  position: absolute; bottom: 10%; left: 60%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rg-figure 4s ease-in-out infinite;
}
.scn-river-god-stills-waves .mist-rg {
  position: absolute; top: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, rgba(100,120,140,0.3) 0%, transparent 100%);
  border-radius: 40%;
  filter: blur(12px);
  animation: rg-mist 20s linear infinite;
}
@keyframes rg-sky { 0% { opacity:0.8; background-position: 0 0; } 50% { opacity:1; background-position: 0 10%; } 100% { opacity:0.85; background-position: 0 0; } }
@keyframes rg-river { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } }
@keyframes rg-god { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(2deg); } }
@keyframes rg-waves { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-10px) scaleX(1.05); } 100% { transform: translateX(10px) scaleX(0.95); } }
@keyframes rg-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes rg-mist { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

/* Ulysses Considers His Plight — tense, dusk close-up */
.scn-ulysses-considers-his-plight {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #4a3a6e 60%, #3a2a4a 100%),
    radial-gradient(ellipse at 50% 80%, #5a4a6e 0%, transparent 70%);
}
.scn-ulysses-considers-his-plight .sky-up {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3a5e 0%, #2a2a4e 50%, #1a1a3e 100%);
  animation: up-sky 12s ease-in-out infinite alternate;
}
.scn-ulysses-considers-his-plight .rock-up {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: up-rock 9s ease-in-out infinite;
}
.scn-ulysses-considers-his-plight .figure-up {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: up-figure 5s ease-in-out infinite;
}
.scn-ulysses-considers-his-plight .water-up {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a3a5e 0%, #1a1a3e 100%);
  border-radius: 50% 40% 0 0 / 30% 20% 0 0;
  animation: up-water 7s ease-in-out infinite alternate;
}
.scn-ulysses-considers-his-plight .shadow-up {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(6px);
  animation: up-shadow 5s ease-in-out infinite;
}
.scn-ulysses-considers-his-plight .cloud-up {
  position: absolute; top: 10%; right: 15%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(50,50,70,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: up-cloud 30s linear infinite reverse;
}
@keyframes up-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes up-rock { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes up-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes up-water { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.9); } 100% { transform: scaleY(1.1); } }
@keyframes up-shadow { 0%,100% { transform: scaleX(1); opacity:0.7; } 50% { transform: scaleX(1.2); opacity:1; } }
@keyframes up-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-200px); } }

/* Ulysses Sleeps Under Bushes — calm, firelit close-up */
.scn-ulysses-sleeps-under-bushes {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 70%, #0a0500 100%),
    radial-gradient(ellipse at 50% 70%, #5a3a1a 0%, transparent 60%);
}
.scn-ulysses-sleeps-under-bushes .ground-us {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  animation: us-ground 10s ease-in-out infinite;
}
.scn-ulysses-sleeps-under-bushes .bush-left-us {
  position: absolute; bottom: 20%; left: 10%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 40% 50% 40%;
  filter: blur(2px);
  animation: us-bush 12s ease-in-out infinite alternate;
}
.scn-ulysses-sleeps-under-bushes .bush-right-us {
  position: absolute; bottom: 25%; right: 15%; width: 70px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 50% 40% 50%;
  filter: blur(2px);
  animation: us-bush 10s ease-in-out infinite alternate-reverse;
}
.scn-ulysses-sleeps-under-bushes .fire-glow-us {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d06030 0%, #a03010 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(200,80,30,0.4), 0 0 60px 30px rgba(200,80,30,0.2);
  animation: us-fire 3s ease-in-out infinite alternate;
}
.scn-ulysses-sleeps-under-bushes .figure-us {
  position: absolute; bottom: 15%; left: 40%; width: 22px; height: 34px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: us-figure 6s ease-in-out infinite;
}
.scn-ulysses-sleeps-under-bushes .olive-us {
  position: absolute; bottom: 28%; left: 35%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20%;
  animation: us-olive 4s ease-in-out infinite;
}
.scn-ulysses-sleeps-under-bushes .ember-us {
  position: absolute; bottom: 33%; left: 48%; width: 4px; height: 4px;
  background: #d06030;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,80,30,0.8);
  animation: us-ember 2s ease-in-out infinite;
}
@keyframes us-ground { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } }
@keyframes us-bush { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.05) rotate(2deg); } 100% { transform: scaleX(0.95) rotate(-2deg); } }
@keyframes us-fire { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.9; } }
@keyframes us-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes us-olive { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }
@keyframes us-ember { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.3); } }

/* Minerva Goes to Phaeacians — calm, bright interior */
.scn-minerva-goes-to-phaeacians {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 30%, #b8a88c 60%, #9c8c70 100%),
    radial-gradient(ellipse at 50% 50%, #f0e4d0 0%, transparent 70%);
}
.scn-minerva-goes-to-phaeacians .column-left-mg {
  position: absolute; top: 10%; left: 15%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #c8b898 0%, #e0d0b0 50%, #c8b898 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.1);
  animation: mg-column 8s ease-in-out infinite alternate;
}
.scn-minerva-goes-to-phaeacians .column-right-mg {
  position: absolute; top: 10%; right: 15%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #c8b898 0%, #e0d0b0 50%, #c8b898 100%);
  border-radius: 4px;
  box-shadow: -2px 0 8px rgba(0,0,0,0.1);
  animation: mg-column 8s ease-in-out infinite alternate-reverse;
}
.scn-minerva-goes-to-phaeacians .floor-mg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #b8a88c 0%, #8c7c60 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  animation: mg-floor 12s ease-in-out infinite;
}
.scn-minerva-goes-to-phaeacians .ceiling-mg {
  position: absolute; top: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  animation: mg-ceiling 10s ease-in-out infinite alternate;
}
.scn-minerva-goes-to-phaeacians .figure-mg {
  position: absolute; bottom: 15%; left: 45%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a88c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mg-figure 6s ease-in-out infinite;
  filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.2));
}
.scn-minerva-goes-to-phaeacians .light-mg {
  position: absolute; top: 15%; left: 30%; right: 30%; height: 50%;
  background: linear-gradient(180deg, rgba(255,240,220,0.3) 0%, transparent 100%);
  border-radius: 40%;
  filter: blur(10px);
  animation: mg-light 6s ease-in-out infinite alternate;
}
.scn-minerva-goes-to-phaeacians .veil-mg {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(180,160,140,0.1) 100%);
  pointer-events: none;
  animation: mg-veil 15s linear infinite;
}
@keyframes mg-column { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.02); opacity:1; } 100% { transform: scaleY(0.98); opacity:0.9; } }
@keyframes mg-floor { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } }
@keyframes mg-ceiling { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1.05); } }
@keyframes mg-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes mg-light { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes mg-veil { 0% { opacity:0; } 50% { opacity:0.2; } 100% { opacity:0; } }

.scn-ulysses-rejoices {
  background:
    linear-gradient(180deg, #d48040 0%, #b06020 30%, #8a4518 60%, #3a1a08 100%),
    radial-gradient(ellipse at 50% 20%, #f0b060 0%, #d48040 50%, transparent 70%);
}
.scn-ulysses-rejoices .bg-warm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0d0a0 0%, #d48040 60%, transparent 100%);
  animation: ujr-sky 12s ease-in-out infinite alternate;
}
.scn-ulysses-rejoices .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a3018 0%, #2a1508 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-ulysses-rejoices .column-left {
  position: absolute; bottom: 25%; left: 18%; width: 20px; height: 55%;
  background: linear-gradient(90deg, #c09060 0%, #a07040 50%, #704020 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
}
.scn-ulysses-rejoices .column-right {
  position: absolute; bottom: 25%; right: 18%; width: 20px; height: 55%;
  background: linear-gradient(90deg, #c09060 0%, #a07040 50%, #704020 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -2px 0 6px rgba(0,0,0,0.4);
}
.scn-ulysses-rejoices .figure-prayer {
  position: absolute; bottom: 24%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0a05 0%, #0d0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px rgba(255,200,100,0.3);
  animation: ujr-pray 6s ease-in-out infinite;
}
.scn-ulysses-rejoices .light-beam {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, rgba(255,220,180,0.4) 0%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%);
  animation: ujr-beam 8s ease-in-out infinite alternate;
  filter: blur(2px);
}
.scn-ulysses-rejoices .glow-orb {
  position: absolute; top: 24%; left: 48%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffe0a0 0%, #d48040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,100,0.6);
  animation: ujr-orb 4s ease-in-out infinite alternate;
}

@keyframes ujr-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ujr-pray { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(-4deg) translateY(-2px); } 60% { transform: translateX(-50%) rotate(4deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ujr-beam { 0% { opacity: 0.3; transform: scaleY(0.8); } 50% { opacity: 0.6; transform: scaleY(1.2); } 100% { opacity: 0.4; transform: scaleY(0.9); } }
@keyframes ujr-orb { 0% { opacity: 0.6; transform: scale(0.9); box-shadow: 0 0 20px 5px rgba(255,200,100,0.4); } 50% { opacity: 1; transform: scale(1.1); box-shadow: 0 0 40px 15px rgba(255,200,100,0.8); } 100% { opacity: 0.7; transform: scale(0.95); box-shadow: 0 0 25px 8px rgba(255,200,100,0.5); } }

/* ulysses-given-bed */
.scn-ulysses-given-bed {
  background:
    linear-gradient(180deg, #1a1428 0%, #2a1e38 30%, #1a1220 70%, #0a0510 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a48 0%, transparent 70%);
}
.scn-ulysses-given-bed .bg-dim {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1e38 0%, transparent 100%);
  animation: ugb-bg 15s ease-in-out infinite alternate;
}
.scn-ulysses-given-bed .wall-shadows {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-ulysses-given-bed .bed-frame {
  position: absolute; bottom: 20%; left: 50%; width: 110px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-ulysses-given-bed .coverlet-red {
  position: absolute; bottom: 22%; left: 50%; width: 90px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a04628 0%, #702240 100%);
  border-radius: 4px;
  box-shadow: 0 0 12px 2px rgba(160,70,40,0.3);
  animation: ugb-cover 8s ease-in-out infinite alternate;
}
.scn-ulysses-given-bed .pillow {
  position: absolute; bottom: 33%; left: 55%; width: 22px; height: 14px;
  background: radial-gradient(ellipse, #b8a090 0%, #807060 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-ulysses-given-bed .torch-glow {
  position: absolute; bottom: 35%; right: 10%; width: 30px; height: 50px;
  background: radial-gradient(circle at 50% 80%, #ffb060 0%, #c08040 30%, transparent 70%);
  filter: blur(3px);
  animation: ugb-torch 4s ease-in-out infinite alternate;
}
.scn-ulysses-given-bed .chair-silhouette {
  position: absolute; bottom: 20%; left: 20%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
}

@keyframes ugb-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ugb-cover { 0% { opacity: 0.8; transform: translateX(-50%) scaleX(1) } 50% { opacity: 1; transform: translateX(-50%) scaleX(1.05) } 100% { opacity: 0.85; transform: translateX(-50%) scaleX(0.98) } }
@keyframes ugb-torch { 0% { opacity: 0.5; transform: scaleY(0.9); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: 0.6; transform: scaleY(0.95); } }

/* dawn-assembly-and-games */
.scn-dawn-assembly-and-games {
  background:
    linear-gradient(180deg, #f0c8a0 0%, #e8a880 30%, #c89070 60%, #907060 100%),
    radial-gradient(ellipse at 50% 0%, #ffdcc0 0%, #f0c8a0 50%, transparent 70%);
}
.scn-dawn-assembly-and-games .dawn-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffd8b0 0%, #f0b090 40%, #c89070 100%);
  animation: dag-sky 20s ease-in-out infinite alternate;
}
.scn-dawn-assembly-and-games .sea {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #80a0b0 0%, #607080 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 4px 16px rgba(0,0,0,0.2);
  animation: dag-sea 30s ease-in-out infinite alternate;
}
.scn-dawn-assembly-and-games .ships {
  position: absolute; bottom: 40%; left: 30%; width: 60px; height: 30px;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a10 100%);
  clip-path: polygon(0% 50%, 10% 0%, 70% 0%, 100% 40%, 100% 70%, 50% 80%, 0% 70%);
  animation: dag-ship 12s ease-in-out infinite;
}
.scn-dawn-assembly-and-games .shore {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #b09060 0%, #807040 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-dawn-assembly-and-games .stone-seat {
  position: absolute; bottom: 26%; left: 50%; width: 80px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.scn-dawn-assembly-and-games .figure-alcinous {
  position: absolute; bottom: 22%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1620 0%, #0d0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dag-alc 8s ease-in-out infinite alternate;
}
.scn-dawn-assembly-and-games .figure-ulysses {
  position: absolute; bottom: 22%; left: 62%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dag-ulys 8s ease-in-out infinite alternate 2s;
}
.scn-dawn-assembly-and-games .light-rays {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(135deg, rgba(255,220,180,0.3) 0%, transparent 70%);
  clip-path: polygon(30% 0%, 70% 0%, 90% 100%, 10% 100%);
  animation: dag-rays 12s ease-in-out infinite alternate;
  filter: blur(3px);
}

@keyframes dag-sky { 0% { opacity: 0.7; background-position: 0 0; } 50% { opacity: 1; background-position: 0 10%; } 100% { opacity: 0.8; background-position: 0 5%; } }
@keyframes dag-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes dag-ship { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(2deg); } 60% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dag-alc { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-2deg) translateY(-1px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dag-ulys { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(2deg) translateY(-1px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dag-rays { 0% { opacity: 0.2; transform: scaleY(0.8); } 50% { opacity: 0.5; transform: scaleY(1.2); } 100% { opacity: 0.3; transform: scaleY(0.9); } }

/* crowd-gathers */
.scn-crowd-gathers {
  background:
    linear-gradient(180deg, #f0c8a0 0%, #e0a880 30%, #b88868 60%, #705848 100%),
    radial-gradient(ellipse at 50% 0%, #ffd8b0 0%, #f0c8a0 50%, transparent 70%);
}
.scn-crowd-gathers .crowd-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffd8b0 0%, #f0b888 40%, #d09878 100%);
  animation: cgr-sky 18s ease-in-out infinite alternate;
}
.scn-crowd-gathers .crowd-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b09060 0%, #806848 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,0.3);
}
.scn-crowd-gathers .crowd-bodies-1 {
  position: absolute; bottom: 15%; left: 5%; width: 30%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, rgba(30,20,10,0.5) 0%, transparent 70%);
  filter: blur(3px);
  animation: cgr-crowd1 20s ease-in-out infinite alternate;
}
.scn-crowd-gathers .crowd-bodies-2 {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 22%;
  background: radial-gradient(ellipse at 50% 100%, rgba(20,14,8,0.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: cgr-crowd2 25s ease-in-out infinite alternate 3s;
}
.scn-crowd-gathers .crowd-bodies-3 {
  position: absolute; bottom: 12%; right: 5%; width: 25%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(40,28,18,0.4) 0%, transparent 70%);
  filter: blur(5px);
  animation: cgr-crowd3 22s ease-in-out infinite alternate 5s;
}
.scn-crowd-gathers .figure-ulysses-center {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(200,150,100,0.4);
  animation: cgr-ulys 4s ease-in-out infinite alternate;
}
.scn-crowd-gathers .divine-glint {
  position: absolute; top: 28%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffe0b0 0%, #ffc080 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,192,128,0.6);
  animation: cgr-glint 6s ease-in-out infinite alternate;
}
.scn-crowd-gathers .light-dawn-rays {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 50%;
  background: linear-gradient(135deg, rgba(255,220,180,0.35) 0%, transparent 80%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: cgr-rays 14s ease-in-out infinite alternate;
  filter: blur(4px);
}

@keyframes cgr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cgr-crowd1 { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.05); } 100% { opacity: 0.6; transform: scaleX(0.98); } }
@keyframes cgr-crowd2 { 0% { opacity: 0.5; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.08); } 100% { opacity: 0.6; transform: scaleY(0.97); } }
@keyframes cgr-crowd3 { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.03); } 100% { opacity: 0.5; transform: scaleX(0.96); } }
@keyframes cgr-ulys { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(-2deg) scaleY(1.02); } 70% { transform: translateX(-50%) rotate(2deg) scaleY(0.98); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes cgr-glint { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes cgr-rays { 0% { opacity: 0.2; transform: scaleY(0.8); } 50% { opacity: 0.5; transform: scaleY(1.15); } 100% { opacity: 0.3; transform: scaleY(0.85); } }

.scn-demodocus-sings-of-aphrodite-and-ares {
  background: linear-gradient(180deg, #c8a060 0%, #a07848 35%, #7a5030 100%),
              radial-gradient(ellipse at 50% 20%, #e8c880 0%, transparent 70%);
}
.scn-demodocus-sings-of-aphrodite-and-ares .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c8a060 0%, #b08850 60%, #906838 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.2);
}
.scn-demodocus-sings-of-aphrodite-and-ares .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #785030 0%, #503020 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-demodocus-sings-of-aphrodite-and-ares .bard-perch {
  position: absolute; bottom: 32%; left: 10%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
}
.scn-demodocus-sings-of-aphrodite-and-ares .bard-figure {
  position: absolute; bottom: 35%; left: 8%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #d4b080 0%, #a07848 50%, #785030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-bard 3s ease-in-out infinite alternate;
}
.scn-demodocus-sings-of-aphrodite-and-ares .lyre {
  position: absolute; bottom: 36%; left: 16%; width: 20px; height: 28px;
  background: radial-gradient(ellipse at 50% 30%, #d4a040 0%, #a07820 60%, #604010 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 60% 60%;
  transform: rotate(15deg);
  animation: ds-lyre 2s ease-in-out infinite alternate;
}
.scn-demodocus-sings-of-aphrodite-and-ares .couch {
  position: absolute; bottom: 25%; right: 12%; width: 80px; height: 24px;
  background: linear-gradient(180deg, #a06838 0%, #684020 100%);
  border-radius: 20% 20% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-demodocus-sings-of-aphrodite-and-ares .veil-lover {
  position: absolute; bottom: 30%; right: 14%; width: 16px; height: 30px;
  background: linear-gradient(135deg, #d47040 0%, #b05830 60%, #804020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-veil-a 4s ease-in-out infinite;
}
.scn-demodocus-sings-of-aphrodite-and-ares .veil-mistress {
  position: absolute; bottom: 28%; right: 28%; width: 14px; height: 32px;
  background: linear-gradient(135deg, #e8b880 0%, #c89860 50%, #a06838 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-veil-b 4s ease-in-out infinite alternate;
}
.scn-demodocus-sings-of-aphrodite-and-ares .flame {
  position: absolute; bottom: 20%; left: 50%; width: 8px; height: 14px;
  background: radial-gradient(ellipse at 50% 30%, #ffd060 0%, #f0a030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,160,48,.6), 0 0 60px 20px rgba(240,160,48,.3);
  animation: ds-flame 0.8s ease-in-out infinite alternate;
}
@keyframes ds-bard { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ds-lyre { 0% { transform: rotate(12deg) scaleY(1) } 50% { transform: rotate(18deg) scaleY(1.04) } 100% { transform: rotate(14deg) scaleY(1) } }
@keyframes ds-veil-a { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 50% { transform: translateX(4px) translateY(-2px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes ds-veil-b { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(-3px) translateY(-1px) rotate(3deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes ds-flame { 0% { transform: scaleY(0.8) scaleX(1) } 50% { transform: scaleY(1.2) scaleX(0.9) } 100% { transform: scaleY(0.9) scaleX(1.05) } }

.scn-venus-and-mars-caught {
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 40%, #2a1008 100%),
              radial-gradient(ellipse at 50% 40%, #805030 0%, transparent 70%);
}
.scn-venus-and-mars-caught .chamber {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(90,58,42,.3) 0%, transparent 50%), linear-gradient(135deg, #3a2010 0%, #2a1008 100%);
}
.scn-venus-and-mars-caught .bed-frame {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%); width: 120px; height: 50px;
  background: linear-gradient(180deg, #604020 0%, #402010 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
}
.scn-venus-and-mars-caught .net-left {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 60px;
  background: repeating-linear-gradient(45deg, transparent, transparent 4px, rgba(180,160,120,.3) 4px, rgba(180,160,120,.3) 6px),
              repeating-linear-gradient(-45deg, transparent, transparent 4px, rgba(180,160,120,.25) 4px, rgba(180,160,120,.25) 6px);
  border-radius: 30%;
  transform: rotate(-10deg);
  animation: vm-net 5s ease-in-out infinite alternate;
}
.scn-venus-and-mars-caught .net-right {
  position: absolute; bottom: 20%; right: 30%; width: 50px; height: 60px;
  background: repeating-linear-gradient(45deg, transparent, transparent 4px, rgba(180,160,120,.3) 4px, rgba(180,160,120,.3) 6px),
              repeating-linear-gradient(-45deg, transparent, transparent 4px, rgba(180,160,120,.25) 4px, rgba(180,160,120,.25) 6px);
  border-radius: 30%;
  transform: rotate(10deg);
  animation: vm-net 5s ease-in-out infinite alternate-reverse;
}
.scn-venus-and-mars-caught .figure-mars {
  position: absolute; bottom: 22%; left: 38%; width: 28px; height: 44px;
  background: linear-gradient(180deg, #b07048 0%, #804828 60%, #503018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vm-mars 3s ease-in-out infinite alternate;
}
.scn-venus-and-mars-caught .figure-venus {
  position: absolute; bottom: 20%; right: 38%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #e0b080 0%, #c09060 50%, #906038 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vm-venus 3s ease-in-out infinite alternate;
}
.scn-venus-and-mars-caught .tangle {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%); width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,160,120,.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: vm-tangle 4s ease-in-out infinite;
}
.scn-venus-and-mars-caught .shadow-cast {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: vm-shadow 6s ease-in-out infinite alternate;
}
@keyframes vm-net { 0% { transform: rotate(-10deg) scaleY(1) } 50% { transform: rotate(0) scaleY(1.05) } 100% { transform: rotate(10deg) scaleY(1) } }
@keyframes vm-mars { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes vm-venus { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-3px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes vm-tangle { 0% { opacity: .4; transform: translateX(-50%) scaleY(1) } 50% { opacity: .8; transform: translateX(-50%) scaleY(1.3) } 100% { opacity: .5; transform: translateX(-50%) scaleY(1) } }
@keyframes vm-shadow { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .6 } }

.scn-vulcan-shouts-to-gods {
  background: linear-gradient(180deg, #603010 0%, #401808 50%, #200800 100%),
              radial-gradient(ellipse at 50% 60%, #804020 0%, transparent 70%);
}
.scn-vulcan-shouts-to-gods .forge-glow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, transparent 0%, #702010 40%, #500808 100%),
              radial-gradient(ellipse at 30% 80%, #d06030 0%, transparent 50%);
  animation: vs-glow 4s ease-in-out infinite alternate;
}
.scn-vulcan-shouts-to-gods .vulcan-body {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%); width: 54px; height: 70px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3020 60%, #2a1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: vs-body 2s ease-in-out infinite alternate;
}
.scn-vulcan-shouts-to-gods .vulcan-arm-up {
  position: absolute; bottom: 38%; left: 44%; width: 14px; height: 36px;
  background: linear-gradient(135deg, #5a4030 0%, #3a2818 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 60% 60%;
  transform-origin: bottom center;
  transform: rotate(-40deg);
  animation: vs-arm-up 1.5s ease-in-out infinite alternate;
}
.scn-vulcan-shouts-to-gods .vulcan-arm-down {
  position: absolute; bottom: 28%; left: 56%; width: 12px; height: 30px;
  background: linear-gradient(225deg, #5a4030 0%, #3a2818 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 60% 60%;
  transform-origin: top center;
  transform: rotate(30deg);
  animation: vs-arm-down 2s ease-in-out infinite alternate;
}
.scn-vulcan-shouts-to-gods .anvil {
  position: absolute; bottom: 4%; left: 30%; width: 36px; height: 20px;
  background: linear-gradient(180deg, #706060 0%, #504040 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: rotate(-8deg);
}
.scn-vulcan-shouts-to-gods .sparks-1 {
  position: absolute; bottom: 18%; left: 34%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffd060 0%, #f08020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #f08020;
  animation: vs-spark-a 0.4s ease-in-out infinite alternate;
}
.scn-vulcan-shouts-to-gods .sparks-2 {
  position: absolute; bottom: 22%; left: 28%; width: 3px; height: 3px;
  background: radial-gradient(circle, #ffd060 0%, #f08020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px #f08020;
  animation: vs-spark-b 0.6s ease-in-out infinite alternate;
}
.scn-vulcan-shouts-to-gods .doorway-light {
  position: absolute; top: 0; left: 20%; right: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,180,120,.3) 0%, transparent 60%);
  animation: vs-doorlight 3s ease-in-out infinite alternate;
}
@keyframes vs-glow { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes vs-body { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes vs-arm-up { 0% { transform: rotate(-35deg) } 50% { transform: rotate(-50deg) } 100% { transform: rotate(-38deg) } }
@keyframes vs-arm-down { 0% { transform: rotate(25deg) } 50% { transform: rotate(40deg) } 100% { transform: rotate(28deg) } }
@keyframes vs-spark-a { 0% { transform: translateY(0) scale(1); opacity: 1 } 50% { transform: translateY(-10px) scale(0.8); opacity: .7 } 100% { transform: translateY(0) scale(1); opacity: 1 } }
@keyframes vs-spark-b { 0% { transform: translateY(0) scale(1); opacity: .8 } 50% { transform: translateY(-8px) scale(0.7); opacity: .5 } 100% { transform: translateY(0) scale(1); opacity: .8 } }
@keyframes vs-doorlight { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }

.scn-gods-laugh {
  background: linear-gradient(180deg, #c8a860 0%, #a88048 40%, #805830 100%),
              radial-gradient(ellipse at 50% 30%, #e0c080 0%, transparent 70%);
}
.scn-gods-laugh .hall-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c8a860 0%, #b09050 50%, #907040 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.15);
}
.scn-gods-laugh .door-frame {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 70%;
  background: linear-gradient(135deg, #604020 0%, #402010 50%, #301008 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,.3);
  clip-path: polygon(5% 0%, 95% 0%, 100% 100%, 0% 100%);
}
.scn-gods-laugh .god-left {
  position: absolute; bottom: 22%; left: 18%; width: 30px; height: 52px;
  background: linear-gradient(180deg, #d8b880 0%, #b08048 60%, #805030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gl-laugh-left 2s ease-in-out infinite;
}
.scn-gods-laugh .god-right {
  position: absolute; bottom: 22%; right: 18%; width: 30px; height: 52px;
  background: linear-gradient(180deg, #c8a068 0%, #a07038 60%, #705028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gl-laugh-right 2.2s ease-in-out infinite alternate;
}
.scn-gods-laugh .god-center {
  position: absolute; bottom: 26%; left: 50%; transform: translateX(-50%); width: 34px; height: 56px;
  background: linear-gradient(180deg, #e8c890 0%, #c8a068 50%, #a07838 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.2);
  animation: gl-laugh-center 2.5s ease-in-out infinite;
}
.scn-gods-laugh .god-apollo {
  position: absolute; bottom: 20%; left: 62%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #f0d8a0 0%, #d0b070 60%, #b09050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gl-apollo 1.8s ease-in-out infinite alternate;
}
.scn-gods-laugh .laughter-waves {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 40%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,180,100,.2) 0%, transparent 50%),
              radial-gradient(ellipse at 70% 50%, rgba(200,180,100,.15) 0%, transparent 50%);
  animation: gl-waves 3s ease-in-out infinite alternate;
}
.scn-gods-laugh .warm-haze {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(240,210,140,.2) 0%, transparent 60%);
  animation: gl-haze 6s ease-in-out infinite;
}
@keyframes gl-laugh-left { 0% { transform: translateY(0) rotate(-2deg) scaleX(1) } 30% { transform: translateY(-6px) rotate(-5deg) scaleX(1.08) } 70% { transform: translateY(-3px) rotate(2deg) scaleX(0.95) } 100% { transform: translateY(0) rotate(0) scaleX(1) } }
@keyframes gl-laugh-right { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-8px) rotate(5deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes gl-laugh-center { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 40% { transform: translateX(-50%) translateY(-8px) rotate(-3deg) } 80% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes gl-apollo { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-7px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes gl-waves { 0% { opacity: .3; transform: scaleY(1) } 50% { opacity: .7; transform: scaleY(1.2) } 100% { opacity: .4; transform: scaleY(1) } }
@keyframes gl-haze { 0% { opacity: .4 } 50% { opacity: .8 } 100% { opacity: .5 } }

/* Scene: ulysses-tells-of-landing (tense, bright-interior) */
.scn-ulysses-tells-of-landing {
  background: linear-gradient(180deg, #c9a87c 0%, #a67b4b 50%, #7a5530 100%),
              radial-gradient(ellipse at 50% 70%, #f5d7a0 0%, transparent 60%);
}
.scn-ulysses-tells-of-landing .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #b38b5a, #d4b08a 40%, #b38b5a); opacity: 0.8;
}
.scn-ulysses-tells-of-landing .col-left {
  position: absolute; left: 8%; top: 20%; bottom: 10%; width: 8%;
  background: linear-gradient(180deg, #8b6f45, #5a4528);
  border-radius: 10% / 20%; box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
  animation: utl-col 6s ease-in-out infinite alternate;
}
.scn-ulysses-tells-of-landing .col-right {
  position: absolute; right: 8%; top: 20%; bottom: 10%; width: 8%;
  background: linear-gradient(180deg, #8b6f45, #5a4528);
  border-radius: 10% / 20%; box-shadow: inset 4px 0 8px rgba(0,0,0,0.3);
  animation: utl-col 6s ease-in-out infinite alternate-reverse;
}
.scn-ulysses-tells-of-landing .hearth {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #ff9440 0%, #cc5500 40%, transparent 70%);
  border-radius: 50% 50% 0 0; opacity: 0.6;
  animation: utl-fire 3s ease-in-out infinite alternate;
}
.scn-ulysses-tells-of-landing .figure {
  position: absolute; bottom: 22%; left: 45%; width: 14%; height: 36%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: utl-figure 5s ease-in-out infinite;
}
.scn-ulysses-tells-of-landing .shadow {
  position: absolute; bottom: 18%; left: 42%; width: 20%; height: 4%;
  background: rgba(0,0,0,0.3); border-radius: 50%;
  filter: blur(6px); animation: utl-shadow 5s ease-in-out infinite;
}
.scn-ulysses-tells-of-landing .spark {
  position: absolute; bottom: 40%; left: 48%; width: 2%; height: 2%;
  background: #ffbb66; border-radius: 50%;
  box-shadow: 0 0 8px 4px #ffaa44;
  animation: utl-spark 1.5s linear infinite;
}
@keyframes utl-col { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes utl-fire { 0% { opacity: 0.5; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.1); } 100% { opacity: 0.6; transform: scaleY(0.95); } }
@keyframes utl-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2%) rotate(2deg); } 60% { transform: translateX(-1%) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes utl-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.2); opacity: 0.2; } 100% { transform: scaleX(0.9); opacity: 0.4; } }
@keyframes utl-spark { 0% { transform: translate(0,0) scale(1); opacity: 1; } 50% { transform: translate(5%, -10%) scale(0.5); opacity: 0.5; } 100% { transform: translate(10%, -20%) scale(0); opacity: 0; } }

/* Scene: alcinous-comments (warm, bright-interior) */
.scn-alcinous-comments {
  background: linear-gradient(180deg, #d4b28c 0%, #b8946a 40%, #9a7a52 100%),
              radial-gradient(ellipse at 30% 80%, #f0d5a8 0%, transparent 70%);
}
.scn-alcinous-comments .bg-hall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #c1a07a, #dcc4a6 50%, #c1a07a);
  opacity: 0.6;
}
.scn-alcinous-comments .throne {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #8b6f45, #5a4528);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.2);
  animation: alc-throne 8s ease-in-out infinite alternate;
}
.scn-alcinous-comments .king {
  position: absolute; bottom: 22%; left: 40%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #c8553d 0%, #7a3a2a 50%, #4a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: alc-king 6s ease-in-out infinite;
}
.scn-alcinous-comments .window {
  position: absolute; top: 15%; right: 10%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at center, #ffe0a0 0%, #e8c080 70%, transparent 100%);
  border: 4px solid #a08050; border-radius: 10%;
  box-shadow: inset 0 0 20px #ffe0a0;
  animation: alc-window 12s ease-in-out infinite alternate;
}
.scn-alcinous-comments .lightbeam {
  position: absolute; top: 30%; right: 15%; width: 15%; height: 50%;
  background: linear-gradient(180deg, rgba(255,224,160,0.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: alc-beam 8s ease-in-out infinite alternate;
}
.scn-alcinous-comments .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #a08050 0px, #a08050 4%, #c0a070 4%, #c0a070 8%);
  opacity: 0.4;
}
@keyframes alc-throne { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes alc-king { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1%) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-1%) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes alc-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes alc-beam { 0% { opacity: 0.3; transform: skewX(0deg); } 50% { opacity: 0.6; transform: skewX(3deg); } 100% { opacity: 0.4; transform: skewX(-2deg); } }

/* Scene: ulysses-defends-nausicaa (warm, bright-interior) */
.scn-ulysses-defends-nausicaa {
  background: linear-gradient(180deg, #dcc4a6 0%, #c1a07a 50%, #a6845a 100%),
              radial-gradient(ellipse at 50% 90%, #f0d5a8 0%, transparent 60%);
}
.scn-ulysses-defends-nausicaa .wall-drapes {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #b08060, #d4b090 40%, #b08060);
  clip-path: polygon(0 0, 100% 0, 100% 80%, 85% 85%, 70% 80%, 50% 90%, 30% 80%, 15% 85%, 0 80%);
  opacity: 0.5;
  animation: udn-drape 10s ease-in-out infinite alternate;
}
.scn-ulysses-defends-nausicaa .ulysses {
  position: absolute; bottom: 22%; left: 30%; width: 16%; height: 38%;
  background: linear-gradient(180deg, #4a3020, #2a1a10);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: udn-bow 4s ease-in-out infinite;
}
.scn-ulysses-defends-nausicaa .nausicaa {
  position: absolute; bottom: 24%; right: 30%; width: 14%; height: 36%;
  background: linear-gradient(180deg, #b87878 0%, #7a4a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: udn-stand 6s ease-in-out infinite;
}
.scn-ulysses-defends-nausicaa .brazier {
  position: absolute; bottom: 20%; left: 48%; width: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 30%, #ff8844 0%, #cc4400 50%, transparent 100%);
  border-radius: 50% 50% 0 0;
  animation: udn-braze 3s ease-in-out infinite alternate;
}
.scn-ulysses-defends-nausicaa .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #a08050, #6a5028);
}
.scn-ulysses-defends-nausicaa .pillar {
  position: absolute; bottom: 20%; left: 20%; width: 4%; height: 70%;
  background: linear-gradient(180deg, #c0a070, #8b6f45);
  border-radius: 10%; box-shadow: 4px 0 12px rgba(0,0,0,0.2);
}
@keyframes udn-drape { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes udn-bow { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 25% { transform: translateX(2%) rotate(5deg) scaleY(0.95); } 50% { transform: translateX(0) rotate(0deg) scaleY(1); } 75% { transform: translateX(-2%) rotate(-3deg) scaleY(0.95); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes udn-stand { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(1%) rotate(2deg); } 60% { transform: translateX(-1%) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes udn-braze { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: 0.7; transform: scaleY(0.9); } }

/* Scene: alcinous-offers-marriage (warm, bright-interior) */
.scn-alcinous-offers-marriage {
  background: linear-gradient(180deg, #b8946a 0%, #d4b28c 40%, #e8c8a0 100%),
              radial-gradient(ellipse at 50% 60%, #f0d5a8 0%, transparent 70%);
}
.scn-alcinous-offers-marriage .bg-gold {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #e8c8a0 0%, #c1a07a 80%);
  opacity: 0.3;
}
.scn-alcinous-offers-marriage .king-left {
  position: absolute; bottom: 20%; left: 25%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #702243 0%, #4a1020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aom-king 8s ease-in-out infinite alternate;
}
.scn-alcinous-offers-marriage .ulysses-right {
  position: absolute; bottom: 20%; right: 25%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aom-ulysses 8s ease-in-out infinite alternate-reverse;
}
.scn-alcinous-offers-marriage .pedestal {
  position: absolute; bottom: 22%; left: 42%; width: 16%; height: 12%;
  background: linear-gradient(180deg, #c0a070, #8b6f45);
  border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-alcinous-offers-marriage .wreath {
  position: absolute; bottom: 30%; left: 46%; width: 8%; height: 8%;
  background: radial-gradient(circle, #e8c080 0%, #c08040 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(200,128,64,0.6);
  animation: aom-wreath 4s ease-in-out infinite alternate;
}
.scn-alcinous-offers-marriage .floor-mosaic {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: repeating-conic-gradient(#a08050 0% 25%, #c0a070 0% 50%) 0 0 / 8% 8%;
  opacity: 0.3;
}
@keyframes aom-king { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2%) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes aom-ulysses { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2%) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes aom-wreath { 0% { transform: scale(0.9); opacity: 0.7; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }

/* Scene: Return to Aeaea (dawn, calm) */
.scn-return-to-aeaea {
  background: linear-gradient(180deg, #ffbba0 0%, #e8a080 20%, #b07050 60%, #6a4a3a 100%), radial-gradient(ellipse at 50% 0%, #ffd9b0 0%, transparent 60%);
}
.scn-return-to-aeaea .sky-dawn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffc8a8 0%, #ffb090 20%, #b08060 50%, #805040 100%);
  animation: ret-sky 14s ease-in-out infinite alternate;
}
.scn-return-to-aeaea .sea-shimmer {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b0a8a0 0%, #889094 50%, #606870 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  animation: ret-sea 6s ease-in-out infinite alternate;
}
.scn-return-to-aeaea .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 40%, #8a6a4a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-return-to-aeaea .ship-hull {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ret-ship 8s ease-in-out infinite;
}
.scn-return-to-aeaea .mast {
  position: absolute; bottom: 40%; left: 35%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 2px;
  animation: ret-mast 8s ease-in-out infinite;
}
.scn-return-to-aeaea .sail {
  position: absolute; bottom: 48%; left: 28%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #e0c8a8 40%, #c0a880 100%);
  border-radius: 30% 10% 10% 30% / 40% 20% 20% 40%;
  transform: rotate(-5deg);
  animation: ret-sail 8s ease-in-out infinite;
}
.scn-return-to-aeaea .figures {
  position: absolute; bottom: 26%; left: 35%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ret-fig 4s ease-in-out infinite;
}
.scn-return-to-aeaea .sun-glow {
  position: absolute; top: 6%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe8b0 0%, #ffb080 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ret-sun 12s ease-in-out infinite alternate;
}
@keyframes ret-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes ret-sea { 0%{transform:translateY(0)} 50%{transform:translateY(-4px) scale(1.01)} 100%{transform:translateY(2px)} }
@keyframes ret-ship { 0%{transform:translateX(0) rotate(-1deg)} 25%{transform:translateX(4px) rotate(1deg)} 75%{transform:translateX(-3px) rotate(-2deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes ret-mast { 0%{transform:translateX(0) rotate(0deg)} 50%{transform:translateX(2px) rotate(0.5deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes ret-sail { 0%{transform:rotate(-5deg)} 50%{transform:rotate(-3deg) scaleY(0.98)} 100%{transform:rotate(-5deg)} }
@keyframes ret-fig { 0%{transform:translateX(0) translateY(0) rotate(-2deg)} 25%{transform:translateX(3px) translateY(-1px) rotate(1deg)} 75%{transform:translateX(-2px) translateY(0) rotate(-1deg)} 100%{transform:translateX(0) translateY(0) rotate(0)} }
@keyframes ret-sun { 0%{transform:scale(1) translateY(0);opacity:0.8} 50%{transform:scale(1.05) translateY(-2px);opacity:1} 100%{transform:scale(0.95) translateY(1px);opacity:0.85} }

/* Scene: Circe Warns Again (sunlit, calm) */
.scn-circe-warns-again {
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 30%, #a89078 70%, #8a7a6a 100%), radial-gradient(ellipse at 50% 0%, #f0e0d0 0%, transparent 60%);
}
.scn-circe-warns-again .bg-courtyard {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #c0b099 40%, #b0a090 100%);
}
.scn-circe-warns-again .pillar-left {
  position: absolute; top: 0; left: 10%; width: 20px; height: 100%;
  background: linear-gradient(180deg, #c0b098 0%, #a09078 100%);
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.1);
}
.scn-circe-warns-again .pillar-right {
  position: absolute; top: 0; right: 10%; width: 20px; height: 100%;
  background: linear-gradient(180deg, #c0b098 0%, #a09078 100%);
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.1);
}
.scn-circe-warns-again .table {
  position: absolute; bottom: 25%; left: 25%; width: 50%; height: 30px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.scn-circe-warns-again .circe-figure {
  position: absolute; bottom: 40%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cir2-fig 6s ease-in-out infinite;
}
.scn-circe-warns-again .maid-left {
  position: absolute; bottom: 35%; left: 20%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #b0a090 0%, #6a5a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: cir2-maid 8s ease-in-out infinite alternate;
}
.scn-circe-warns-again .maid-right {
  position: absolute; bottom: 35%; right: 20%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #b0a090 0%, #6a5a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cir2-maid 9s ease-in-out infinite alternate-reverse;
}
.scn-circe-warns-again .wine-jug {
  position: absolute; bottom: 28%; left: 45%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #c8a080 0%, #a08060 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 0 8px rgba(0,0,0,0.15);
}
.scn-circe-warns-again .food-platter {
  position: absolute; bottom: 26%; left: 55%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #d0b090 0%, #b09070 100%);
  border-radius: 20%;
  box-shadow: 0 0 6px rgba(0,0,0,0.1);
  animation: cir2-platter 5s ease-in-out infinite alternate;
}
@keyframes cir2-fig { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes cir2-maid { 0%{transform:translateX(0) translateY(0) rotate(0)} 50%{transform:translateX(-2px) translateY(-2px) rotate(-1deg)} 100%{transform:translateX(0) translateY(0) rotate(0)} }
@keyframes cir2-platter { 0%{opacity:0.9;transform:scale(1)} 50%{opacity:1;transform:scale(1.02)} 100%{opacity:0.95;transform:scale(0.98)} }

/* Scene: Circe Tells of Sirens (dim-interior, tense) */
.scn-circe-tells-of-sirens {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 40%, #1a1a2e 70%, #0a0a1a 100%), radial-gradient(ellipse at 50% 80%, #3a3a5e 0%, transparent 80%);
}
.scn-circe-tells-of-sirens .room-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(10,10,20,0.6) 100%);
}
.scn-circe-tells-of-sirens .table-cloth {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 10px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-circe-tells-of-sirens .lamp-glow {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffa060 0%, #c08040 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: cis-lamp 3s ease-in-out infinite alternate;
}
.scn-circe-tells-of-sirens .odysseus-shadow {
  position: absolute; bottom: 10%; left: 28%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: cis-fig 5s ease-in-out infinite;
}
.scn-circe-tells-of-sirens .circe-shadow {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: cis-fig 6s ease-in-out infinite reverse;
}
.scn-circe-tells-of-sirens .siren-shape-a {
  position: absolute; top: 10%; right: 12%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: cis-siren 8s ease-in-out infinite alternate;
}
.scn-circe-tells-of-sirens .siren-shape-b {
  position: absolute; top: 5%; left: 10%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(3px);
  animation: cis-siren 10s ease-in-out infinite alternate-reverse;
}
@keyframes cis-lamp { 0%{opacity:0.6;transform:scale(1)} 50%{opacity:1;transform:scale(1.1)} 100%{opacity:0.8;transform:scale(0.95)} }
@keyframes cis-fig { 0%{transform:translateX(0) translateY(0) rotate(0)} 30%{transform:translateX(3px) translateY(-2px) rotate(2deg)} 70%{transform:translateX(-2px) translateY(0) rotate(-1deg)} 100%{transform:translateX(0) translateY(0) rotate(0)} }
@keyframes cis-siren { 0%{transform:translateY(0) scale(1);opacity:0.3} 50%{transform:translateY(-6px) scale(1.05);opacity:0.6} 100%{transform:translateY(2px) scale(0.95);opacity:0.2} }

/* Scene: Circe Tells of Wanderers (dim-interior, tense) */
.scn-circe-tells-of-wanderers {
  background: linear-gradient(180deg, #0e1a2a 0%, #162030 30%, #1a2a3e 60%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #2a3a4e 0%, transparent 70%);
}
.scn-circe-tells-of-wanderers .cave-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(10,10,20,0.5) 100%);
}
.scn-circe-tells-of-wanderers .rock-arch {
  position: absolute; top: 0; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: ciw-rock 12s ease-in-out infinite alternate;
}
.scn-circe-tells-of-wanderers .table-slab {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 8px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px;
}
.scn-circe-tells-of-wanderers .lamp-flame {
  position: absolute; bottom: 32%; left: 46%; width: 24px; height: 36px;
  background: radial-gradient(circle at 50% 80%, #ffb060 0%, #d08030 30%, transparent 60%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ciw-lamp 2.5s ease-in-out infinite alternate;
}
.scn-circe-tells-of-wanderers .circe-point {
  position: absolute; bottom: 25%; left: 55%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: ciw-point 4s ease-in-out infinite;
}
.scn-circe-tells-of-wanderers .odysseus-sit {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ciw-fig 6s ease-in-out infinite;
}
.scn-circe-tells-of-wanderers .chart-scroll {
  position: absolute; bottom: 22%; left: 38%; width: 40px; height: 18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 10% 10% / 20% 20% 20% 20%;
  transform: rotate(-10deg);
  animation: ciw-chart 8s ease-in-out infinite alternate;
}
.scn-circe-tells-of-wanderers .overhang-shadow {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  pointer-events: none;
  animation: ciw-over 10s ease-in-out infinite alternate;
}
@keyframes ciw-rock { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-3px) scale(1.01)} 100%{transform:translateY(0) scale(0.99)} }
@keyframes ciw-lamp { 0%{opacity:0.7;transform:scale(1) translateY(0)} 50%{opacity:1;transform:scale(1.12) translateY(-4px)} 100%{opacity:0.8;transform:scale(0.95) translateY(2px)} }
@keyframes ciw-point { 0%{transform:rotate(15deg)} 30%{transform:rotate(18deg) translateX(2px)} 70%{transform:rotate(12deg) translateX(-1px)} 100%{transform:rotate(15deg)} }
@keyframes ciw-fig { 0%{transform:translateX(0) translateY(0) rotate(0)} 30%{transform:translateX(-3px) translateY(-1px) rotate(-1deg)} 70%{transform:translateX(2px) translateY(1px) rotate(1deg)} 100%{transform:translateX(0) translateY(0) rotate(0)} }
@keyframes ciw-chart { 0%{transform:rotate(-10deg) translateY(0)} 50%{transform:rotate(-8deg) translateY(-2px)} 100%{transform:rotate(-12deg) translateY(1px)} }
@keyframes ciw-over { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }

.scn-telemachus-doubts {
  background:
    linear-gradient(135deg, #3a2a1a 0%, #5a4a3a 40%, #7a6a4a 100%),
    radial-gradient(ellipse at 70% 30%, #b8a080 0%, transparent 60%);
}
.scn-telemachus-doubts .wall {
  position:absolute;
  inset:0 0 40% 0;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  animation: td-wall 6s ease-in-out infinite alternate;
}
.scn-telemachus-doubts .floor {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  height:40%;
  background: linear-gradient(0deg, #2a1a0a 0%, #4a3a2a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.4);
  animation: td-floor 8s ease-in-out infinite alternate;
}
.scn-telemachus-doubts .column-left {
  position:absolute;
  bottom:30%;
  left:10%;
  width:20px;
  height:50%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: td-column 10s ease-in-out infinite;
}
.scn-telemachus-doubts .column-right {
  position:absolute;
  bottom:30%;
  right:10%;
  width:20px;
  height:50%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: -2px 0 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: td-column 10s ease-in-out infinite reverse;
}
.scn-telemachus-doubts .telemachus {
  position:absolute;
  bottom:35%;
  left:50%;
  width:30px;
  height:60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: td-figure 4s ease-in-out infinite;
}
.scn-telemachus-doubts .lamp {
  position:absolute;
  bottom:45%;
  left:50%;
  width:10px;
  height:14px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd060 0%, #b08040 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,0.4);
  animation: td-lamp 2s ease-in-out infinite alternate;
}
.scn-telemachus-doubts .shadow-sharp {
  position:absolute;
  bottom:35%;
  left:25%;
  width:200px;
  height:4px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 50%, transparent 100%);
  filter: blur(2px);
  animation: td-shadow 5s ease-in-out infinite alternate;
}
.scn-telemachus-doubts .dust {
  position:absolute;
  top:20%;
  left:30%;
  width:60px;
  height:60px;
  background: radial-gradient(circle, rgba(255,255,220,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: td-dust 12s linear infinite;
}
@keyframes td-wall {
  0% { opacity:0.9; filter: brightness(1) }
  50% { opacity:1; filter: brightness(1.1) }
  100% { opacity:0.95; filter: brightness(0.95) }
}
@keyframes td-floor {
  0% { transform: translateY(0) }
  50% { transform: translateY(-2px) }
  100% { transform: translateY(1px) }
}
@keyframes td-column {
  0% { transform: scaleY(1) }
  50% { transform: scaleY(1.02) }
  100% { transform: scaleY(0.98) }
}
@keyframes td-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg) }
  25% { transform: translateX(-50%) translateY(-3px) rotate(2deg) }
  50% { transform: translateX(-50%) translateY(0) rotate(-1deg) }
  75% { transform: translateX(-50%) translateY(2px) rotate(1deg) }
  100% { transform: translateX(-50%) translateY(0) rotate(0) }
}
@keyframes td-lamp {
  0% { box-shadow: 0 0 15px 4px #b08040, 0 0 30px 8px rgba(176,128,64,0.3); opacity:0.8 }
  50% { box-shadow: 0 0 25px 8px #ffd060, 0 0 50px 16px rgba(255,208,96,0.5); opacity:1 }
  100% { box-shadow: 0 0 18px 5px #b08040, 0 0 35px 10px rgba(176,128,64,0.35); opacity:0.9 }
}
@keyframes td-shadow {
  0% { transform: translateX(-20px) scaleX(1) }
  50% { transform: translateX(0) scaleX(1.2) }
  100% { transform: translateX(10px) scaleX(0.8) }
}
@keyframes td-dust {
  0% { transform: translate(0,0) scale(1); opacity:0.3 }
  50% { transform: translate(30px,-20px) scale(1.3); opacity:0.6 }
  100% { transform: translate(-20px,40px) scale(0.8); opacity:0.2 }
}

.scn-suitors-dine-and-music {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #d0b080 50%, #b09070 100%),
    radial-gradient(ellipse at 50% 60%, #ffe8c0 0%, transparent 70%);
}
.scn-suitors-dine-and-music .hall-wall {
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, #e0c8a0 0%, #c0a080 100%);
  animation: sd-wall 12s ease-in-out infinite alternate;
}
.scn-suitors-dine-and-music .hall-floor {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  height:30%;
  background: linear-gradient(0deg, #8a7a5a 0%, #b8a080 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: sd-floor 10s ease-in-out infinite alternate;
}
.scn-suitors-dine-and-music .table {
  position:absolute;
  bottom:20%;
  left:20%;
  right:20%;
  height:8%;
  background: linear-gradient(180deg, #a08870 0%, #705840 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: sd-table 8s ease-in-out infinite;
}
.scn-suitors-dine-and-music .wine-cup {
  position:absolute;
  bottom:22%;
  left:40%;
  width:14px;
  height:20px;
  background: linear-gradient(180deg, #d0a050 0%, #a07830 100%);
  border-radius: 0 0 30% 30% / 0 0 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: sd-cup 6s ease-in-out infinite;
}
.scn-suitors-dine-and-music .lyre {
  position:absolute;
  bottom:25%;
  left:55%;
  width:30px;
  height:40px;
  background: linear-gradient(180deg, #b09070 0%, #705840 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: sd-lyre 5s ease-in-out infinite alternate;
}
.scn-suitors-dine-and-music .lantern {
  position:absolute;
  top:15%;
  width:16px;
  height:24px;
  background: radial-gradient(circle at 50% 60%, #ffe080 0%, #d0a040 80%);
  border-radius: 20%;
  box-shadow: 0 0 30px 10px rgba(255,224,128,0.4);
  animation: sd-lantern 4s ease-in-out infinite alternate;
}
.scn-suitors-dine-and-music .left-lantern {
  left:20%;
  animation-delay: 0s;
}
.scn-suitors-dine-and-music .right-lantern {
  right:20%;
  animation-delay: 2s;
}
.scn-suitors-dine-and-music .suitors-figures {
  position:absolute;
  bottom:24%;
  left:10%;
  right:10%;
  height:20%;
  background: linear-gradient(180deg, transparent 0%, rgba(60,40,20,0.4) 100%);
  clip-path: polygon(10% 0%, 20% 100%, 30% 100%, 40% 0%, 50% 100%, 60% 0%, 70% 100%, 80% 0%, 90% 100%);
  animation: sd-figures 7s ease-in-out infinite;
}
@keyframes sd-wall {
  0% { opacity:0.95; filter: brightness(1) }
  50% { opacity:1; filter: brightness(1.05) }
  100% { opacity:0.9; filter: brightness(0.95) }
}
@keyframes sd-floor {
  0% { transform: translateY(0) }
  50% { transform: translateY(-1px) }
  100% { transform: translateY(1px) }
}
@keyframes sd-table {
  0% { transform: translateY(0) }
  50% { transform: translateY(-2px) }
  100% { transform: translateY(0) }
}
@keyframes sd-cup {
  0% { transform: rotate(0) }
  25% { transform: rotate(3deg) translateY(-1px) }
  50% { transform: rotate(-2deg) }
  75% { transform: rotate(1deg) }
  100% { transform: rotate(0) }
}
@keyframes sd-lyre {
  0% { transform: rotate(0) scale(1) }
  50% { transform: rotate(2deg) scale(1.02) }
  100% { transform: rotate(-1deg) scale(0.98) }
}
@keyframes sd-lantern {
  0% { transform: rotate(-2deg) translateY(0); filter: brightness(0.9) }
  50% { transform: rotate(2deg) translateY(-2px); filter: brightness(1.1) }
  100% { transform: rotate(-1deg) translateY(1px); filter: brightness(0.95) }
}
@keyframes sd-figures {
  0% { opacity:0.6; transform: scaleY(1) }
  50% { opacity:0.8; transform: scaleY(1.05) }
  100% { opacity:0.5; transform: scaleY(0.95) }
}

.scn-telemachus-complains-to-mentes {
  background:
    linear-gradient(135deg, #e8e0d0 0%, #c8b8a0 50%, #a89880 100%),
    radial-gradient(ellipse at 40% 50%, #ffffff 0%, transparent 80%);
}
.scn-telemachus-complains-to-mentes .room-bg {
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%);
  animation: tc-bg 8s ease-in-out infinite alternate;
}
.scn-telemachus-complains-to-mentes .floor-tiles {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  height:35%;
  background:
    repeating-linear-gradient(0deg, transparent 0, transparent 4%, rgba(0,0,0,0.05) 4%, rgba(0,0,0,0.05) 8%),
    linear-gradient(0deg, #907a60 0%, #b8a080 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: tc-floor 12s linear infinite;
}
.scn-telemachus-complains-to-mentes .telemachus-figure {
  position:absolute;
  bottom:28%;
  left:30%;
  width:28px;
  height:58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-figure1 5s ease-in-out infinite;
}
.scn-telemachus-complains-to-mentes .mentes-figure {
  position:absolute;
  bottom:28%;
  right:25%;
  width:30px;
  height:60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-figure2 5s ease-in-out infinite alternate;
}
.scn-telemachus-complains-to-mentes .window {
  position:absolute;
  top:10%;
  right:15%;
  width:50px;
  height:60px;
  background: linear-gradient(180deg, #c0e0ff 0%, #a0c0e8 100%);
  border: 3px solid #8a7a6a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: tc-window 6s ease-in-out infinite alternate;
}
.scn-telemachus-complains-to-mentes .shadow-strip {
  position:absolute;
  bottom:30%;
  left:25%;
  width:50%;
  height:8px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.2) 20%, rgba(0,0,0,0.4) 50%, rgba(0,0,0,0.2) 80%, transparent 100%);
  filter: blur(3px);
  animation: tc-shadow 4s ease-in-out infinite alternate;
}
.scn-telemachus-complains-to-mentes .chair {
  position:absolute;
  bottom:25%;
  left:45%;
  width:20px;
  height:30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tc-chair 7s ease-in-out infinite;
}
@keyframes tc-bg {
  0% { filter: brightness(0.95) }
  50% { filter: brightness(1.05) }
  100% { filter: brightness(0.9) }
}
@keyframes tc-floor {
  0% { background-position: 0 0 }
  100% { background-position: 0 20px }
}
@keyframes tc-figure1 {
  0% { transform: translateX(0) rotate(-2deg) }
  25% { transform: translateX(2px) rotate(2deg) }
  50% { transform: translateX(-1px) rotate(-1deg) }
  75% { transform: translateX(3px) rotate(1deg) }
  100% { transform: translateX(0) rotate(0) }
}
@keyframes tc-figure2 {
  0% { transform: translateX(0) rotate(2deg) }
  50% { transform: translateX(-2px) rotate(-1deg) }
  100% { transform: translateX(0) rotate(0) }
}
@keyframes tc-window {
  0% { opacity:0.8; filter: brightness(0.9) }
  50% { opacity:1; filter: brightness(1.1) }
  100% { opacity:0.7; filter: brightness(0.95) }
}
@keyframes tc-shadow {
  0% { transform: translateX(-10px) scaleX(1) }
  50% { transform: translateX(0) scaleX(1.2) }
  100% { transform: translateX(10px) scaleX(0.8) }
}
@keyframes tc-chair {
  0% { transform: translateY(0) rotate(0) }
  50% { transform: translateY(-2px) rotate(2deg) }
  100% { transform: translateY(1px) rotate(-1deg) }
}

.scn-minerva-identifies-herself {
  background:
    linear-gradient(180deg, #fff5e0 0%, #f0d8b0 50%, #d8c098 100%),
    radial-gradient(ellipse at 50% 40%, #ffe8c0 0%, transparent 70%);
}
.scn-minerva-identifies-herself .chamber-bg {
  position:absolute;
  inset:0;
  background: linear-gradient(135deg, #f0e0c8 0%, #d0b898 100%);
  animation: mi-bg 10s ease-in-out infinite alternate;
}
.scn-minerva-identifies-herself .pillar-left {
  position:absolute;
  bottom:0;
  left:15%;
  width:18px;
  height:60%;
  background: linear-gradient(180deg, #c8b098 0%, #a08870 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 2px 0 10px rgba(0,0,0,0.2);
  animation: mi-pillar 8s ease-in-out infinite;
}
.scn-minerva-identifies-herself .pillar-right {
  position:absolute;
  bottom:0;
  right:15%;
  width:18px;
  height:60%;
  background: linear-gradient(180deg, #c8b098 0%, #a08870 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -2px 0 10px rgba(0,0,0,0.2);
  animation: mi-pillar 8s ease-in-out infinite reverse;
}
.scn-minerva-identifies-herself .minerva-figure {
  position:absolute;
  bottom:20%;
  left:50%;
  width:34px;
  height:70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a08060 0%, #705840 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 10px rgba(255,224,160,0.3);
  animation: mi-figure 6s ease-in-out infinite alternate;
}
.scn-minerva-identifies-herself .halo {
  position:absolute;
  top:8%;
  left:50%;
  width:60px;
  height:60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, rgba(255,224,160,0.2) 40%, transparent 80%);
  border-radius: 50%;
  filter: blur(10px);
  animation: mi-halo 4s ease-in-out infinite alternate;
}
.scn-minerva-identifies-herself .staff {
  position:absolute;
  bottom:22%;
  left:48%;
  width:4px;
  height:70px;
  background: linear-gradient(180deg, #8a7058 0%, #5a4030 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: mi-staff 5s ease-in-out infinite;
}
.scn-minerva-identifies-herself .sparkle-1 {
  position:absolute;
  top:25%;
  left:30%;
  width:8px;
  height:8px;
  background: radial-gradient(circle, #ffffff 0%, rgba(255,255,255,0.3) 60%, transparent 100%);
  border-radius: 50%;
  animation: mi-sparkle 3s ease-in-out infinite;
}
.scn-minerva-identifies-herself .sparkle-2 {
  position:absolute;
  top:35%;
  right:25%;
  width:6px;
  height:6px;
  background: radial-gradient(circle, #ffffff 0%, rgba(255,255,255,0.3) 60%, transparent 100%);
  border-radius: 50%;
  animation: mi-sparkle 3s ease-in-out infinite 1.5s;
}
@keyframes mi-bg {
  0% { filter: brightness(0.95) }
  50% { filter: brightness(1.05) }
  100% { filter: brightness(1) }
}
@keyframes mi-pillar {
  0% { transform: scaleY(1) }
  50% { transform: scaleY(1.02) }
  100% { transform: scaleY(0.98) }
}
@keyframes mi-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg) }
  50% { transform: translateX(-50%) translateY(-3px) rotate(1deg) }
  100% { transform: translateX(-50%) translateY(0) rotate(0) }
}
@keyframes mi-halo {
  0% { opacity:0.6; transform: translateX(-50%) scale(1) }
  50% { opacity:1; transform: translateX(-50%) scale(1.1) }
  100% { opacity:0.7; transform: translateX(-50%) scale(0.95) }
}
@keyframes mi-staff {
  0% { transform: rotate(-2deg) }
  50% { transform: rotate(2deg) }
  100% { transform: rotate(-1deg) }
}
@keyframes mi-sparkle {
  0% { opacity:0; transform: scale(0.5) }
  25% { opacity:1; transform: scale(1.2) }
  50% { opacity:0.8; transform: scale(1) }
  75% { opacity:0.4; transform: scale(0.8) }
  100% { opacity:0; transform: scale(0.3) }
}

/* Scene 1: euryalus-apology */
.scn-euryalus-apology {
  background: 
    linear-gradient(180deg, #fdf4d3 0%, #e8d5a3 40%, #c9a96e 100%),
    radial-gradient(ellipse at 50% 0%, #fff4d6 0%, transparent 60%);
}
.scn-euryalus-apology .hall-bg { position:absolute; inset:0 0 35% 0; background:linear-gradient(180deg, #e8d5a3 0%, #d6be88 100%); animation: ea-shimmer 12s ease-in-out infinite; }
.scn-euryalus-apology .floor   { position:absolute; bottom:0; left:0; width:100%; height:35%; background:linear-gradient(180deg, #b8945c 0%, #8a6b3e 100%); border-radius:10% 10% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,0.15); }
.scn-euryalus-apology .col-left { position:absolute; bottom:20%; left:15%; width:8%; height:55%; background:linear-gradient(180deg, #f0dcc0 0%, #cab090 100%); border-radius:4px; box-shadow: 4px 0 8px rgba(0,0,0,0.1), -4px 0 8px rgba(0,0,0,0.05); animation: ea-col 18s ease-in-out infinite alternate; }
.scn-euryalus-apology .col-right { position:absolute; bottom:20%; right:15%; width:8%; height:55%; background:linear-gradient(180deg, #f0dcc0 0%, #cab090 100%); border-radius:4px; box-shadow: 4px 0 8px rgba(0,0,0,0.1), -4px 0 8px rgba(0,0,0,0.05); animation: ea-col 22s ease-in-out infinite alternate-reverse; }
.scn-euryalus-apology .throne  { position:absolute; bottom:15%; left:50%; width:16%; height:30%; transform:translateX(-50%); background:linear-gradient(180deg, #d4a373 0%, #b8854a 100%); border-radius: 20% 20% 10% 10%; box-shadow:0 4px 12px rgba(0,0,0,0.2); animation: ea-throne 5s ease-in-out infinite; }
.scn-euryalus-apology .king    { position:absolute; bottom:22%; left:50%; width:10%; height:18%; transform:translateX(-50%); background:linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ea-king 4s ease-in-out infinite alternate; }
.scn-euryalus-apology .light-ray { position:absolute; top:0%; left:20%; width:60%; height:60%; background: radial-gradient(ellipse at 50% 0%, rgba(255,248,220,0.3) 0%, transparent 70%); animation: ea-light 8s ease-in-out infinite alternate; }
@keyframes ea-shimmer { 0% {opacity:0.85} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes ea-col     { 0% {transform:translateY(0) scaleY(1)} 50%{transform:translateY(-2px) scaleY(1.01)} 100%{transform:translateY(2px) scaleY(0.99)} }
@keyframes ea-throne  { 0% {transform:translateX(-50%) scale(1)} 50%{transform:translateX(-50%) translateY(-1px) scale(1.02)} 100%{transform:translateX(-50%) scale(1)} }
@keyframes ea-king    { 0% {transform:translateX(-50%) rotate(-2deg)} 50%{transform:translateX(-50%) rotate(1deg)} 100%{transform:translateX(-50%) rotate(0deg)} }
@keyframes ea-light   { 0% {opacity:0.6; transform:scale(0.95)} 50%{opacity:1; transform:scale(1.05)} 100%{opacity:0.7; transform:scale(1)} }

/* Scene 2: queen-prepares-chest */
.scn-queen-prepares-chest {
  background: 
    linear-gradient(180deg, #1e1a16 0%, #2c241e 40%, #3d3228 100%),
    radial-gradient(ellipse at 50% 80%, #4a3e2e 0%, transparent 70%);
}
.scn-queen-prepares-chest .room-bg { position:absolute; inset:0; background:linear-gradient(180deg, #1e1a16 0%, #2c241e 100%); }
.scn-queen-prepares-chest .chest   { position:absolute; bottom:20%; left:30%; width:30%; height:30%; background:linear-gradient(180deg, #5a3e28 0%, #342214 100%); border-radius:4% 4% 2% 2%; box-shadow:0 4px 10px rgba(0,0,0,0.6), inset 0 2px 4px rgba(255,200,100,0.1); animation: qc-chest 10s ease-in-out infinite; }
.scn-queen-prepares-chest .chest-lid { position:absolute; bottom:42%; left:30%; width:30%; height:8%; background:linear-gradient(180deg, #6a4e32 0%, #4a3420 100%); border-radius: 8% 8% 0 0; transform-origin: bottom center; animation: qc-lid 6s ease-in-out infinite alternate; box-shadow:0 -2px 4px rgba(0,0,0,0.3); }
.scn-queen-prepares-chest .queen   { position:absolute; bottom:20%; left:55%; width:12%; height:40%; background:linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qc-queen 5s ease-in-out infinite alternate; }
.scn-queen-prepares-chest .basin   { position:absolute; bottom:10%; left:10%; width:20%; height:15%; background:linear-gradient(180deg, #4e3a2a 0%, #2e1e12 100%); border-radius: 30% 30% 10% 10%; box-shadow:inset 0 0 8px rgba(255,200,100,0.2); animation: qc-water 8s ease-in-out infinite; }
.scn-queen-prepares-chest .lamp    { position:absolute; bottom:55%; left:20%; width:8%; height:12%; background:radial-gradient(circle at 50% 30%, #f0c060 0%, #c08030 60%, transparent 80%); border-radius:50%; box-shadow:0 0 30px 8px #c08030; animation: qc-flicker 3s ease-in-out infinite; }
@keyframes qc-chest   { 0% {transform:scale(1)} 50%{transform:scale(1.02)} 100%{transform:scale(1)} }
@keyframes qc-lid     { 0% {transform:rotateX(0deg)} 50%{transform:rotateX(-15deg)} 100%{transform:rotateX(0deg)} }
@keyframes qc-queen   { 0% {transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-3px) rotate(2deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes qc-water   { 0% {opacity:0.6} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes qc-flicker { 0% {opacity:0.8; transform:scale(0.9)} 50%{opacity:1; transform:scale(1.1)} 100%{opacity:0.85; transform:scale(0.95)} }

/* Scene 3: nausicaa-farewell */
.scn-nausicaa-farewell {
  background: 
    linear-gradient(180deg, #fdf8ed 0%, #ece0c0 50%, #d6c4a0 100%),
    radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 70%);
}
.scn-nausicaa-farewell .hall-bright  { position:absolute; inset:0; background:linear-gradient(180deg, #fdf4e0 0%, #e8d8b8 100%); }
.scn-nausicaa-farewell .column       { position:absolute; bottom:10%; left:30%; width:6%; height:70%; background:linear-gradient(180deg, #f0e0c8 0%, #d4c0a0 100%); border-radius:6px; box-shadow: 4px 0 8px rgba(0,0,0,0.1), -4px 0 8px rgba(0,0,0,0.05); animation: nf-col 20s ease-in-out infinite alternate; }
.scn-nausicaa-farewell .nausicaa     { position:absolute; bottom:15%; left:30%; width:10%; height:35%; background:linear-gradient(180deg, #8a6a5a 0%, #5a3a2a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: nf-naus 4s ease-in-out infinite; }
.scn-nausicaa-farewell .guest-fig    { position:absolute; bottom:20%; left:50%; width:9%; height:30%; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%; animation: nf-guest 6s ease-in-out infinite alternate; }
.scn-nausicaa-farewell .window-light { position:absolute; top:0%; left:60%; width:30%; height:55%; background: radial-gradient(ellipse at 50% 0%, rgba(255,245,200,0.3) 0%, transparent 70%); animation: nf-window 10s ease-in-out infinite alternate; }
.scn-nausicaa-farewell .courtyard-arch { position:absolute; bottom:5%; left:65%; width:25%; height:50%; background:linear-gradient(180deg, #c8b48a 0%, #a89068 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.1); animation: nf-arch 25s ease-in-out infinite; }
@keyframes nf-col    { 0% {transform:translateY(0) scaleY(1)} 50%{transform:translateY(-1px) scaleY(1.008)} 100%{transform:translateY(1px) scaleY(0.992)} }
@keyframes nf-naus   { 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 nf-guest  { 0% {transform:translateY(0) scale(1)} 50%{transform:translateY(-2px) scale(1.02)} 100%{transform:translateY(0) scale(1)} }
@keyframes nf-window { 0% {opacity:0.6} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes nf-arch   { 0% {opacity:0.9} 50%{opacity:1} 100%{opacity:0.85} }

/* Scene 4: ulysses-honors-demodocus */
.scn-ulysses-honors-demodocus {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #dcc4a0 40%, #b8a07a 100%),
    radial-gradient(ellipse at 50% 60%, #e8d4b0 0%, transparent 70%);
}
.scn-ulysses-honors-demodocus .dining-room { position:absolute; inset:0; background:linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 100%); }
.scn-ulysses-honors-demodocus .table       { position:absolute; bottom:15%; left:20%; width:60%; height:25%; background:linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%); border-radius: 10% 10% 4% 4%; box-shadow:0 4px 12px rgba(0,0,0,0.3); animation: uhd-table 7s ease-in-out infinite alternate; }
.scn-ulysses-honors-demodocus .platter     { position:absolute; bottom:25%; left:35%; width:15%; height:10%; background:linear-gradient(180deg, #b08a60 0%, #8a6a40 100%); border-radius:30% 30% 10% 10%; box-shadow:0 2px 6px rgba(0,0,0,0.2); animation: uhd-platter 4s ease-in-out infinite; }
.scn-ulysses-honors-demodocus .ulysses     { position:absolute; bottom:20%; left:25%; width:12%; height:35%; background:linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: uhd-ulysses 4s ease-in-out infinite alternate; }
.scn-ulysses-honors-demodocus .demodocus   { position:absolute; bottom:22%; left:55%; width:14%; height:30%; background:linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 45% 45% 55% 55% / 70% 70% 30% 30%; animation: uhd-demo 5s ease-in-out infinite alternate; }
.scn-ulysses-honors-demodocus .servant     { position:absolute; bottom:15%; left:72%; width:8%; height:28%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; animation: uhd-serv 6s ease-in-out infinite; }
.scn-ulysses-honors-demodocus .wine-cup    { position:absolute; bottom:27%; left:50%; width:5%; height:6%; background:radial-gradient(circle, #d4a080 0%, #b08060 100%); border-radius: 40% 40% 10% 10%; box-shadow:0 0 6px 2px #b08060; animation: uhd-cup 9s ease-in-out infinite; }
@keyframes uhd-table    { 0% {transform:scale(1) translateY(0)} 50%{transform:scale(1.01) translateY(-1px)} 100%{transform:scale(1) translateY(0)} }
@keyframes uhd-platter  { 0% {opacity:0.9; transform:scale(1)} 50%{opacity:1; transform:scale(1.05)} 100%{opacity:0.95; transform:scale(1)} }
@keyframes uhd-ulysses  { 0% {transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-2px) rotate(2deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes uhd-demo     { 0% {transform:translateX(0) rotate(0deg)} 50%{transform:translateX(-2px) rotate(2deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes uhd-serv     { 0% {transform:translateY(0) scale(1)} 50%{transform:translateY(-1px) scale(1.02)} 100%{transform:translateY(0) scale(1)} }
@keyframes uhd-cup      { 0% {transform:translateY(0) rotate(-5deg)} 50%{transform:translateY(-2px) rotate(5deg)} 100%{transform:translateY(0) rotate(0deg)} }

.scn-ulysses-swears-return {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3020 40%, #6a4a30 100%), radial-gradient(ellipse at 50% 100%, #8a6040 0%, transparent 70%);
}
.scn-ulysses-swears-return .wall-bg {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #3a2510 0%, #2a1a0a 100%);
  animation: usr-wall 12s ease-in-out infinite alternate;
}
.scn-ulysses-swears-return .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a08 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,.5);
}
.scn-ulysses-swears-return .hearth {
  position:absolute; bottom:20%; left:50%; width:80px; height:40px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #8a5020 0%, #4a2a10 70%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.6);
}
.scn-ulysses-swears-return .fire-glow {
  position:absolute; bottom:24%; left:50%; width:40px; height:50px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #ff6030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,96,48,.5), 0 0 80px 40px rgba(255,96,48,.2);
  animation: usr-fire 2s ease-in-out infinite alternate;
}
.scn-ulysses-swears-return .figure {
  position:absolute; bottom:32%; left:35%; width:30px; height:60px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: usr-fig 4s ease-in-out infinite;
}
.scn-ulysses-swears-return .arm {
  position:absolute; bottom:52%; left:38%; width:10px; height:30px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%);
  border-radius: 20% 20% 50% 50%;
  transform-origin: top center;
  animation: usr-arm 3s ease-in-out infinite alternate;
}
.scn-ulysses-swears-return .shadow {
  position:absolute; bottom:30%; right:20%; width:40px; height:80px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: usr-shd 6s ease-in-out infinite;
}
@keyframes usr-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes usr-fire { 0% { transform: translateX(-50%) scale(1) rotate(-2deg); box-shadow: 0 0 30px 15px rgba(255,96,48,.4); } 50% { transform: translateX(-50%) scale(1.1) rotate(0deg); box-shadow: 0 0 50px 25px rgba(255,96,48,.6); } 100% { transform: translateX(-50%) scale(0.95) rotate(2deg); box-shadow: 0 0 35px 18px rgba(255,96,48,.45); } }
@keyframes usr-fig { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(0deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes usr-arm { 0% { transform: rotate(-20deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }
@keyframes usr-shd { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.2; transform: scale(0.8) } 100% { opacity:.4; transform: scale(1.1) } }

.scn-ulysses-false-story {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3020 40%, #6a4a30 100%), radial-gradient(ellipse at 50% 100%, #7a5a3a 0%, transparent 70%);
}
.scn-ulysses-false-story .hut-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #3a2510 0%, #2a1a0a 50%, #3a2510 100%);
  animation: ufs-wall 15s ease-in-out infinite alternate;
}
.scn-ulysses-false-story .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a08 100%);
  border-radius: 40% 40% 0 0 / 50% 50% 0 0;
}
.scn-ulysses-false-story .fire {
  position:absolute; bottom:18%; left:50%; width:60px; height:70px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff9040 0%, #ff6020 30%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,96,32,.5), 0 0 60px 30px rgba(255,96,32,.2);
  animation: ufs-fire 2.5s ease-in-out infinite alternate;
}
.scn-ulysses-false-story .storyteller {
  position:absolute; bottom:22%; left:30%; width:32px; height:65px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: ufs-sit 5s ease-in-out infinite;
}
.scn-ulysses-false-story .cup {
  position:absolute; bottom:32%; left:38%; width:12px; height:16px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: ufs-cup 4s ease-in-out infinite;
}
.scn-ulysses-false-story .listener {
  position:absolute; bottom:20%; right:25%; width:28px; height:50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ufs-listen 6s ease-in-out infinite;
}
.scn-ulysses-false-story .sparks {
  position:absolute; bottom:38%; left:48%; width:4px; height:4px;
  background: #ffaa40;
  border-radius: 50%;
  box-shadow: 0 0 8px 4px rgba(255,170,64,.6);
  animation: ufs-spark 3s ease-in-out infinite;
}
@keyframes ufs-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ufs-fire { 0% { transform: translateX(-50%) scale(1) rotate(0deg); box-shadow: 0 0 25px 12px rgba(255,96,32,.4); } 50% { transform: translateX(-50%) scale(1.15) rotate(3deg); box-shadow: 0 0 45px 22px rgba(255,96,32,.6); } 100% { transform: translateX(-50%) scale(0.9) rotate(-3deg); box-shadow: 0 0 30px 15px rgba(255,96,32,.45); } }
@keyframes ufs-sit { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ufs-cup { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes ufs-listen { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.02) } 100% { transform: translateY(0) scale(0.98) } }
@keyframes ufs-spark { 0% { transform: translate(0,0) scale(1); opacity:1 } 50% { transform: translate(8px,-12px) scale(0.5); opacity:.3 } 100% { transform: translate(-4px,-6px) scale(0.2); opacity:0 } }

.scn-ulysses-false-story-cont {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2510 50%, #5a3a20 100%), radial-gradient(ellipse at 50% 100%, #8a6040 0%, transparent 70%);
}
.scn-ulysses-false-story-cont .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #3a2510 0%, #2a1a0a 100%);
  animation: ufc-wall 14s ease-in-out infinite alternate;
}
.scn-ulysses-false-story-cont .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a08 100%);
  border-radius: 30% 30% 0 0 / 45% 45% 0 0;
  box-shadow: inset 0 -6px 15px rgba(0,0,0,.5);
}
.scn-ulysses-false-story-cont .hearth {
  position:absolute; bottom:22%; left:50%; width:70px; height:35px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #8a5020 0%, #4a2a10 70%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
}
.scn-ulysses-false-story-cont .figure-telling {
  position:absolute; bottom:24%; left:32%; width:30px; height:62px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: ufc-body 6s ease-in-out infinite;
}
.scn-ulysses-false-story-cont .hand-gesture {
  position:absolute; bottom:48%; left:36%; width:8px; height:20px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%);
  border-radius: 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: ufc-hand 4s ease-in-out infinite alternate;
}
.scn-ulysses-false-story-cont .shadow-figure {
  position:absolute; bottom:22%; right:20%; width:35px; height:70px;
  background: rgba(0,0,0,.25);
  border-radius: 50%;
  filter: blur(10px);
  animation: ufc-shadow 7s ease-in-out infinite;
}
.scn-ulysses-false-story-cont .drift-ash {
  position:absolute; top:20%; left:20%; width:6px; height:6px;
  background: rgba(200,200,200,.15);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(200,200,200,.1);
  animation: ufc-ash 20s linear infinite;
}
@keyframes ufc-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ufc-body { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ufc-hand { 0% { transform: rotate(-30deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(5deg) } }
@keyframes ufc-shadow { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.4; transform: scale(0.9) } 100% { opacity:.3; transform: scale(1.1) } }
@keyframes ufc-ash { 0% { transform: translateX(-20px) translateY(0) scale(1); opacity:0 } 10% { opacity:1 } 90% { opacity:1 } 100% { transform: translateX(120vw) translateY(-40px) scale(0.5); opacity:0 } }

.scn-false-egypt-story {
  background: linear-gradient(180deg, #c8a060 0%, #e8c880 30%, #f0d090 60%, #b89050 100%), radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 60%);
}
.scn-false-egypt-story .sky-dawn {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #a07040 0%, #d0a060 40%, #f0d080 100%);
  animation: feg-sky 25s ease-in-out infinite alternate;
}
.scn-false-egypt-story .ruins {
  position:absolute; bottom:30%; left:20%; width:120px; height:80px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a20 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  clip-path: polygon(0% 100%, 10% 60%, 30% 70%, 40% 30%, 60% 50%, 70% 20%, 90% 40%, 100% 100%);
  animation: feg-ruin 8s ease-in-out infinite;
}
.scn-false-egypt-story .dust-cloud {
  position:absolute; bottom:35%; left:50%; width:100px; height:50px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,140,80,.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: feg-dust 15s ease-in-out infinite alternate;
}
.scn-false-egypt-story .figure-run {
  position:absolute; bottom:20%; left:10%; width:28px; height:55px;
  background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: feg-run 3s steps(4) infinite;
}
.scn-false-egypt-story .sun {
  position:absolute; top:8%; right:15%; width:60px; height:60px;
  background: radial-gradient(circle, #ffe8b0 0%, #f0c060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(240,192,96,.6);
  animation: feg-sun 30s ease-in-out infinite alternate;
}
.scn-false-egypt-story .spear {
  position:absolute; bottom:32%; left:30%; width:4px; height:50px;
  background: linear-gradient(180deg, #503820 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: feg-spear 2s ease-in-out infinite alternate;
}
.scn-false-egypt-story .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #8a6a40 0%, #5a3a20 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
}
@keyframes feg-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes feg-ruin { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(0.98) } }
@keyframes feg-dust { 0% { transform: translateX(0) scale(1); opacity:.5 } 50% { transform: translateX(20px) scale(1.2); opacity:.7 } 100% { transform: translateX(-10px) scale(0.9); opacity:.4 } }
@keyframes feg-run { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(10px) translateY(-2px) } 50% { transform: translateX(20px) translateY(0) } 75% { transform: translateX(30px) translateY(-1px) } 100% { transform: translateX(40px) translateY(0) } }
@keyframes feg-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes feg-spear { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(-5deg) } }

.scn-telemachus-declines-horses { background: linear-gradient(180deg, #f5e6c8 0%, #d9c494 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%); }
.scn-telemachus-declines-horses .wall-back { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #ede0c8 0%, #d4c4a0 100%); }
.scn-telemachus-declines-horses .wall-left { position:absolute; inset:0 60% 35% 0; background: linear-gradient(180deg, #c8b898 0%, #b0a080 100%); border-right:2px solid #a09070; transform:skewY(-2deg); }
.scn-telemachus-declines-horses .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); border-radius:30% 30% 0 0 / 8% 8% 0 0; }
.scn-telemachus-declines-horses .window { position:absolute; top:18%; left:20%; width:28%; height:38%; background: linear-gradient(180deg, #c0d8e8 0%, #8ab0d0 100%); border:6px solid #6a5a4a; border-radius:4px; box-shadow:inset 0 0 40px rgba(255,255,220,.3), 0 0 60px rgba(200,220,240,.15); animation: th-window 6s ease-in-out infinite alternate; }
.scn-telemachus-declines-horses .daylight { position:absolute; top:18%; left:20%; width:28%; height:38%; background: linear-gradient(135deg, rgba(255,255,200,.08) 0%, transparent 60%); pointer-events:none; animation: th-light 8s ease-in-out infinite alternate; }
.scn-telemachus-declines-horses .table { position:absolute; bottom:20%; left:38%; width:24%; height:6%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:4px 4px 0 0; box-shadow:0 4px 8px rgba(0,0,0,.3); }
.scn-telemachus-declines-horses .figure-guest { position:absolute; bottom:14%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #c8a880 0%, #8a6a50 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: th-guest 5s ease-in-out infinite; }
.scn-telemachus-declines-horses .figure-guest::after { content:''; position:absolute; top:-8px; left:2px; width:16px; height:16px; background: radial-gradient(circle, #d4b890 0%, #b09070 70%); border-radius:50%; }
.scn-telemachus-declines-horses .figure-host { position:absolute; bottom:14%; left:52%; width:22px; height:52px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: th-host 5s ease-in-out infinite; }
.scn-telemachus-declines-horses .figure-host::after { content:''; position:absolute; top:-8px; left:3px; width:16px; height:16px; background: radial-gradient(circle, #9a8a7a 0%, #7a6a5a 70%); border-radius:50%; }
.scn-telemachus-declines-horses .cup { position:absolute; bottom:20%; left:46%; width:10px; height:12px; background: linear-gradient(180deg, #d4b060 0%, #b09040 100%); border-radius:0 0 30% 30%; box-shadow:0 2px 4px rgba(0,0,0,.3); animation: th-cup 6s ease-in-out infinite; }
@keyframes th-window { 0% { opacity:.85; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.02) } 100% { opacity:.9; transform:scaleY(.98) } }
@keyframes th-light { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 } }
@keyframes th-guest { 0%,100% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(-3px) rotate(0) } 50% { transform:translateX(-5px) rotate(2deg) } 75% { transform:translateX(-2px) rotate(0) } }
@keyframes th-host { 0%,100% { transform:translateX(0) rotate(1deg) } 25% { transform:translateX(2px) rotate(0) } 50% { transform:translateX(4px) rotate(-1deg) } 75% { transform:translateX(1px) rotate(0) } }
@keyframes th-cup { 0%,100% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-2px) rotate(-3deg) } }

.scn-menelaus-promises-mixing-bowl { background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 40%, #7a4a3a 100%), radial-gradient(ellipse at 50% 40%, #8a5a3a 0%, transparent 80%); }
.scn-menelaus-promises-mixing-bowl .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); }
.scn-menelaus-promises-mixing-bowl .hearth { position:absolute; bottom:20%; left:42%; width:16%; height:20%; background: linear-gradient(180deg, #8a3a1a 0%, #3a1a0a 100%); border-radius:50% 50% 20% 20%; box-shadow:inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-menelaus-promises-mixing-bowl .fire-glow { position:absolute; bottom:22%; left:44%; width:12%; height:16%; background: radial-gradient(ellipse, #ffa040 0%, #ff6020 30%, transparent 70%); border-radius:50%; filter:blur(8px); animation: mp-fire 3s ease-in-out infinite alternate; }
.scn-menelaus-promises-mixing-bowl .figure-left { position:absolute; bottom:14%; left:30%; width:22px; height:54px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: mp-left 6s ease-in-out infinite; }
.scn-menelaus-promises-mixing-bowl .figure-left::after { content:''; position:absolute; top:-10px; left:3px; width:16px; height:18px; background: radial-gradient(circle, #7a6a5a 0%, #4a3a2a 70%); border-radius:50%; }
.scn-menelaus-promises-mixing-bowl .figure-right { position:absolute; bottom:14%; left:52%; width:24px; height:56px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: mp-right 6s ease-in-out infinite; }
.scn-menelaus-promises-mixing-bowl .figure-right::after { content:''; position:absolute; top:-10px; left:4px; width:16px; height:18px; background: radial-gradient(circle, #8a7a6a 0%, #5a4a3a 70%); border-radius:50%; }
.scn-menelaus-promises-mixing-bowl .bowl { position:absolute; bottom:24%; left:44%; width:12%; height:8%; background: linear-gradient(180deg, #d4a040 0%, #a07020 100%); border-radius:0 0 40% 40%; box-shadow:0 4px 12px rgba(0,0,0,.5), 0 0 20px rgba(212,160,64,.3); animation: mp-bowl 5s ease-in-out infinite; }
.scn-menelaus-promises-mixing-bowl .pillar-left { position:absolute; top:0; left:10%; width:4%; height:100%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:4px; box-shadow:inset -2px 0 6px rgba(0,0,0,.3); }
.scn-menelaus-promises-mixing-bowl .pillar-right { position:absolute; top:0; right:10%; width:4%; height:100%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:4px; box-shadow:inset 2px 0 6px rgba(0,0,0,.3); }
.scn-menelaus-promises-mixing-bowl .ceiling-beam { position:absolute; top:4%; left:8%; right:8%; height:3%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.4); }
@keyframes mp-fire { 0% { transform:scale(1); opacity:.7 } 50% { transform:scale(1.15); opacity:1 } 100% { transform:scale(.95); opacity:.8 } }
@keyframes mp-left { 0%,100% { transform:rotate(0) } 25% { transform:rotate(2deg) translateX(-2px) } 50% { transform:rotate(-1deg) translateX(-4px) } 75% { transform:rotate(1deg) translateX(-1px) } }
@keyframes mp-right { 0%,100% { transform:rotate(0) } 25% { transform:rotate(-1deg) translateX(2px) } 50% { transform:rotate(2deg) translateX(4px) } 75% { transform:rotate(0) translateX(1px) } }
@keyframes mp-bowl { 0%,100% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-4px) rotate(2deg) } }

.scn-suitors-plot-ambush { background: linear-gradient(180deg, #6a8aaa 0%, #8aaa8a 40%, #b8a070 100%), radial-gradient(ellipse at 50% 100%, #c8b890 0%, transparent 60%); }
.scn-suitors-plot-ambush .sky-outdoor { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #7a9aba 0%, #9aba9a 100%); animation: sa-sky 15s ease-in-out infinite alternate; }
.scn-suitors-plot-ambush .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); border-radius:60% 40% 0 0 / 20% 10% 0 0; }
.scn-suitors-plot-ambush .temple-wall { position:absolute; bottom:20%; left:15%; right:15%; height:50%; background: linear-gradient(180deg, #c8b898 0%, #a09070 100%); border-radius:4px; box-shadow:inset 0 0 30px rgba(0,0,0,.2); }
.scn-suitors-plot-ambush .temple-wall::before { content:''; position:absolute; top:20%; left:8%; width:84%; height:4%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:2px; }
.scn-suitors-plot-ambush .suitors { position:absolute; bottom:12%; left:20%; width:60%; height:18%; display:flex; justify-content:space-around; }
.scn-suitors-plot-ambush .suitors::before { content:''; position:absolute; left:5%; width:18px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sa-fig-a 4s ease-in-out infinite; }
.scn-suitors-plot-ambush .suitors::after { content:''; position:absolute; right:20%; width:20px; height:52px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sa-fig-b 5s ease-in-out infinite; }
.scn-suitors-plot-ambush .spear-1 { position:absolute; bottom:24%; left:28%; width:3px; height:40px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); transform:rotate(-15deg); transform-origin:bottom center; border-radius:1px; box-shadow:0 0 4px rgba(0,0,0,.3); animation: sa-spear1 3s ease-in-out infinite alternate; }
.scn-suitors-plot-ambush .spear-2 { position:absolute; bottom:22%; right:30%; width:3px; height:38px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); transform:rotate(10deg); transform-origin:bottom center; border-radius:1px; box-shadow:0 0 4px rgba(0,0,0,.3); animation: sa-spear2 4s ease-in-out infinite alternate; }
.scn-suitors-plot-ambush .discus { position:absolute; bottom:30%; left:50%; width:12px; height:12px; background: radial-gradient(circle, #c8b080 0%, #a08860 100%); border-radius:50%; box-shadow:0 2px 8px rgba(0,0,0,.4); animation: sa-discus 2s ease-in-out infinite; }
.scn-suitors-plot-ambush .dust { position:absolute; bottom:10%; left:35%; right:35%; height:8%; background: radial-gradient(ellipse, rgba(200,180,140,.4) 0%, transparent 70%); filter:blur(6px); animation: sa-dust 4s ease-in-out infinite alternate; }
@keyframes sa-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes sa-fig-a { 0%,100% { transform:translateX(0) rotate(0) } 25% { transform:translateX(8px) rotate(3deg) } 50% { transform:translateX(12px) rotate(-2deg) } 75% { transform:translateX(4px) rotate(2deg) } }
@keyframes sa-fig-b { 0%,100% { transform:translateX(0) rotate(0) } 25% { transform:translateX(-6px) rotate(-3deg) } 50% { transform:translateX(-10px) rotate(2deg) } 75% { transform:translateX(-3px) rotate(-1deg) } }
@keyframes sa-spear1 { 0% { transform:rotate(-15deg) } 50% { transform:rotate(-8deg) } 100% { transform:rotate(-12deg) } }
@keyframes sa-spear2 { 0% { transform:rotate(10deg) } 50% { transform:rotate(3deg) } 100% { transform:rotate(7deg) } }
@keyframes sa-discus { 0%,100% { transform:translateX(0) translateY(0) rotate(0) } 25% { transform:translateX(-15px) translateY(-20px) rotate(45deg) } 50% { transform:translateX(5px) translateY(-10px) rotate(90deg) } 75% { transform:translateX(-10px) translateY(-15px) rotate(135deg) } }
@keyframes sa-dust { 0% { opacity:.2; transform:scale(1) } 50% { opacity:.5; transform:scale(1.2) } 100% { opacity:.1; transform:scale(.9) } }

.scn-noemon-asks-about-ship { background: linear-gradient(180deg, #5a8aba 0%, #8ab8da 50%, #b0d0e0 100%), radial-gradient(ellipse at 50% 100%, #8ab8da 0%, transparent 70%); }
.scn-noemon-asks-about-ship .sea-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a7aaa 0%, #7aaaca 100%); animation: na-sky 20s ease-in-out infinite alternate; }
.scn-noemon-asks-about-ship .sea-horizon { position:absolute; top:48%; left:0; right:0; height:4%; background: linear-gradient(180deg, #5a8aaa 0%, #4a7a9a 100%); border-radius:50%; filter:blur(3px); }
.scn-noemon-asks-about-ship .sea-water { position:absolute; bottom:0; left:0; right:0; height:52%; background: linear-gradient(180deg, #3a6a8a 0%, #2a4a6a 100%); }
.scn-noemon-asks-about-ship .sea-water::before { content:''; position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0px, rgba(255,255,255,.05) 8px, transparent 16px); animation: na-waves 8s linear infinite; }
.scn-noemon-asks-about-ship .ship-dock { position:absolute; bottom:18%; left:10%; right:30%; height:12%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:30% 0 0 30% / 50% 0 0 50%; box-shadow:0 -4px 12px rgba(0,0,0,.4); }
.scn-noemon-asks-about-ship .dock-planks { position:absolute; bottom:18%; left:10%; right:30%; height:4%; background: repeating-linear-gradient(90deg, #8a7a6a 0px, #8a7a6a 10px, #6a5a4a 10px, #6a5a4a 12px); border-radius:2px; top:auto; }
.scn-noemon-asks-about-ship .figure-noemon { position:absolute; bottom:12%; left:20%; width:20px; height:48px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: na-noemon 6s ease-in-out infinite; }
.scn-noemon-asks-about-ship .figure-noemon::after { content:''; position:absolute; top:-8px; left:2px; width:16px; height:16px; background: radial-gradient(circle, #7a6a5a 0%, #4a3a2a 70%); border-radius:50%; }
.scn-noemon-asks-about-ship .figure-antinous { position:absolute; bottom:12%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: na-antinous 6s ease-in-out infinite; }
.scn-noemon-asks-about-ship .figure-antinous::after { content:''; position:absolute; top:-8px; left:3px; width:16px; height:16px; background: radial-gradient(circle, #8a7a6a 0%, #5a4a3a 70%); border-radius:50%; }
.scn-noemon-asks-about-ship .mast { position:absolute; bottom:22%; right:18%; width:4px; height:30%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:2px; transform-origin:bottom center; animation: na-mast 10s ease-in-out infinite alternate; }
.scn-noemon-asks-about-ship .rope-coil { position:absolute; bottom:16%; left:32%; width:14px; height:6px; background: radial-gradient(ellipse, #c8b080 0%, #a08860 100%); border-radius:50%; box-shadow:0 2px 4px rgba(0,0,0,.3); animation: na-rope 5s ease-in-out infinite; }
@keyframes na-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes na-waves { 0% { transform:translateX(0) } 100% { transform:translateX(-16px) } }
@keyframes na-noemon { 0%,100% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(4px) rotate(2deg) } 50% { transform:translateX(6px) rotate(-1deg) } 75% { transform:translateX(2px) rotate(1deg) } }
@keyframes na-antinous { 0%,100% { transform:translateX(0) rotate(1deg) } 25% { transform:translateX(-3px) rotate(-2deg) } 50% { transform:translateX(-5px) rotate(1deg) } 75% { transform:translateX(-1px) rotate(-1deg) } }
@keyframes na-mast { 0% { transform:rotate(-1deg) } 50% { transform:rotate(1deg) } 100% { transform:rotate(-.5deg) } }
@keyframes na-rope { 0%,100% { transform:translateY(0) scale(1) } 50% { transform:translateY(-2px) scale(1.05) } }

.scn-proteus-caught {
  background: linear-gradient(180deg, #3a2a4a 0%, #6a5a4a 30%, #8a7a5a 60%, #4a4a3a 100%), radial-gradient(ellipse at 30% 20%, #d0a06020 0%, transparent 60%);
}
.scn-proteus-caught .sky    { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #5a4a6a 0%, #9a8a6a 100%); animation: pc-sky 8s ease-in-out infinite alternate; }
.scn-proteus-caught .sun    { position:absolute; top:15%; left:25%; width:30px; height:30px; background: radial-gradient(circle, #f0d080 0%, #d0a050 60%, transparent 80%); border-radius:50%; box-shadow:0 0 40px 15px #c09040; animation: pc-sun 6s ease-in-out infinite; }
.scn-proteus-caught .sea    { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); animation: pc-sea 12s ease-in-out infinite alternate; }
.scn-proteus-caught .sand   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:40% 60% 0 0; animation: pc-sand 20s ease-in-out infinite alternate; }
.scn-proteus-caught .seals  { position:absolute; bottom:28%; left:10%; width:120px; height:20px; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); border-radius:50% 50% 30% 30%; filter:blur(2px); animation: pc-seals 9s ease-in-out infinite; animation-delay:-3s; }
.scn-proteus-caught .figures{ position:absolute; bottom:25%; left:60%; width:24px; height:40px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:40% 40% 30% 30%; animation: pc-figures 7s ease-in-out infinite; transform-origin:bottom; }
.scn-proteus-caught .mist   { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 80%, #b0a08040 0%, transparent 70%); filter:blur(20px); animation: pc-mist 15s linear infinite; }
@keyframes pc-sky   { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pc-sun   { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(8px,3px) scale(1.05) } 100% { transform: translate(-4px,2px) scale(0.95) } }
@keyframes pc-sea   { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes pc-sand  { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(2px) scale(0.98) } 100% { transform: translateY(-1px) scale(1.01) } }
@keyframes pc-seals { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(10px) rotate(3deg) } 70% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pc-figures { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(15px) scaleY(1.02) rotate(2deg) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes pc-mist { 0% { opacity:0.3; transform:translateX(0) } 50% { opacity:0.6; transform:translateX(30px) } 100% { opacity:0.3; transform:translateX(-20px) } }

.scn-menelaus-asks-proteus {
  background: linear-gradient(180deg, #5a6a7a 0%, #8a9a8a 30%, #aab09a 60%, #7a8a6a 100%), radial-gradient(ellipse at 40% 60%, #d0c0a040 0%, transparent 70%);
}
.scn-menelaus-asks-proteus .sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a7a8a 0%, #9aa8a0 100%); animation: ma-sky 10s ease-in-out infinite alternate; }
.scn-menelaus-asks-proteus .sun    { position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #f0e0a0 0%, #d0b060 60%, transparent 80%); border-radius:50%; box-shadow:0 0 60px 20px #c0a050; animation: ma-sun 12s ease-in-out infinite; }
.scn-menelaus-asks-proteus .sea    { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); animation: ma-sea 15s ease-in-out infinite alternate; }
.scn-menelaus-asks-proteus .sand   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%); border-radius:30% 70% 0 0; animation: ma-sand 18s ease-in-out infinite alternate; }
.scn-menelaus-asks-proteus .figure-a{ position:absolute; bottom:25%; left:30%; width:20px; height:44px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40%; animation: ma-fig1 8s ease-in-out infinite; transform-origin:bottom; }
.scn-menelaus-asks-proteus .figure-b{ position:absolute; bottom:25%; right:30%; width:22px; height:46px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40%; animation: ma-fig2 8s ease-in-out infinite; animation-delay:-2s; transform-origin:bottom; }
.scn-menelaus-asks-proteus .light  { position:absolute; top:20%; left:40%; width:80px; height:80px; background: radial-gradient(circle, #fff0c040 0%, transparent 70%); filter:blur(30px); animation: ma-light 6s ease-in-out infinite alternate; }
@keyframes ma-sky   { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ma-sun   { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(-10px,5px) scale(1.03) } 100% { transform: translate(5px,-3px) scale(0.97) } }
@keyframes ma-sea   { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(0.99) } }
@keyframes ma-sand  { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(-1px) } }
@keyframes ma-fig1  { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(8px) rotate(2deg) } 66% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) } }
@keyframes ma-fig2  { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-5px) rotate(-2deg) } 66% { transform: translateX(6px) rotate(1deg) } 100% { transform: translateX(0) } }
@keyframes ma-light { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.5; transform: scale(0.95) } }

.scn-proteus-tells-menelaus-to-go-back-to-egypt {
  background: linear-gradient(180deg, #3a2a4a 0%, #5a4a6a 20%, #7a6a5a 50%, #4a3a3a 100%), radial-gradient(ellipse at 60% 80%, #c0a05020 0%, transparent 60%);
}
.scn-proteus-tells-menelaus-to-go-back-to-egypt .sky    { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #5a4a6a 0%, #9a8a6a 100%); animation: pm-sky 6s ease-in-out infinite alternate; }
.scn-proteus-tells-menelaus-to-go-back-to-egypt .sea    { position:absolute; bottom:25%; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); animation: pm-sea 8s ease-in-out infinite alternate; }
.scn-proteus-tells-menelaus-to-go-back-to-egypt .land   { position:absolute; bottom:20%; left:10%; width:40%; height:30%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:0 40% 0 0; animation: pm-land 10s ease-in-out infinite alternate; }
.scn-proteus-tells-menelaus-to-go-back-to-egypt .ship   { position:absolute; bottom:30%; left:20%; width:80px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:40% 40% 20% 20%; animation: pm-ship 5s ease-in-out infinite; }
.scn-proteus-tells-menelaus-to-go-back-to-egypt .figure-p{ position:absolute; bottom:22%; left:45%; width:24px; height:48px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 30% 30%; animation: pm-figp 4s ease-in-out infinite; transform-origin:bottom; }
.scn-proteus-tells-menelaus-to-go-back-to-egypt .figure-m{ position:absolute; bottom:22%; right:30%; width:22px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 30% 30%; animation: pm-figm 4s ease-in-out infinite; animation-delay:-2s; transform-origin:bottom; }
.scn-proteus-tells-menelaus-to-go-back-to-egypt .clouds { position:absolute; top:10%; left:5%; width:130px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%); filter:blur(6px); animation: pm-clouds 20s linear infinite; }
@keyframes pm-sky   { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pm-sea   { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.97) } }
@keyframes pm-land  { 0% { transform: scale(1) } 50% { transform: scale(1.02) translateY(2px) } 100% { transform: scale(0.98) translateY(-1px) } }
@keyframes pm-ship  { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 75% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) } }
@keyframes pm-figp  { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(10px) rotate(3deg) scaleY(1.02) } 70% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) } }
@keyframes pm-figm  { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-12px) scaleY(0.95) rotate(-4deg) } 100% { transform: translateX(0) } }
@keyframes pm-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(-150px) } }

.scn-menelaus-heartsick {
  background: linear-gradient(180deg, #4a3a5a 0%, #6a5a7a 30%, #8a7a6a 60%, #5a4a3a 100%), radial-gradient(ellipse at 50% 80%, #b0906020 0%, transparent 60%);
}
.scn-menelaus-heartsick .sky    { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #5a4a6a 0%, #9a8a7a 100%); animation: mh-sky 8s ease-in-out infinite alternate; }
.scn-menelaus-heartsick .sun    { position:absolute; top:20%; right:30%; width:35px; height:35px; background: radial-gradient(circle, #e0c090 0%, #c0a060 60%, transparent 80%); border-radius:50%; box-shadow:0 0 50px 15px #b09050; animation: mh-sun 10s ease-in-out infinite; }
.scn-menelaus-heartsick .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius:50% 50% 0 0; animation: mh-ground 14s ease-in-out infinite alternate; }
.scn-menelaus-heartsick .figure { position:absolute; bottom:15%; left:50%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 30% 30%; transform:translateX(-50%) rotate(5deg); animation: mh-fig 6s ease-in-out infinite; transform-origin:bottom; }
.scn-menelaus-heartsick .cape   { position:absolute; bottom:18%; left:45%; width:40px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 10% 10%; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: mh-cape 7s ease-in-out infinite; }
.scn-menelaus-heartsick .shadow { position:absolute; bottom:10%; left:40%; width:60px; height:20px; background: radial-gradient(ellipse, #2a1a0a80 0%, transparent 70%); animation: mh-shadow 9s ease-in-out infinite alternate; }
@keyframes mh-sky   { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mh-sun   { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(6px,4px) scale(1.04) } 100% { transform: translate(-3px,-2px) scale(0.96) } }
@keyframes mh-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(0.99) } }
@keyframes mh-fig   { 0% { transform: translateX(-50%) rotate(5deg) } 50% { transform: translateX(-50%) rotate(0deg) scaleY(0.98) } 100% { transform: translateX(-50%) rotate(5deg) } }
@keyframes mh-cape  { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-5px) rotate(-5deg) } 100% { transform: translateX(0) } }
@keyframes mh-shadow { 0% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.8; transform: scaleX(1.1) } 100% { opacity:0.6; transform: scaleX(0.9) } }

/* telemachus-weeps */
.scn-telemachus-weeps {
  background: linear-gradient(180deg, #f9e8c0 0%, #cba86e 50%, #8b6a3a 100%), radial-gradient(ellipse at 60% 30%, #fff5d0 0%, transparent 60%);
}
.scn-telemachus-weeps .sunlight {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, rgba(255,240,180,.5) 0%, transparent 70%);
  animation: tw-sun 8s ease-in-out infinite alternate;
}
.scn-telemachus-weeps .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8925a 0%, #7a5a2a 100%);
  border-radius: 30% 40% 0 0;
  animation: tw-ground 10s ease-in-out infinite;
}
.scn-telemachus-weeps .crowd-bg {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #8a7040 0%, transparent 80%);
  filter: blur(4px);
  animation: tw-crowd 6s ease-in-out infinite alternate;
}
.scn-telemachus-weeps .figure {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #dbb57a 0%, #a67a40 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,.3);
  animation: tw-figure 4s ease-in-out infinite;
}
.scn-telemachus-weeps .staff {
  position: absolute; bottom: 20%; left: 42%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  animation: tw-staff 3s ease-in-out infinite;
}
.scn-telemachus-weeps .shadow {
  position: absolute; bottom: 15%; left: 40%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 90%);
  animation: tw-shadow 4s ease-in-out infinite;
}
.scn-telemachus-weeps .dust {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,170,100,.3) 0%, transparent 70%);
  filter: blur(3px);
  animation: tw-dust 12s linear infinite;
}
@keyframes tw-sun {
  0% { opacity: .7; transform: translate(0,0) }
  50% { opacity: 1; transform: translate(5px,-3px) scale(1.02) }
  100% { opacity: .8; transform: translate(-5px,0) }
}
@keyframes tw-ground {
  0% { transform: translateY(0) }
  50% { transform: translateY(-3px) }
  100% { transform: translateY(0) }
}
@keyframes tw-crowd {
  0% { opacity: .5; filter: blur(6px) }
  50% { opacity: .7; filter: blur(4px) }
  100% { opacity: .5; filter: blur(6px) }
}
@keyframes tw-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg) }
  25% { transform: translateX(-48%) translateY(-2px) rotate(0deg) }
  50% { transform: translateX(-50%) translateY(0) rotate(1deg) }
  75% { transform: translateX(-52%) translateY(-2px) rotate(0deg) }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg) }
}
@keyframes tw-staff {
  0% { transform: rotate(-20deg) translateY(0) }
  50% { transform: rotate(-15deg) translateY(-4px) }
  100% { transform: rotate(-20deg) translateY(0) }
}
@keyframes tw-shadow {
  0% { transform: scaleX(1); opacity: .4 }
  50% { transform: scaleX(1.3) scaleY(.8); opacity: .6 }
  100% { transform: scaleX(1); opacity: .4 }
}
@keyframes tw-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0 }
  20% { opacity: .4 }
  80% { opacity: .3 }
  100% { transform: translate(-40px,-30px) scale(2); opacity: 0 }
}

/* antinous-blames-penelope */
.scn-antinous-blames-penelope {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b88a 40%, #a07848 100%), radial-gradient(ellipse at 30% 60%, #ffe0a0 0%, transparent 60%);
}
.scn-antinous-blames-penelope .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8b08a 0%, #9a7a58 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  animation: ab-wall 12s ease-in-out infinite alternate;
}
.scn-antinous-blames-penelope .loom {
  position: absolute; bottom: 25%; left: 20%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
  animation: ab-loom 8s ease-in-out infinite;
}
.scn-antinous-blames-penelope .figure {
  position: absolute; bottom: 20%; left: 50%; width: 36px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a06a 0%, #8a6030 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: ab-figure 5s ease-in-out infinite;
}
.scn-antinous-blames-penelope .hand-point {
  position: absolute; bottom: 38%; left: 55%; width: 12px; height: 22px;
  background: linear-gradient(180deg, #c8a06a 0%, #9a7a40 100%);
  border-radius: 50% 50% 0 0 / 90% 90% 0 0;
  transform: rotate(30deg);
  animation: ab-hand 3s ease-in-out infinite alternate;
}
.scn-antinous-blames-penelope .shawl {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 100%);
  border-radius: 30% 70% 50% 50% / 40% 60% 60% 40%;
  animation: ab-shawl 7s ease-in-out infinite;
}
.scn-antinous-blames-penelope .shadow-accuse {
  position: absolute; bottom: 10%; left: 35%; width: 80px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 80%);
  animation: ab-shadow 4s ease-in-out infinite;
}
.scn-antinous-blames-penelope .dust-mote {
  position: absolute; top: 20%; left: 60%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(255,200,100,.4) 0%, transparent 70%);
  filter: blur(2px);
  animation: ab-dust 25s linear infinite;
}
@keyframes ab-wall {
  0% { opacity: .8 }
  50% { opacity: 1 }
  100% { opacity: .85 }
}
@keyframes ab-loom {
  0% { transform: scaleY(1) }
  50% { transform: scaleY(.97) translateY(2px) }
  100% { transform: scaleY(1) }
}
@keyframes ab-figure {
  0% { transform: translateX(-50%) rotate(-1deg) }
  25% { transform: translateX(-48%) rotate(0deg) scale(1.01) }
  50% { transform: translateX(-50%) rotate(1deg) }
  75% { transform: translateX(-52%) rotate(0deg) scale(1.01) }
  100% { transform: translateX(-50%) rotate(-1deg) }
}
@keyframes ab-hand {
  0% { transform: rotate(30deg) translateY(0) }
  50% { transform: rotate(35deg) translateY(-3px) }
  100% { transform: rotate(30deg) translateY(0) }
}
@keyframes ab-shawl {
  0% { transform: translate(0,0) rotate(0deg) }
  50% { transform: translate(-2px,2px) rotate(-3deg) }
  100% { transform: translate(0,0) rotate(0deg) }
}
@keyframes ab-shadow {
  0% { opacity: .5; transform: scaleX(1) }
  50% { opacity: .7; transform: scaleX(1.2) }
  100% { opacity: .5; transform: scaleX(1) }
}
@keyframes ab-dust {
  0% { transform: translate(0,0); opacity: 0 }
  10% { opacity: .3 }
  90% { opacity: .2 }
  100% { transform: translate(-20px,-40px); opacity: 0 }
}

/* telemachus-refuses-to-send-mother-away */
.scn-telemachus-refuses-to-send-mother-away {
  background: linear-gradient(180deg, #e8d8b8 0%, #c0a87a 40%, #907048 100%), radial-gradient(ellipse at 70% 40%, #ffe8b0 0%, transparent 50%);
}
.scn-telemachus-refuses-to-send-mother-away .doorway {
  position: absolute; inset: 20% 30% 10% 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  animation: tr-doorway 15s ease-in-out infinite alternate;
}
.scn-telemachus-refuses-to-send-mother-away .mother {
  position: absolute; bottom: 20%; left: 45%; width: 34px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4b08a 0%, #9a7a58 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: tr-mother 8s ease-in-out infinite;
}
.scn-telemachus-refuses-to-send-mother-away .figure {
  position: absolute; bottom: 18%; left: 55%; width: 38px; height: 56px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a86a 0%, #8a6030 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: tr-figure 5s ease-in-out infinite;
}
.scn-telemachus-refuses-to-send-mother-away .arm-cross {
  position: absolute; bottom: 30%; left: 62%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #c8a86a 0%, #a07840 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform: rotate(-30deg);
  animation: tr-arm 4s ease-in-out infinite alternate;
}
.scn-telemachus-refuses-to-send-mother-away .hearth {
  position: absolute; bottom: 10%; left: 30%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #ffb060 0%, #b06020 100%);
  border-radius: 40% 40% 0 0;
  animation: tr-hearth 3s ease-in-out infinite;
}
.scn-telemachus-refuses-to-send-mother-away .shadow-stand {
  position: absolute; bottom: 8%; left: 35%; width: 70px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 80%);
  animation: tr-shadow 5s ease-in-out infinite;
}
.scn-telemachus-refuses-to-send-mother-away .beam {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 6px;
  background: linear-gradient(90deg, transparent, #a08050, transparent);
  border-radius: 3px;
  animation: tr-beam 20s linear infinite;
}
@keyframes tr-doorway {
  0% { opacity: .8 }
  50% { opacity: 1 }
  100% { opacity: .85 }
}
@keyframes tr-mother {
  0% { transform: translateX(-50%) translateY(0) }
  50% { transform: translateX(-48%) translateY(-2px) scale(1.01) }
  100% { transform: translateX(-50%) translateY(0) }
}
@keyframes tr-figure {
  0% { transform: translateX(-50%) rotate(-1deg) }
  25% { transform: translateX(-48%) rotate(0deg) scale(1.01) }
  50% { transform: translateX(-50%) rotate(1deg) }
  75% { transform: translateX(-52%) rotate(0deg) scale(1.01) }
  100% { transform: translateX(-50%) rotate(-1deg) }
}
@keyframes tr-arm {
  0% { transform: rotate(-30deg) translateY(0) }
  50% { transform: rotate(-25deg) translateY(-2px) }
  100% { transform: rotate(-30deg) translateY(0) }
}
@keyframes tr-hearth {
  0% { transform: scale(1); box-shadow: 0 0 20px rgba(255,176,96,.4) }
  50% { transform: scale(1.05); box-shadow: 0 0 30px rgba(255,176,96,.6) }
  100% { transform: scale(1); box-shadow: 0 0 20px rgba(255,176,96,.4) }
}
@keyframes tr-shadow {
  0% { opacity: .4; transform: scaleX(1) }
  50% { opacity: .6; transform: scaleX(1.2) }
  100% { opacity: .4; transform: scaleX(1) }
}
@keyframes tr-beam {
  0% { transform: translateX(-30px) }
  100% { transform: translateX(110%) }
}

/* jove-sends-eagles-omen */
.scn-jove-sends-eagles-omen {
  background: linear-gradient(180deg, #b8d4f0 0%, #7a9ec8 40%, #4a688a 100%), radial-gradient(ellipse at 50% 20%, #e0f0ff 0%, transparent 60%);
}
.scn-jove-sends-eagles-omen .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8ddf0 0%, #8aa8c8 100%);
  animation: je-sky 15s ease-in-out infinite alternate;
}
.scn-jove-sends-eagles-omen .mountain {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a7a5a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: je-mountain 20s ease-in-out infinite;
}
.scn-jove-sends-eagles-omen .eagle-a {
  position: absolute; top: 15%; left: 20%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #2a2a1a 0%, #0a0a0a 100%);
  border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%;
  clip-path: polygon(0% 40%, 40% 30%, 100% 40%, 80% 100%, 60% 70%, 40% 90%, 20% 70%);
  animation: je-eagle-a 8s ease-in-out infinite alternate;
}
.scn-jove-sends-eagles-omen .eagle-b {
  position: absolute; top: 10%; right: 25%; width: 45px; height: 28px;
  background: radial-gradient(ellipse at 50% 30%, #2a2a1a 0%, #0a0a0a 100%);
  border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%;
  clip-path: polygon(0% 40%, 40% 30%, 100% 40%, 80% 100%, 60% 70%, 40% 90%, 20% 70%);
  animation: je-eagle-b 10s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-jove-sends-eagles-omen .assembly {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #8a6a4a 0%, transparent 80%);
  border-radius: 30% 30% 0 0;
  filter: blur(2px);
  animation: je-assembly 12s ease-in-out infinite;
}
.scn-jove-sends-eagles-omen .wind {
  position: absolute; top: 25%; left: 0; right: 0; height: 8px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.2), transparent);
  filter: blur(2px);
  animation: je-wind 25s linear infinite;
}
.scn-jove-sends-eagles-omen .sunburst {
  position: absolute; top: 5%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffc040 0%, #ffa020 30%, transparent 70%);
  border-radius: 50%;
  animation: je-sunburst 6s ease-in-out infinite;
}
.scn-jove-sends-eagles-omen .shadow-land {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,.2), transparent);
  filter: blur(4px);
  animation: je-shadow 30s linear infinite;
}
@keyframes je-sky {
  0% { opacity: .8 }
  50% { opacity: 1 }
  100% { opacity: .75 }
}
@keyframes je-mountain {
  0% { transform: translateY(0) scaleY(1) }
  50% { transform: translateY(-4px) scaleY(1.02) }
  100% { transform: translateY(0) scaleY(1) }
}
@keyframes je-eagle-a {
  0% { transform: translate(0,0) rotate(-5deg) scaleX(1) }
  25% { transform: translate(10px,-8px) rotate(0deg) scaleX(-1) }
  50% { transform: translate(-5px,-3px) rotate(3deg) scaleX(1) }
  75% { transform: translate(8px,-12px) rotate(-2deg) scaleX(-1) }
  100% { transform: translate(0,0) rotate(-5deg) scaleX(1) }
}
@keyframes je-eagle-b {
  0% { transform: translate(0,0) rotate(5deg) scaleX(-1) }
  25% { transform: translate(-8px,-6px) rotate(0deg) scaleX(1) }
  50% { transform: translate(6px,-4px) rotate(-3deg) scaleX(-1) }
  75% { transform: translate(-10px,-10px) rotate(2deg) scaleX(1) }
  100% { transform: translate(0,0) rotate(5deg) scaleX(-1) }
}
@keyframes je-assembly {
  0% { opacity: .4; filter: blur(3px) }
  50% { opacity: .6; filter: blur(2px) }
  100% { opacity: .4; filter: blur(3px) }
}
@keyframes je-wind {
  0% { transform: translateX(-20px); opacity: 0 }
  50% { opacity: .5 }
  100% { transform: translateX(120vw); opacity: 0 }
}
@keyframes je-sunburst {
  0% { transform: scale(.9); box-shadow: 0 0 30px rgba(255,192,64,.5) }
  50% { transform: scale(1.1); box-shadow: 0 0 50px rgba(255,192,64,.8) }
  100% { transform: scale(.9); box-shadow: 0 0 30px rgba(255,192,64,.5) }
}
@keyframes je-shadow {
  0% { opacity: .2 }
  50% { opacity: .4 }
  100% { opacity: .2 }
}

.scn-achilles-laments-agamemnon {
  background: linear-gradient(180deg, #0c0c1e 0%, #1a1a3a 40%, #2a2a4e 100%), radial-gradient(ellipse at 50% 100%, #2a2a4e 0%, transparent 70%);
}
.scn-achilles-laments-agamemnon .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #12122a 0%, #1e1e3a 100%); animation: al-sky 20s ease-in-out infinite alternate; }
.scn-achilles-laments-agamemnon .mound { position:absolute; bottom:25%; left:50%; width:120px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a1e 0%, #1a1a0e 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.8), inset 0 -6px 10px rgba(0,0,0,.6); animation: al-mound 8s ease-in-out infinite; }
.scn-achilles-laments-agamemnon .figure-left { position:absolute; bottom:27%; left:43%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: al-bow 6s ease-in-out infinite; }
.scn-achilles-laments-agamemnon .figure-right { position:absolute; bottom:27%; left:57%; width:18px; height:42px; background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: al-bow 7s ease-in-out infinite 1s; }
.scn-achilles-laments-agamemnon .ash-particle { position:absolute; bottom:30%; left:48%; width:4px; height:4px; background: #5a5a6a; border-radius:50%; filter: blur(2px); animation: al-ash 15s linear infinite; }
.scn-achilles-laments-agamemnon .star { position:absolute; top:5%; left:20%; width:2px; height:2px; background:#c0c0d0; border-radius:50%; box-shadow: 0 0 6px 2px rgba(192,192,208,.4); animation: al-twinkle 4s ease-in-out infinite alternate; }
.scn-achilles-laments-agamemnon .hill-bg { position:absolute; bottom:40%; left:-10%; right:10%; height:20%; background: linear-gradient(180deg, #1e2a2a 0%, #0e1a1a 100%); border-radius:30% 60% 0 0; filter: blur(5px); animation: al-breathe 12s ease-in-out infinite; }
@keyframes al-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes al-mound { 0%,100% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(1.01) translateY(-2px); } }
@keyframes al-bow { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(3deg) translateY(-1px); } }
@keyframes al-ash { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.8; } 50% { transform: translateY(-30px) translateX(10px) scale(0.8); opacity:.3; } 100% { transform: translateY(-60px) translateX(-5px) scale(0.3); opacity:0; } }
@keyframes al-twinkle { 0% { opacity:.3; transform:scale(0.8); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:.6; transform:scale(0.9); } }
@keyframes al-breathe { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }

.scn-agamemnon-recounts-funeral {
  background: linear-gradient(180deg, #1a1010 0%, #2a1a10 40%, #3a2018 100%), radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 70%);
}
.scn-agamemnon-recounts-funeral .pyre-base { position:absolute; bottom:20%; left:50%; width:100px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%); border-radius:10% 10% 30% 30%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.6); }
.scn-agamemnon-recounts-funeral .pyre-flame { position:absolute; bottom:30%; left:48%; width:70px; height:80px; background: radial-gradient(ellipse at 50% 100%, #d06030 0%, #a04020 40%, #602010 100%); border-radius:50% 50% 30% 30%; filter: blur(8px); animation: arf-flame 3s ease-in-out infinite alternate; }
.scn-agamemnon-recounts-funeral .warrior { position:absolute; bottom:25%; left:40%; width:22px; 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: arf-bow 5s ease-in-out infinite; }
.scn-agamemnon-recounts-funeral .spear { position:absolute; bottom:28%; left:42%; width:3px; height:55px; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); transform: rotate(20deg); transform-origin: bottom center; animation: arf-spear 6s ease-in-out infinite; }
.scn-agamemnon-recounts-funeral .dust-swirl { position:absolute; top:30%; left:10%; width:80px; height:80px; background: radial-gradient(ellipse, rgba(180,160,120,.15) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: arf-dust 15s linear infinite; }
.scn-agamemnon-recounts-funeral .ember { position:absolute; bottom:40%; left:45%; width:4px; height:4px; background: #d06020; border-radius:50%; box-shadow: 0 0 8px #d06020; animation: arf-ember 4s ease-in-out infinite; }
.scn-agamemnon-recounts-funeral .smoke { position:absolute; bottom:50%; left:42%; width:40px; height:40px; background: radial-gradient(ellipse, rgba(200,180,160,.2) 0%, transparent 70%); border-radius:50%; filter: blur(12px); animation: arf-smoke 10s ease-in-out infinite; }
.scn-agamemnon-recounts-funeral .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a10 0%, #0e0a06 100%); }
@keyframes arf-flame { 0% { transform: scaleY(0.9) translateY(0); opacity:.8; } 50% { transform: scaleY(1.1) translateY(-5px); opacity:1; } 100% { transform: scaleY(1) translateY(0); opacity:.9; } }
@keyframes arf-bow { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes arf-spear { 0%,100% { transform: rotate(20deg); } 50% { transform: rotate(18deg) translateX(3px); } }
@keyframes arf-dust { 0% { transform: translateX(-30px) scale(1); opacity:.3; } 50% { transform: translateX(30px) scale(1.3); opacity:.5; } 100% { transform: translateX(80px) scale(1); opacity:.2; } }
@keyframes arf-ember { 0% { transform: translateY(0) scale(1); opacity:1; } 50% { transform: translateY(-15px) scale(0.6); opacity:.5; } 100% { transform: translateY(-30px) scale(0.2); opacity:0; } }
@keyframes arf-smoke { 0%,100% { transform: translateY(0) scale(1); opacity:.3; } 50% { transform: translateY(-20px) scale(1.2); opacity:.5; } }

.scn-agamemnon-recounts-tomb {
  background: linear-gradient(180deg, #0a0a1a 0%, #14142a 40%, #1e1e3a 100%), radial-gradient(ellipse at 50% 60%, #2a2a4a 0%, transparent 70%);
}
.scn-agamemnon-recounts-tomb .cliff { position:absolute; bottom:25%; left:20%; right:0; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:30% 0 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.7); animation: art-sway 20s ease-in-out infinite; }
.scn-agamemnon-recounts-tomb .sea { position:absolute; bottom:30%; left:0; right:30%; height:10%; background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%); border-radius:0 20% 0 0; animation: art-wave 8s ease-in-out infinite alternate; }
.scn-agamemnon-recounts-tomb .tomb { position:absolute; bottom:35%; left:50%; width:80px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); border-radius:5% 5% 3% 3%; box-shadow: 0 6px 14px rgba(0,0,0,.6), inset 0 -8px 10px rgba(0,0,0,.4); animation: art-sway 20s ease-in-out infinite; }
.scn-agamemnon-recounts-tomb .glow { position:absolute; bottom:40%; left:50%; width:20px; height:25px; transform:translateX(-50%); background: radial-gradient(circle, #e0a060 0%, #c08040 60%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 30px 8px #c08040, 0 0 60px 16px rgba(192,128,64,.4); animation: art-glow 4s ease-in-out infinite alternate; }
.scn-agamemnon-recounts-tomb .offering { position:absolute; bottom:43%; left:46%; width:12px; height:15px; background: linear-gradient(180deg, #a08050 0%, #604020 100%); border-radius:20% 20% 40% 40%; animation: art-offer 6s ease-in-out infinite; }
.scn-agamemnon-recounts-tomb .star { position:absolute; top:8%; left:70%; width:2px; height:2px; background:#d0d0e0; border-radius:50%; box-shadow: 0 0 6px 2px rgba(208,208,224,.3); animation: art-twinkle 3s ease-in-out infinite alternate; }
.scn-agamemnon-recounts-tomb .moon { position:absolute; top:12%; right:15%; width:20px; height:20px; background: radial-gradient(circle, #d0d0e0 0%, #a0a0b0 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(208,208,224,.3); animation: art-moon 7s ease-in-out infinite; }
.scn-agamemnon-recounts-tomb .wave { position:absolute; bottom:26%; left:10%; width:60px; height:8px; background: linear-gradient(180deg, rgba(30,50,70,.4) 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: art-wave2 12s ease-in-out infinite; }
@keyframes art-sway { 0%,100% { transform: translateX(0); } 50% { transform: translateX(3px); } }
@keyframes art-wave { 0% { transform: translateY(0) scaleX(1); opacity:.7; } 50% { transform: translateY(2px) scaleX(1.02); opacity:1; } 100% { transform: translateY(0) scaleX(1); opacity:.8; } }
@keyframes art-glow { 0% { box-shadow: 0 0 20px 4px #b08040; opacity:.8; } 50% { box-shadow: 0 0 40px 12px #e0a060; opacity:1; } 100% { box-shadow: 0 0 25px 6px #b08040; opacity:.9; } }
@keyframes art-offer { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(3deg); } }
@keyframes art-twinkle { 0% { opacity:.4; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes art-moon { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } }
@keyframes art-wave2 { 0%,100% { transform: translateX(0) scaleY(1); opacity:.4; } 50% { transform: translateX(-10px) scaleY(1.2); opacity:.6; } }

.scn-agamemnon-laments-return {
  background: linear-gradient(180deg, #0a0a0e 0%, #141420 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 80%, #1e1e3a 0%, transparent 70%);
}
.scn-agamemnon-laments-return .wall-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(180deg, #2a2020 0%, #0e0a0a 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,.6); animation: alr-pulse 15s ease-in-out infinite; }
.scn-agamemnon-laments-return .wall-right { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(180deg, #2a2020 0%, #0e0a0a 100%); box-shadow: inset 10px 0 20px rgba(0,0,0,.6); animation: alr-pulse 15s ease-in-out infinite 1s; }
.scn-agamemnon-laments-return .floor { position:absolute; bottom:0; left:30%; right:30%; height:25%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.8); }
.scn-agamemnon-laments-return .victim { position:absolute; bottom:15%; left:48%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-80deg); transform-origin: bottom center; animation: alr-fall 6s ease-in-out infinite; }
.scn-agamemnon-laments-return .killer { position:absolute; bottom:20%; left:55%; width:25px; height:55px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: alr-stand 8s ease-in-out infinite; }
.scn-agamemnon-laments-return .blade { position:absolute; bottom:40%; left:57%; width:3px; height:45px; background: linear-gradient(180deg, #8a8a8a 0%, #3a3a3a 100%); transform: rotate(-30deg); transform-origin: bottom center; animation: alr-stab 6s ease-in-out infinite; }
.scn-agamemnon-laments-return .shadow-splash { position:absolute; bottom:10%; left:40%; width:120px; height:40px; background: radial-gradient(ellipse, rgba(60,20,20,.3) 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: alr-splash 8s ease-in-out infinite; }
.scn-agamemnon-laments-return .torch-glow { position:absolute; top:28%; left:18%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 100%, #a04020 0%, #602010 40%, transparent 100%); filter: blur(10px); animation: alr-torch 3s ease-in-out infinite alternate; }
@keyframes alr-pulse { 0%,100% { opacity:.9; } 50% { opacity:1; } }
@keyframes alr-fall { 0%,100% { transform: rotate(-80deg) scale(1); } 50% { transform: rotate(-90deg) scale(1.02) translateX(5px); } }
@keyframes alr-stand { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes alr-stab { 0%,100% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-3px); } }
@keyframes alr-splash { 0%,100% { transform: scale(1) translateX(0); opacity:.4; } 50% { transform: scale(1.1) translateX(5px); opacity:.6; } }
@keyframes alr-torch { 0% { opacity:.6; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.7; transform: scaleY(1); } }

.scn-achilles-laments { background: linear-gradient(180deg, #0a0a1a 0%, #1a1020 50%, #0a0810 100%), radial-gradient(ellipse at 50% 80%, #2a1a2a 0%, transparent 70%); }
.scn-achilles-laments .bg-abyss { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1020 50%, #0a0810 100%); animation: al-abyss 12s ease-in-out infinite alternate; }
.scn-achilles-laments .ground-marshy { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a1218 0%, #2a1a20 60%, transparent 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; animation: al-ground 8s ease-in-out infinite alternate; }
.scn-achilles-laments .torch-flame { position:absolute; bottom:38%; left:22%; width:8px; height:24px; background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #ff8040 40%, transparent 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 24px 8px rgba(255,160,64,.5), 0 0 48px 16px rgba(255,128,64,.2); animation: al-torch 2s ease-in-out infinite alternate; }
.scn-achilles-laments .figure-achilles { position:absolute; bottom:20%; left:45%; width:28px; height:60px; background: linear-gradient(180deg, #2a1a20 0%, #0a0810 100%); border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%; transform-origin: bottom center; animation: al-figure 6s ease-in-out infinite; }
.scn-achilles-laments .river-styx { position:absolute; bottom:12%; left:10%; right:10%; height:8%; background: linear-gradient(90deg, #0a0a1a 0%, #1a202a 50%, #0a0a1a 100%); filter: blur(3px); animation: al-river 10s ease-in-out infinite alternate; }
.scn-achilles-laments .shade-wisp { position:absolute; left:70%; top:20%; width:12px; height:12px; background: radial-gradient(circle, rgba(255,255,255,.15) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: al-wisp 14s linear infinite; }
@keyframes al-abyss { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes al-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes al-torch { 0% { transform: scaleY(1) rotate(0deg); opacity:.8 } 50% { transform: scaleY(1.1) rotate(2deg); opacity:1 } 100% { transform: scaleY(.95) rotate(-1deg); opacity:.9 } }
@keyframes al-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(-3deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes al-river { 0% { opacity:.4; background-position:0% 50% } 50% { opacity:.6; background-position:100% 50% } 100% { opacity:.4; background-position:0% 50% } }
@keyframes al-wisp { 0% { transform: translate(0,0) scale(1) } 25% { transform: translate(20px,-10px) scale(1.3) } 50% { transform: translate(40px,5px) scale(.8) } 75% { transform: translate(60px,-15px) scale(1.2) } 100% { transform: translate(80px,0) scale(1) } }

.scn-ulysses-tells-of-neoptolemus { background: linear-gradient(180deg, #1a1210 0%, #2a2018 50%, #1a1210 100%), radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%); }
.scn-ulysses-tells-of-neoptolemus .tent-left { position:absolute; left:0; top:0; bottom:0; width:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); clip-path: polygon(30% 0%, 100% 0%, 80% 100%, 0% 100%); animation: utn-tent 20s ease-in-out infinite alternate; }
.scn-ulysses-tells-of-neoptolemus .tent-right { position:absolute; right:0; top:0; bottom:0; width:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); clip-path: polygon(0% 0%, 70% 0%, 100% 100%, 20% 100%); animation: utn-tent 20s ease-in-out infinite alternate-reverse; }
.scn-ulysses-tells-of-neoptolemus .floor-rug { position:absolute; bottom:8%; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: utn-rug 8s ease-in-out infinite alternate; }
.scn-ulysses-tells-of-neoptolemus .lamp-glow { position:absolute; bottom:45%; left:50%; width:14px; height:20px; transform:translateX(-50%); background: radial-gradient(circle at 50% 100%, #ffd080 0%, #b08040 60%, transparent 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,.3); animation: utn-lamp 3s ease-in-out infinite alternate; }
.scn-ulysses-tells-of-neoptolemus .figure-ulysses { position:absolute; bottom:16%; left:28%; width:26px; height:44px; background: linear-gradient(180deg, #2a1a10 0%, #0a0800 100%); border-radius: 50% 40% 30% 30% / 60% 40% 30% 30%; transform-origin: bottom center; animation: utn-figure 5s ease-in-out infinite; }
.scn-ulysses-tells-of-neoptolemus .figure-neoptolemus { position:absolute; bottom:16%; right:28%; width:24px; height:40px; background: linear-gradient(180deg, #2a1a10 0%, #0a0800 100%); border-radius: 40% 50% 30% 30% / 40% 60% 30% 30%; transform-origin: bottom center; animation: utn-figure 5s ease-in-out infinite-reverse; }
@keyframes utn-tent { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes utn-rug { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes utn-lamp { 0% { box-shadow: 0 0 16px 4px #b08040, 0 0 32px 8px rgba(176,128,64,.2); opacity:.8 } 50% { box-shadow: 0 0 32px 10px #ffd080, 0 0 60px 18px rgba(255,208,128,.4); opacity:1 } 100% { box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,.3); opacity:.9 } }
@keyframes utn-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(1px) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }

.scn-achilles-departs { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, transparent 70%); }
.scn-achilles-departs .sky-ether { position:absolute; inset:0; background: linear-gradient(180deg, #0e0e18 0%, #1a1a2a 40%, #2a2a3a 100%); animation: ad-sky 15s ease-in-out infinite alternate; }
.scn-achilles-departs .meadow-ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: ad-meadow 12s ease-in-out infinite alternate; }
.scn-achilles-departs .asphodel { position:absolute; width:6px; height:14px; background: linear-gradient(180deg, #b8a0a0 0%, #6a5050 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; }
.scn-achilles-departs .asphodel.a { bottom:38%; left:20%; animation: ad-flower-1 6s ease-in-out infinite; }
.scn-achilles-departs .asphodel.b { bottom:34%; left:45%; animation: ad-flower-2 7s ease-in-out infinite 1s; }
.scn-achilles-departs .asphodel.c { bottom:40%; right:25%; animation: ad-flower-3 8s ease-in-out infinite 2s; }
.scn-achilles-departs .ghost-achilles { position:absolute; bottom:20%; left:50%; width:26px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(200,200,220,.5) 0%, rgba(100,100,120,.2) 100%); border-radius: 40% 40% 30% 30% / 60% 50% 30% 30%; filter: blur(2px); animation: ad-ghost 8s ease-in-out infinite; }
.scn-achilles-departs .mist-wisp { position:absolute; bottom:40%; left:30%; width:30px; height:10px; background: linear-gradient(180deg, rgba(255,255,255,.1) 0%, transparent 100%); filter: blur(5px); animation: ad-mist 20s linear infinite; }
@keyframes ad-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ad-meadow { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ad-flower-1 { 0%,100% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.1) } }
@keyframes ad-flower-2 { 0%,100% { transform: rotate(-3deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.15) } }
@keyframes ad-flower-3 { 0%,100% { transform: rotate(2deg) scaleY(1) } 50% { transform: rotate(-4deg) scaleY(1.05) } }
@keyframes ad-ghost { 0% { transform: translateX(-50%) scaleX(1); opacity:.6 } 25% { transform: translateX(-52%) scaleX(.95); opacity:.8 } 50% { transform: translateX(-48%) scaleX(1.05); opacity:.5 } 75% { transform: translateX(-50%) scaleX(1); opacity:.7 } 100% { transform: translateX(-50%) scaleX(1); opacity:.6 } }
@keyframes ad-mist { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(40px) translateY(-10px) } 100% { transform: translateX(80px) translateY(0) } }

.scn-ajax-silence { background: linear-gradient(180deg, #050810 0%, #0a0a15 50%, #050810 100%), radial-gradient(ellipse at 50% 60%, #101020 0%, transparent 80%); }
.scn-ajax-silence .void-bg { position:absolute; inset:0; background: linear-gradient(180deg, #020408 0%, #0a0a15 50%, #020408 100%); animation: as-void 20s ease-in-out infinite alternate; }
.scn-ajax-silence .ground-chasm { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #101020 0%, #050810 100%); clip-path: polygon(0% 15%, 15% 0%, 30% 10%, 50% 0%, 70% 8%, 85% 0%, 100% 12%, 100% 100%, 0% 100%); animation: as-chasm 8s ease-in-out infinite alternate; }
.scn-ajax-silence .figure-ulysses { position:absolute; bottom:18%; left:22%; width:24px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 40% 30% 30% / 60% 40% 30% 30%; transform-origin: bottom center; animation: as-figure 5s ease-in-out infinite; }
.scn-ajax-silence .figure-ajax { position:absolute; bottom:18%; right:28%; width:28px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a1a 100%); border-radius: 40% 50% 30% 30% / 40% 60% 30% 30%; transform-origin: bottom center; animation: as-figure 7s ease-in-out infinite reverse; }
.scn-ajax-silence .shadows { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 60%, transparent 0%, rgba(0,0,0,.6) 70%); animation: as-shadows 15s ease-in-out infinite alternate; }
@keyframes as-void { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes as-chasm { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes as-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(1px) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes as-shadows { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }

/* ===== 1. sailors-open-wind-bag (tense, sunlit) ===== */
.scn-sailors-open-wind-bag {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 40%, #c8a94c 70%, #a08030 100%),
              radial-gradient(ellipse at 50% 20%, rgba(255,255,200,0.5) 0%, transparent 60%);
}
.scn-sailors-open-wind-bag .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, #f0e68c 100%);
  animation: si1-sky 8s ease-in-out infinite alternate;
}
.scn-sailors-open-wind-bag .sea {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(0deg, #1a4a6a 0%, #3a7a9a 30%, #6aaaca 60%, #a0d0e0 100%);
  border-radius: 80% 70% 0 0 / 40% 30% 0 0;
  animation: si1-sea 12s ease-in-out infinite alternate;
}
.scn-sailors-open-wind-bag .ship-hull {
  position:absolute; bottom:35%; left:38%; width:140px; height:50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 60% 60% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  transform: rotate(-2deg);
  animation: si1-hull 6s ease-in-out infinite;
}
.scn-sailors-open-wind-bag .sail-main {
  position:absolute; bottom:50%; left:48%; width:70px; height:90px;
  background: linear-gradient(135deg, #f5f0e0 0%, #e0d0b0 60%, #c0a080 100%);
  border-radius: 40% 10% 20% 10% / 60% 10% 30% 10%;
  transform: skewX(-8deg);
  box-shadow: 4px 4px 12px rgba(0,0,0,0.3);
  animation: si1-sail 4s ease-in-out infinite alternate;
}
.scn-sailors-open-wind-bag .wind-bag {
  position:absolute; bottom:38%; left:60%; width:40px; height:50px;
  background: radial-gradient(circle at 40% 30%, #8a6a3a 0%, #5a3a1a 80%);
  border-radius: 50%;
  transform: rotate(20deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: si1-bag 3s ease-in-out infinite;
}
.scn-sailors-open-wind-bag .sleeping-figure {
  position:absolute; bottom:35%; left:44%; width:22px; height:30px;
  background: linear-gradient(180deg, #222244 0%, #0a0a1a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: rotate(-15deg);
  animation: si1-figure 5s ease-in-out infinite alternate;
}
.scn-sailors-open-wind-bag .rope {
  position:absolute; bottom:48%; left:60%; width:2px; height:40px;
  background: #5a4a2a;
  transform: rotate(45deg);
  transform-origin: top left;
  animation: si1-rope 8s ease-in-out infinite;
}
@keyframes si1-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes si1-sea    { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(5px) scaleY(0.95) } 100% { transform: translateY(-3px) scaleY(1.02) } }
@keyframes si1-hull   { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) } }
@keyframes si1-sail   { 0% { transform: skewX(-8deg) scaleX(1) } 50% { transform: skewX(-4deg) scaleX(1.05) } 100% { transform: skewX(-8deg) scaleX(0.98) } }
@keyframes si1-bag    { 0%,100% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(25deg) scale(1.1) } }
@keyframes si1-figure { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-2px) } 100% { transform: rotate(-18deg) translateY(1px) } }
@keyframes si1-rope   { 0%,100% { transform: rotate(45deg) } 50% { transform: rotate(50deg) } }

/* ===== 2. aeolus-refuses-help (dark, bright-interior) ===== */
.scn-aeolus-refuses-help {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 60%, #4a2a10 0%, transparent 80%);
}
.scn-aeolus-refuses-help .wall-left {
  position:absolute; left:0; top:0; bottom:0; width:30%;
  background: linear-gradient(90deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset -20px 0 30px rgba(0,0,0,0.8);
  animation: ae1-wall-l 10s ease-in-out infinite alternate;
}
.scn-aeolus-refuses-help .wall-right {
  position:absolute; right:0; top:0; bottom:0; width:30%;
  background: linear-gradient(270deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset 20px 0 30px rgba(0,0,0,0.8);
  animation: ae1-wall-r 10s ease-in-out infinite alternate;
}
.scn-aeolus-refuses-help .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(0deg, #2a1a0a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-aeolus-refuses-help .table {
  position:absolute; bottom:18%; left:50%; width:120px; height:30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.7);
  animation: ae1-table 5s ease-in-out infinite;
}
.scn-aeolus-refuses-help .figure-aeolus {
  position:absolute; bottom:22%; left:35%; width:25px; height:60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ae1-fig1 6s ease-in-out infinite;
}
.scn-aeolus-refuses-help .figure-odysseus {
  position:absolute; bottom:22%; right:35%; width:24px; height:58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1005 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ae1-fig2 8s ease-in-out infinite;
}
.scn-aeolus-refuses-help .torch {
  position:absolute; bottom:30%; left:50%; width:6px; height:40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a5a20 0%, #4a2a10 100%);
  border-radius: 2px;
}
.scn-aeolus-refuses-help .torch-glow {
  position:absolute; bottom:28%; left:50%; width:80px; height:80px;
  transform: translate(-50%,20%);
  background: radial-gradient(circle, #ffcc60 0%, #ff8800 30%, transparent 70%);
  border-radius: 50%;
  mix-blend-mode: screen;
  animation: ae1-glow 2s ease-in-out infinite alternate;
}
@keyframes ae1-wall-l { 0%,100% { opacity:1 } 50% { opacity:0.9 } }
@keyframes ae1-wall-r { 0%,100% { opacity:1 } 50% { opacity:0.9 } }
@keyframes ae1-table { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(2px) } }
@keyframes ae1-fig1 { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes ae1-fig2 { 0% { transform: rotate(0deg) } 50% { transform: rotate(-4deg) } 100% { transform: rotate(2deg) } }
@keyframes ae1-glow { 0% { opacity:0.6; transform: translate(-50%,20%) scale(0.95); } 100% { opacity:1; transform: translate(-50%,20%) scale(1.05); } }

/* ===== 3. laestrygonians-harbour (dark, sunlit) ===== */
.scn-laestrygonians-harbour {
  background: linear-gradient(180deg, #7ab0d0 0%, #c8e0f0 40%, #e0e8c0 70%, #b0a870 100%),
              radial-gradient(ellipse at 30% 50%, rgba(255,255,200,0.6) 0%, transparent 60%);
}
.scn-laestrygonians-harbour .cliff {
  position:absolute; left:0; top:0; bottom:15%; width:40%;
  background: linear-gradient(135deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 0 40% 60% 0 / 0 60% 80% 0;
  box-shadow: inset -30px 0 40px rgba(0,0,0,0.6);
  animation: ls1-cliff 20s ease-in-out infinite alternate;
}
.scn-laestrygonians-harbour .sea {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(0deg, #1a4a5a 0%, #3a7a8a 40%, #6aaaba 70%, #a0d0e0 100%);
  animation: ls1-sea 10s ease-in-out infinite alternate;
}
.scn-laestrygonians-harbour .boat {
  position:absolute; bottom:25%; left:50%; width:100px; height:40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: ls1-boat 7s ease-in-out infinite;
}
.scn-laestrygonians-harbour .sail-torn {
  position:absolute; bottom:38%; left:50%; width:50px; height:60px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 50%, #806040 100%);
  border-radius: 30% 10% 20% 10% / 50% 10% 30% 10%;
  clip-path: polygon(0% 0%, 100% 0%, 85% 40%, 100% 100%, 60% 70%, 0% 100%);
  animation: ls1-sail 5s ease-in-out infinite alternate;
}
.scn-laestrygonians-harbour .rock-spike {
  position:absolute; bottom:30%; left:20%; width:30px; height:80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: ls1-rock 15s ease-in-out infinite alternate;
}
.scn-laestrygonians-harbour .figure-rower {
  position:absolute; bottom:25%; left:44%; width:16px; height:30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ls1-row 3s ease-in-out infinite;
}
.scn-laestrygonians-harbour .figure-rower2 {
  position:absolute; bottom:25%; left:55%; width:16px; height:28px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ls1-row2 3.5s ease-in-out infinite;
  animation-delay: -1s;
}
.scn-laestrygonians-harbour .sunray {
  position:absolute; top:0; left:0; right:0; height:100%;
  background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 40%, rgba(255,255,200,0.1) 80%);
  animation: ls1-ray 8s ease-in-out infinite alternate;
}
@keyframes ls1-cliff { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes ls1-sea   { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(-2px) } }
@keyframes ls1-boat  { 0%,100% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes ls1-sail  { 0% { transform: translateX(-50%) skewX(-5deg) } 50% { transform: translateX(-50%) skewX(0deg) } 100% { transform: translateX(-50%) skewX(5deg) } }
@keyframes ls1-rock  { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } }
@keyframes ls1-row   { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes ls1-row2  { 0% { transform: rotate(5deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(5deg) } }
@keyframes ls1-ray   { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.4 } }

/* ===== 4. laestrygonians-sent-girl (dark, sunlit) ===== */
.scn-laestrygonians-sent-girl {
  background: linear-gradient(180deg, #c8d8c0 0%, #a0b8a0 40%, #809080 70%, #5a6a5a 100%),
              radial-gradient(ellipse at 50% 80%, #d0d8c0 0%, transparent 70%);
}
.scn-laestrygonians-sent-girl .ground {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #4a5a3a 0%, #6a7a5a 40%, #8a9a7a 100%);
  border-radius: 40% 30% 0 0 / 20% 15% 0 0;
}
.scn-laestrygonians-sent-girl .fountain-base {
  position:absolute; bottom:20%; left:50%; width:60px; height:40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a6a5a 0%, #3a3a2a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-laestrygonians-sent-girl .fountain-water {
  position:absolute; bottom:20%; left:50%; width:20px; height:30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a0c8d0 0%, #709090 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%;
  animation: lg1-water 3s ease-in-out infinite alternate;
}
.scn-laestrygonians-sent-girl .girl-silhouette {
  position:absolute; bottom:22%; left:40%; width:18px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lg1-girl 6s ease-in-out infinite;
}
.scn-laestrygonians-sent-girl .men-approaching {
  position:absolute; bottom:22%; right:30%; width:30px; height:38px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lg1-men 8s ease-in-out infinite;
}
.scn-laestrygonians-sent-girl .house-distant {
  position:absolute; bottom:30%; right:10%; width:50px; height:40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: lg1-house 12s ease-in-out infinite alternate;
}
.scn-laestrygonians-sent-girl .tree {
  position:absolute; bottom:30%; left:15%; width:30px; height:60px;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: lg1-tree 9s ease-in-out infinite;
}
@keyframes lg1-water { 0% { transform: translateX(-50%) scaleY(1) } 100% { transform: translateX(-50%) scaleY(1.1) } }
@keyframes lg1-girl  { 0%,100% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } }
@keyframes lg1-men   { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes lg1-house { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes lg1-tree  { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(1deg) scaleY(0.98) } 100% { transform: rotate(0deg) scaleY(1) } }

.scn-jove-on-aegisthus {
  background:
    linear-gradient(180deg, #d9c9a0 0%, #b8a080 30%, #8a6e4e 70%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 20%, #e0d0b0 0%, transparent 50%);
}
.scn-jove-on-aegisthus .throne {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 90px;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%);
  border-radius: 8px 8px 12px 12px; box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: jv1-throne 8s ease-in-out infinite alternate;
}
.scn-jove-on-aegisthus .figure-jove {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 55px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jv1-figure 6s ease-in-out infinite alternate;
}
.scn-jove-on-aegisthus .shadow-figure {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: skewX(-10deg); opacity: 0.7;
  animation: jv1-shadow 4s ease-in-out infinite alternate;
}
.scn-jove-on-aegisthus .window {
  position: absolute; top: 8%; left: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #fff0d0 0%, #d0b080 100%);
  border: 4px solid #6a4a2a; border-radius: 4px;
  box-shadow: 0 0 40px 12px rgba(255,240,200,0.4);
  animation: jv1-window 5s ease-in-out infinite alternate;
}
.scn-jove-on-aegisthus .column {
  position: absolute; bottom: 10%; left: 8%; width: 20px; height: 60%;
  background: linear-gradient(180deg, #c0a888 0%, #8a6e4e 100%);
  border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.3);
}
.scn-jove-on-aegisthus .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: repeating-linear-gradient(90deg, #5a3a2a 0px, #5a3a2a 2px, #6a4a3a 2px, #6a4a3a 4px);
  opacity: 0.6;
}
.scn-jove-on-aegisthus .dust-mote {
  position: absolute; top: 30%; left: 40%; width: 4px; height: 4px;
  background: rgba(255,220,180,0.6); border-radius: 50%;
  filter: blur(1px);
  animation: jv1-dust 12s linear infinite;
}
@keyframes jv1-throne {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02) translateY(-2px); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes jv1-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes jv1-shadow {
  0% { transform: skewX(-10deg) translateY(0) scaleY(1); }
  50% { transform: skewX(-10deg) translateY(-3px) scaleY(1.1) scaleX(0.9); }
  100% { transform: skewX(-10deg) translateY(2px) scaleY(0.95); }
}
@keyframes jv1-window {
  0% { opacity: 0.75; box-shadow: 0 0 30px 8px rgba(255,240,200,0.3); }
  50% { opacity: 1; box-shadow: 0 0 60px 20px rgba(255,240,200,0.6); }
  100% { opacity: 0.8; box-shadow: 0 0 40px 12px rgba(255,240,200,0.35); }
}
@keyframes jv1-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  20% { opacity: 1; }
  80% { opacity: 1; }
  100% { transform: translate(60px, -80px) scale(1.5); opacity: 0; }
}

.scn-minerva-pleads-for-ulysses {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4be9e 50%, #a08060 100%),
    radial-gradient(ellipse at 30% 50%, #ffe0b0 0%, transparent 40%);
}
.scn-minerva-pleads-for-ulysses .minerva-figure {
  position: absolute; bottom: 28%; left: 35%; width: 38px; height: 52px;
  background: linear-gradient(180deg, #7a6a5a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jv2-minerva 7s ease-in-out infinite alternate;
}
.scn-minerva-pleads-for-ulysses .jove-figure {
  position: absolute; bottom: 30%; left: 55%; width: 42px; height: 56px;
  background: linear-gradient(180deg, #5a4a3a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jv2-jove 6s ease-in-out infinite alternate;
}
.scn-minerva-pleads-for-ulysses .pleading-hand {
  position: absolute; bottom: 36%; left: 42%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: jv2-hand 4s ease-in-out infinite alternate;
}
.scn-minerva-pleads-for-ulysses .window-glow {
  position: absolute; top: 10%; left: 60%; width: 50px; height: 70px;
  background: radial-gradient(ellipse, #fff0d0 0%, #d0b090 70%);
  filter: blur(8px); opacity: 0.7;
  animation: jv2-window 6s ease-in-out infinite alternate;
}
.scn-minerva-pleads-for-ulysses .aura {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 80px;
  background: radial-gradient(ellipse, rgba(255,200,150,0.3) 0%, transparent 60%);
  filter: blur(15px);
  animation: jv2-aura 5s ease-in-out infinite alternate;
}
.scn-minerva-pleads-for-ulysses .offering-table {
  position: absolute; bottom: 22%; left: 45%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-minerva-pleads-for-ulysses .incense-smoke {
  position: absolute; bottom: 30%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(180deg, rgba(200,180,160,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: jv2-smoke 8s ease-in-out infinite alternate;
}
@keyframes jv2-minerva {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(-3px, -2px) rotate(2deg); }
  100% { transform: translate(2px, 1px) rotate(-1deg); }
}
@keyframes jv2-jove {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(1px, -1px) scale(1.02); }
  100% { transform: translate(-1px, 1px) scale(0.98); }
}
@keyframes jv2-hand {
  0% { transform: rotate(15deg) scale(1); }
  50% { transform: rotate(25deg) scale(1.1); }
  100% { transform: rotate(18deg) scale(0.95); }
}
@keyframes jv2-window {
  0% { opacity: 0.6; filter: blur(6px); }
  50% { opacity: 0.9; filter: blur(10px); }
  100% { opacity: 0.7; filter: blur(8px); }
}
@keyframes jv2-aura {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.95); }
}
@keyframes jv2-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-8px) scale(1.2); opacity: 0.9; }
  100% { transform: translateY(-15px) scale(0.8); opacity: 0.3; }
}

.scn-jove-responds-to-minerva {
  background:
    linear-gradient(180deg, #eadbc0 0%, #c9b69b 40%, #9a7a5a 80%, #6a4a2a 100%),
    radial-gradient(ellipse at 40% 30%, #f0e0c0 0%, transparent 50%);
}
.scn-jove-responds-to-minerva .jove-seated {
  position: absolute; bottom: 20%; left: 55%; width: 44px; height: 58px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jv3-jove 10s ease-in-out infinite alternate;
}
.scn-jove-responds-to-minerva .minerva-standing {
  position: absolute; bottom: 25%; left: 30%; width: 36px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jv3-minerva 12s ease-in-out infinite alternate;
}
.scn-jove-responds-to-minerva .window-steady {
  position: absolute; top: 12%; left: 20%; width: 55px; height: 75px;
  background: linear-gradient(180deg, #f5e8d0 0%, #c0a880 100%);
  border: 3px solid #6a4a2a; border-radius: 6px;
  box-shadow: 0 0 30px 10px rgba(240,220,180,0.3);
  animation: jv3-window 15s ease-in-out infinite alternate;
}
.scn-jove-responds-to-minerva .pillar-left {
  position: absolute; bottom: 8%; left: 10%; width: 18px; height: 65%;
  background: linear-gradient(180deg, #b09a7a 0%, #7a5a3a 100%);
  border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.2);
}
.scn-jove-responds-to-minerva .pillar-right {
  position: absolute; bottom: 8%; left: 80%; width: 18px; height: 65%;
  background: linear-gradient(180deg, #b09a7a 0%, #7a5a3a 100%);
  border-radius: 4px; box-shadow: -2px 0 6px rgba(0,0,0,0.2);
}
.scn-jove-responds-to-minerva .scroll {
  position: absolute; bottom: 22%; left: 62%; width: 30px; height: 14px;
  background: linear-gradient(180deg, #e0c8a0 0%, #b09070 100%);
  border-radius: 2px; transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-jove-responds-to-minerva .soft-cloud {
  position: absolute; top: 5%; left: 35%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(255,255,240,0.3) 0%, rgba(255,255,240,0.05) 100%);
  filter: blur(12px);
  animation: jv3-cloud 30s linear infinite;
}
@keyframes jv3-jove {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(2px, -1px) scale(1.01); }
  100% { transform: translate(-1px, 1px) scale(0.99); }
}
@keyframes jv3-minerva {
  0% { transform: translate(0, 0); }
  50% { transform: translate(-2px, -2px); }
  100% { transform: translate(1px, 1px); }
}
@keyframes jv3-window {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes jv3-cloud {
  0% { transform: translateX(-20px); }
  100% { transform: translateX(100vw); }
}

.scn-minerva-proposes-plan {
  background:
    linear-gradient(180deg, #f0e0c8 0%, #d4be9e 40%, #a08060 80%, #7a5a3a 100%),
    radial-gradient(ellipse at 60% 20%, #fff0d0 0%, transparent 50%);
}
.scn-minerva-proposes-plan .minerva-pointing {
  position: absolute; bottom: 30%; left: 35%; width: 38px; height: 52px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jv4-minerva 5s ease-in-out infinite alternate;
}
.scn-minerva-proposes-plan .jove-attentive {
  position: absolute; bottom: 28%; left: 55%; width: 42px; height: 56px;
  background: linear-gradient(180deg, #5a4a3a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: jv4-jove 7s ease-in-out infinite alternate;
}
.scn-minerva-proposes-plan .map-scroll {
  position: absolute; bottom: 22%; left: 43%; width: 55px; height: 18px;
  background: linear-gradient(180deg, #d4b890 0%, #a08060 100%);
  border-radius: 4px; transform: rotate(3deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-minerva-proposes-plan .torch {
  position: absolute; bottom: 32%; left: 65%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #a06030 0%, #4a2010 100%);
  border-radius: 2px;
}
.scn-minerva-proposes-plan .torch::after {
  content: ''; position: absolute; top: -12px; left: -4px;
  width: 18px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 60%, transparent 100%);
  border-radius: 50%;
  animation: jv4-flame 2s ease-in-out infinite alternate;
}
.scn-minerva-proposes-plan .globe {
  position: absolute; bottom: 24%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle at 40% 40%, #6a8a5a 0%, #3a4a2a 100%);
  border-radius: 50%;
  box-shadow: inset -4px -4px 8px rgba(0,0,0,0.4);
  animation: jv4-globe 12s ease-in-out infinite;
}
.scn-minerva-proposes-plan .table {
  position: absolute; bottom: 18%; left: 35%; width: 100px; height: 14px;
  background: linear-gradient(180deg, #8a6e4e 0%, #4a2a1a 100%);
  border-radius: 4px;
}
.scn-minerva-proposes-plan .sparkle {
  position: absolute; top: 20%; left: 25%; width: 6px; height: 6px;
  background: radial-gradient(circle, #fff0c0 0%, transparent 100%);
  border-radius: 50%;
  animation: jv4-sparkle 3s ease-in-out infinite alternate;
}
@keyframes jv4-minerva {
  0% { transform: translate(0, 0) rotate(-2deg); }
  50% { transform: translate(-3px, -2px) rotate(4deg); }
  100% { transform: translate(2px, 1px) rotate(0deg); }
}
@keyframes jv4-jove {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(-3deg) scale(1.02); }
  100% { transform: rotate(-6deg) scale(0.98); }
}
@keyframes jv4-flame {
  0% { transform: scale(1) translate(0, 0); opacity: 0.9; }
  50% { transform: scale(1.1) translate(-2px, -2px); opacity: 1; }
  100% { transform: scale(0.95) translate(2px, 0); opacity: 0.85; }
}
@keyframes jv4-globe {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.03) rotate(5deg); }
  100% { transform: scale(0.97) rotate(-5deg); }
}
@keyframes jv4-sparkle {
  0% { opacity: 0; transform: scale(0.5); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0; transform: scale(0.8); }
}

.scn-halitherses-interprets-omen {
  background: linear-gradient(180deg, #f5d78c 0%, #b8d0e8 50%, #87b0d0 100%), radial-gradient(ellipse at 50% 0%, #ffecb0 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-halitherses-interprets-omen .sky {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #ffe8a0 0%, transparent 90%);
  animation: hi1-sun 15s ease-in-out infinite alternate;
}
.scn-halitherses-interprets-omen .colonnade {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 50%;
  background: repeating-linear-gradient(90deg, #c8b898 0px, #c8b898 16px, transparent 16px, transparent 28px);
  opacity: 0.3; border-radius: 4px;
  animation: hi1-col 20s ease-in-out infinite;
}
.scn-halitherses-interprets-omen .podium {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 10%;
  background: linear-gradient(135deg, #b8a080 0%, #806040 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-halitherses-interprets-omen .figure-old {
  position: absolute; bottom: 22%; left: 42%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hi1-figure 4s ease-in-out infinite;
}
.scn-halitherses-interprets-omen .figure-old::after {
  content: ''; position: absolute; top: -8px; left: 50%; width: 14px; height: 14px;
  background: #1a1a2a; border-radius: 50%; transform: translateX(-50%);
}
.scn-halitherses-interprets-omen .bird {
  position: absolute; top: 25%; left: 60%; width: 20px; height: 10px;
  background: #1a1a2a; border-radius: 50% 50% 0 0;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  animation: hi1-bird 6s ease-in-out infinite;
}
.scn-halitherses-interprets-omen .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 4px;
  background: rgba(0,0,0,0.3); border-radius: 50%;
  filter: blur(3px);
  animation: hi1-shadow 4s ease-in-out infinite;
}
@keyframes hi1-sun { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hi1-col { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes hi1-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hi1-bird { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-8px) scaleX(0.8); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes hi1-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(0.9); opacity: 0.5; } 100% { transform: scaleX(1); opacity: 0.3; } }

.scn-eurymachus-rebukes-halitherses {
  background: linear-gradient(180deg, #ffd89b 0%, #b8d0e8 60%, #7fa8c0 100%), radial-gradient(ellipse at 30% 80%, #ffe0a0 0%, transparent 50%);
  background-blend-mode: overlay;
}
.scn-eurymachus-rebukes-halitherses .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffe0a0 0%, transparent 70%);
  animation: eu2-sky 12s ease-in-out infinite alternate;
}
.scn-eurymachus-rebukes-halitherses .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-eurymachus-rebukes-halitherses .figure-left {
  position: absolute; bottom: 25%; left: 20%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: eu2-fig-l 6s ease-in-out infinite;
}
.scn-eurymachus-rebukes-halitherses .figure-left::after {
  content: ''; position: absolute; top: -6px; left: 50%; width: 12px; height: 12px;
  background: #1a1a2a; border-radius: 50%; transform: translateX(-50%);
}
.scn-eurymachus-rebukes-halitherses .figure-right {
  position: absolute; bottom: 25%; right: 20%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: eu2-fig-r 4s ease-in-out infinite;
}
.scn-eurymachus-rebukes-halitherses .figure-right::after {
  content: ''; position: absolute; top: -7px; left: 50%; width: 14px; height: 14px;
  background: #1a1a2a; border-radius: 50%; transform: translateX(-50%);
}
.scn-eurymachus-rebukes-halitherses .arm {
  position: absolute; bottom: 42%; right: 30%; width: 30px; height: 4px;
  background: #1a1a2a; border-radius: 2px;
  transform-origin: right center;
  animation: eu2-arm 2s ease-in-out infinite;
}
.scn-eurymachus-rebukes-halitherses .dust {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 10px;
  background: rgba(180,140,100,0.4); border-radius: 50%;
  filter: blur(4px);
  animation: eu2-dust 5s ease-in-out infinite;
}
@keyframes eu2-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes eu2-fig-l { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(1deg); } 60% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes eu2-fig-r { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes eu2-arm { 0% { transform: rotate(-10deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-10deg); } }
@keyframes eu2-dust { 0% { transform: translateY(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-6px) scale(1.5); opacity: 0; } 100% { transform: translateY(0) scale(1); opacity: 0.4; } }

.scn-telemachus-asks-for-ship {
  background: linear-gradient(180deg, #ffe8b0 0%, #b0d0f0 50%, #6a8aaa 100%), radial-gradient(ellipse at 50% 30%, #fff0c0 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-telemachus-asks-for-ship .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fff0c0 0%, transparent 90%);
  animation: te3-sky 10s ease-in-out infinite alternate;
}
.scn-telemachus-asks-for-ship .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-telemachus-asks-for-ship .ship {
  position: absolute; bottom: 35%; left: 50%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  transform: translateX(-50%);
  animation: te3-ship 8s ease-in-out infinite;
}
.scn-telemachus-asks-for-ship .sail {
  position: absolute; bottom: 45%; left: 50%; width: 24px; height: 40px;
  background: radial-gradient(ellipse at 50% 20%, #f0e8d8 0%, #c0b8a0 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: translateX(-12px);
  animation: te3-sail 6s ease-in-out infinite;
}
.scn-telemachus-asks-for-ship .figure-young {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: te3-fig 4s ease-in-out infinite;
}
.scn-telemachus-asks-for-ship .figure-young::after {
  content: ''; position: absolute; top: -6px; left: 50%; width: 12px; height: 12px;
  background: #1a1a1a; border-radius: 50%; transform: translateX(-50%);
}
.scn-telemachus-asks-for-ship .wave-1 {
  position: absolute; bottom: 20%; left: 0; width: 100%; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.2) 0%, transparent 70%);
  filter: blur(3px);
  animation: te3-wave1 4s ease-in-out infinite;
}
.scn-telemachus-asks-for-ship .wave-2 {
  position: absolute; bottom: 25%; left: 0; width: 100%; height: 8px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.15) 0%, transparent 60%);
  filter: blur(4px);
  animation: te3-wave2 5s ease-in-out infinite reverse;
}
@keyframes te3-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes te3-ship { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes te3-sail { 0% { transform: translateX(-12px) scaleX(1); } 50% { transform: translateX(-12px) scaleX(0.9); } 100% { transform: translateX(-12px) scaleX(1); } }
@keyframes te3-fig { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes te3-wave1 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(20px) scaleY(1.2); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes te3-wave2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-15px) scaleY(1.1); } 100% { transform: translateX(0) scaleY(1); } }

.scn-mentor-addresses-assembly {
  background: linear-gradient(180deg, #f5d78c 0%, #b8d0e8 40%, #6a8aaa 100%), radial-gradient(ellipse at 50% 0%, #ffe8a0 0%, transparent 50%);
  background-blend-mode: overlay;
}
.scn-mentor-addresses-assembly .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, transparent 80%);
  animation: me4-sky 14s ease-in-out infinite alternate;
}
.scn-mentor-addresses-assembly .pillar-left {
  position: absolute; bottom: 20%; left: 10%; width: 12px; height: 70%;
  background: linear-gradient(180deg, #c8b898 0%, #8a7050 100%);
  border-radius: 4px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.2);
  animation: me4-pillar 20s ease-in-out infinite;
}
.scn-mentor-addresses-assembly .pillar-right {
  position: absolute; bottom: 20%; right: 10%; width: 12px; height: 70%;
  background: linear-gradient(180deg, #c8b898 0%, #8a7050 100%);
  border-radius: 4px;
  box-shadow: -4px 0 8px rgba(0,0,0,0.2);
  animation: me4-pillar 20s ease-in-out infinite reverse;
}
.scn-mentor-addresses-assembly .platform {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #b8a080 0%, #806040 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.5);
}
.scn-mentor-addresses-assembly .figure {
  position: absolute; bottom: 20%; left: 45%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: me4-fig 5s ease-in-out infinite;
}
.scn-mentor-addresses-assembly .figure::after {
  content: ''; position: absolute; top: -6px; left: 50%; width: 12px; height: 12px;
  background: #1a1a2a; border-radius: 50%; transform: translateX(-50%);
}
.scn-mentor-addresses-assembly .crowd {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 10%;
  background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 8px, transparent 8px, transparent 16px);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  filter: blur(1px);
  animation: me4-crowd 3s ease-in-out infinite;
}
.scn-mentor-addresses-assembly .sunburst {
  position: absolute; top: 5%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffee80 0%, #ffdd60 30%, transparent 70%);
  border-radius: 50%;
  animation: me4-sun 12s ease-in-out infinite;
}
@keyframes me4-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes me4-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes me4-fig { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes me4-crowd { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.7; transform: scaleY(1); } }
@keyframes me4-sun { 0% { transform: scale(0.9); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.8; } }

.scn-teiresias-prophecy { background: linear-gradient(180deg, #0a0a14 0%, #1a1024 40%, #2a1a30 100%), radial-gradient(ellipse at 50% 60%, #2a1a30 0%, transparent 70%); }
.scn-teiresias-prophecy .cave-bg { position:absolute; inset:0; background: linear-gradient(135deg, #0f0d1a 0%, #1f1426 50%, #2a1f34 100%); animation: tej-cave 25s ease-in-out infinite alternate; }
.scn-teiresias-prophecy .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a121a 0%, #2a1e2a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-teiresias-prophecy .prophet { position:absolute; bottom:27%; left:34%; width:46px; height:80px; background: linear-gradient(90deg, #0f0b15 0%, #1a1420 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(-2deg); animation: tej-prophet 7s ease-in-out infinite; }
.scn-teiresias-prophecy .staff { position:absolute; bottom:22%; left:38%; width:6px; height:95px; background: linear-gradient(0deg, #3a2a1a 0%, #5a3a2a 100%); border-radius: 2px; transform: rotate(3deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-teiresias-prophecy .ulysses { position:absolute; bottom:24%; left:52%; width:30px; height:44px; background: linear-gradient(180deg, #1a121a 0%, #0f0b0f 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform: skewX(2deg); animation: tej-kneel 4s ease-in-out infinite alternate; }
.scn-teiresias-prophecy .fire-glow { position:absolute; bottom:18%; left:28%; width:40px; height:40px; background: radial-gradient(circle, #c8843a 0%, #8c5a28 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(200,132,58,.3), 0 0 120px 60px rgba(200,132,58,.15); animation: tej-fire 3s ease-in-out infinite alternate; }
.scn-teiresias-prophecy .ghost-aura { position:absolute; bottom:30%; left:30%; width:80px; height:100px; background: radial-gradient(ellipse, rgba(160,140,200,.12) 0%, transparent 70%); filter: blur(15px); animation: tej-ghost 6s ease-in-out infinite alternate; }
@keyframes tej-cave { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.75 } }
@keyframes tej-prophet { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-4px) } 100% { transform: rotate(-2deg) translateY(1px) } }
@keyframes tej-kneel { 0% { transform: skewX(2deg) translateY(0) } 50% { transform: skewX(1deg) translateY(-3px) } 100% { transform: skewX(2deg) translateY(0) } }
@keyframes tej-fire { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(.95); opacity:.85 } }
@keyframes tej-ghost { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.05) } 100% { opacity:.4; transform: scale(.95) } }

.scn-teiresias-prophecy-cont { background: linear-gradient(180deg, #080812 0%, #12101a 40%, #1a1420 100%), radial-gradient(ellipse at 50% 20%, #1a1420 0%, transparent 70%); }
.scn-teiresias-prophecy-cont .sky-dark { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #0c0a12 0%, #141220 50%, #1c1820 100%); animation: kont-sky 30s ease-in-out infinite alternate; }
.scn-teiresias-prophecy-cont .mountains { position:absolute; bottom:30%; left:0; right:0; height:18%; background: linear-gradient(180deg, #1a1a26 0%, #2a2a3a 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; box-shadow: inset 0 10px 25px rgba(0,0,0,.5); animation: kont-mountains 20s ease-in-out infinite alternate; }
.scn-teiresias-prophecy-cont .path { position:absolute; bottom:0; left:40%; right:30%; height:32%; background: linear-gradient(0deg, #2a222a 0%, #1a1a1a 100%); border-radius: 20% 20% 0 0; clip-path: polygon(30% 0, 70% 0, 90% 100%, 10% 100%); }
.scn-teiresias-prophecy-cont .figure { position:absolute; bottom:16%; left:48%; width:24px; height:46px; background: linear-gradient(180deg, #0f0b0f 0%, #0a080a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform: translateX(-50%); animation: kont-walk 6s ease-in-out infinite; }
.scn-teiresias-prophecy-cont .oar { position:absolute; bottom:18%; left:45%; width:6px; height:70px; background: linear-gradient(0deg, #3a2a1a 0%, #5a3a2a 100%); border-radius: 2px; transform: rotate(25deg) translateX(-10px); animation: kont-oar 6s ease-in-out infinite; }
.scn-teiresias-prophecy-cont .cloud-glow { position:absolute; top:10%; left:20%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(200,180,220,.08) 0%, transparent 70%); filter: blur(10px); animation: kont-cloud 45s linear infinite; }
@keyframes kont-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes kont-mountains { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes kont-walk { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 25% { transform: translateX(-45%) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-40%) translateY(0) rotate(-2deg) } 75% { transform: translateX(-45%) translateY(-1px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes kont-oar { 0% { transform: rotate(25deg) translateX(-10px) } 25% { transform: rotate(28deg) translateX(-12px) } 50% { transform: rotate(22deg) translateX(-8px) } 75% { transform: rotate(26deg) translateX(-11px) } 100% { transform: rotate(25deg) translateX(-10px) } }
@keyframes kont-cloud { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }

.scn-question-about-mother { background: linear-gradient(180deg, #0c0812 0%, #1a1220 40%, #2a1a30 100%), radial-gradient(ellipse at 50% 90%, #2a1a30 0%, transparent 70%); }
.scn-question-about-mother .cave-left { position:absolute; top:0; left:0; width:15%; height:100%; background: linear-gradient(90deg, #0f0a14 0%, transparent 100%); border-right: 2px solid rgba(60,40,50,.2); }
.scn-question-about-mother .cave-right { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(270deg, #0f0a14 0%, transparent 100%); border-left: 2px solid rgba(60,40,50,.2); }
.scn-question-about-mother .floor { position:absolute; bottom:0; left:15%; right:20%; height:28%; background: linear-gradient(0deg, #1a101a 0%, #2a1e2a 100%); border-radius: 20% 20% 0 0; }
.scn-question-about-mother .mother-seated { position:absolute; bottom:22%; left:30%; width:34px; height:50px; background: linear-gradient(180deg, rgba(180,160,200,.2) 0%, rgba(120,100,140,.4) 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; filter: blur(2px); animation: qm-mother 8s ease-in-out infinite alternate; }
.scn-question-about-mother .ulysses-standing { position:absolute; bottom:20%; left:52%; width:28px; height:52px; background: linear-gradient(180deg, #0f0b0f 0%, #0a080a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform: rotate(1deg); animation: qm-ulysses 5s ease-in-out infinite alternate; }
.scn-question-about-mother .blood-bowl { position:absolute; bottom:16%; left:40%; width:20px; height:14px; background: radial-gradient(ellipse, #6a2a1a 0%, #3a121a 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(106,42,26,.3); animation: qm-blood 4s ease-in-out infinite alternate; }
.scn-question-about-mother .ghost-shimmer { position:absolute; bottom:30%; left:26%; width:50px; height:70px; background: radial-gradient(ellipse, rgba(180,160,220,.08) 0%, transparent 70%); filter: blur(12px); animation: qm-shimmer 7s ease-in-out infinite alternate; }
@keyframes qm-mother { 0% { opacity:.4; transform: translateY(0) } 50% { opacity:.8; transform: translateY(-3px) } 100% { opacity:.5; transform: translateY(1px) } }
@keyframes qm-ulysses { 0% { transform: rotate(1deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes qm-blood { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.15); opacity:1 } 100% { transform: scale(.9); opacity:.7 } }
@keyframes qm-shimmer { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.3; transform: scale(.95) } }

.scn-ulysses-asks-about-home { background: linear-gradient(0deg, #0a0812 0%, #1a1220 40%, #2a1a30 100%), radial-gradient(ellipse at 50% 70%, #1a1220 0%, transparent 70%); }
.scn-ulysses-asks-about-home .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #0f0b12 0%, #1a1420 50%, #201828 100%); animation: ulys-bg 30s ease-in-out infinite alternate; }
.scn-ulysses-asks-about-home .ground-ash { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #1a1018 0%, #2a1e28 100%); border-radius: 40% 60% 0 0 / 30% 50% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,.5); }
.scn-ulysses-asks-about-home .ulysses-profile { position:absolute; bottom:22%; left:28%; width:32px; height:58px; background: linear-gradient(90deg, #0f0b0f 0%, #1a121a 100%); border-radius: 40% 20% 20% 40% / 50% 40% 40% 50%; transform: rotate(-3deg); animation: ulys-figure 6s ease-in-out infinite alternate; }
.scn-ulysses-asks-about-home .mother-profile { position:absolute; bottom:22%; right:28%; width:32px; height:56px; background: linear-gradient(270deg, rgba(160,140,200,.2) 0%, rgba(120,100,140,.4) 100%); border-radius: 20% 40% 40% 20% / 40% 50% 50% 40%; filter: blur(1px); animation: ulys-mother 8s ease-in-out infinite alternate; }
.scn-ulysses-asks-about-home .fire-core { position:absolute; bottom:15%; left:50%; width:30px; height:30px; background: radial-gradient(circle, #c07a3a 0%, #8a5020 50%, transparent 70%); border-radius:50%; transform: translateX(-50%); box-shadow: 0 0 60px 30px rgba(192,122,58,.25), 0 0 120px 60px rgba(192,122,58,.1); animation: ulys-fire 3s ease-in-out infinite alternate; }
.scn-ulysses-asks-about-home .smoke-wisp { position:absolute; bottom:42%; left:48%; width:12px; height:30px; background: radial-gradient(ellipse, rgba(80,60,50,.2) 0%, transparent 70%); filter: blur(6px); animation: ulys-smoke 7s ease-in-out infinite; }
.scn-ulysses-asks-about-home .embers { position:absolute; bottom:18%; left:45%; width:6px; height:6px; background: radial-gradient(circle, #d09050 0%, transparent 80%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(208,144,80,.4); animation: ulys-ember 4s ease-in-out infinite alternate; }
@keyframes ulys-bg { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.75 } }
@keyframes ulys-figure { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-3px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes ulys-mother { 0% { opacity:.3; transform: rotate(3deg) translateY(0) } 50% { opacity:.7; transform: rotate(2deg) translateY(-2px) } 100% { opacity:.4; transform: rotate(3deg) translateY(0) } }
@keyframes ulys-fire { 0% { transform: translateX(-50%) scale(1); opacity:.8 } 50% { transform: translateX(-50%) scale(1.12); opacity:1 } 100% { transform: translateX(-50%) scale(.95); opacity:.85 } }
@keyframes ulys-smoke { 0% { transform: translateY(0) scaleX(1); opacity:.2 } 50% { transform: translateY(-8px) scaleX(1.5); opacity:0 } 100% { transform: translateY(0) scaleX(1); opacity:.2 } }
@keyframes ulys-ember { 0% { transform: translate(0,0); opacity:.6 } 50% { transform: translate(4px,-1px); opacity:1 } 100% { transform: translate(0,0); opacity:.5 } }

/* Scene: ulysses-tests-eumaeus (tense, dark, stormy) */
.scn-ulysses-tests-eumaeus {
  background: linear-gradient(180deg, #0c0f1e 0%, #141830 50%, #1a2038 100%), radial-gradient(ellipse at 70% 40%, #2c3150 0%, transparent 70%);
}
.scn-ulysses-tests-eumaeus .sky-night {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #0a0d1a 0%, #182040 100%);
  animation: tst-sky 10s ease-in-out infinite alternate;
}
.scn-ulysses-tests-eumaeus .storm-clouds {
  position: absolute; top: 8%; left: -10%; width: 130%; height: 40%;
  background: radial-gradient(ellipse at 30% 40%, #2a3048 30%, transparent 60%), radial-gradient(ellipse at 70% 60%, #2a3048 25%, transparent 55%);
  filter: blur(8px);
  animation: tst-clouds 20s linear infinite;
}
.scn-ulysses-tests-eumaeus .rain {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, rgba(160,180,220,0.15) 0px, transparent 2px, transparent 8px);
  animation: tst-rain 0.8s linear infinite;
}
.scn-ulysses-tests-eumaeus .shelter-back {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(135deg, #2a2430 0%, #1a1620 100%);
  border-radius: 12% 12% 4% 4%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-ulysses-tests-eumaeus .shelter-post {
  position: absolute; bottom: 22%; left: 30%; width: 6px; height: 50%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1a10 100%);
  border-radius: 2px;
}
.scn-ulysses-tests-eumaeus .figure.shadow {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 45px;
  background: #0c0a0e;
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: tst-figure1 4s ease-in-out infinite alternate;
}
.scn-ulysses-tests-eumaeus .figure.eumaeus {
  position: absolute; bottom: 20%; right: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1820 0%, #0e0c12 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: tst-figure2 5s ease-in-out infinite alternate;
}
.scn-ulysses-tests-eumaeus .cloak {
  position: absolute; bottom: 24%; left: 38%; width: 30px; height: 24px;
  background: #4a3c38;
  border-radius: 40% 40% 30% 30%;
  opacity: 0.7;
  transform: rotate(-10deg);
  animation: tst-cloak 3s ease-in-out infinite;
}
@keyframes tst-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes tst-clouds { 0% { transform: translateX(0); } 50% { transform: translateX(15px); } 100% { transform: translateX(0); } }
@keyframes tst-rain { 0% { background-position: 0 0; } 100% { background-position: 10px 20px; } }
@keyframes tst-figure1 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tst-figure2 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tst-cloak { 0%,100% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-6deg) scale(1.05); } }

/* Scene: ulysses-story-of-cloak (calm, dark, campfire) */
.scn-ulysses-story-of-cloak {
  background: linear-gradient(180deg, #121624 0%, #1a1e30 40%, #242840 100%), radial-gradient(ellipse at 50% 70%, #2a3048 0%, transparent 60%);
}
.scn-ulysses-story-of-cloak .bg-dark {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 80%, #2a3040 0%, #0c1020 100%);
}
.scn-ulysses-story-of-cloak .moon {
  position: absolute; top: 8%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c8d0e0 0%, #a0a8c0 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(160,168,192,0.3);
  animation: stc-moon 12s ease-in-out infinite alternate;
}
.scn-ulysses-story-of-cloak .campfire {
  position: absolute; bottom: 22%; left: 40%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 40%, transparent 80%);
  border-radius: 50%;
  animation: stc-fire 2s ease-in-out infinite;
}
.scn-ulysses-story-of-cloak .ground {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #1a1e28 0%, #0e121c 100%);
  border-radius: 20% 20% 0 0;
}
.scn-ulysses-story-of-cloak .figure-ulysses {
  position: absolute; bottom: 18%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1e2a 0%, #0c0e18 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: stc-ulysses 6s ease-in-out infinite alternate;
}
.scn-ulysses-story-of-cloak .figure-companion {
  position: absolute; bottom: 18%; right: 35%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a1e2a 0%, #0c0e18 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: stc-companion 8s ease-in-out infinite alternate;
}
.scn-ulysses-story-of-cloak .cloak-story {
  position: absolute; bottom: 24%; left: 38%; width: 28px; height: 20px;
  background: #5e4a3a;
  border-radius: 40% 40% 30% 30%;
  transform: rotate(0deg);
  animation: stc-cloak 5s ease-in-out infinite;
}
@keyframes stc-moon { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.9; transform: scale(1); } }
@keyframes stc-fire { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes stc-ulysses { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes stc-companion { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes stc-cloak { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(5deg) scale(1.1); } }

/* Scene: eumaeus-promises-cloak (warm, firelit, hearth) */
.scn-eumaeus-promises-cloak {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a20 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-eumaeus-promises-cloak .hut-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 20px 60px rgba(0,0,0,0.5);
}
.scn-eumaeus-promises-cloak .fireplace {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-eumaeus-promises-cloak .fire {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 80%, #c8553d 0%, #a0461a 40%, transparent 70%);
  border-radius: 50%;
  animation: prm-fire 2s ease-in-out infinite;
}
.scn-eumaeus-promises-cloak .figure-ulysses-warm {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1414 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: prm-ulysses 5s ease-in-out infinite alternate;
}
.scn-eumaeus-promises-cloak .figure-eumaeus {
  position: absolute; bottom: 20%; right: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1414 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: prm-eumaeus 6s ease-in-out infinite alternate;
}
.scn-eumaeus-promises-cloak .cloak-promised {
  position: absolute; bottom: 26%; left: 36%; width: 35px; height: 22px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-5deg);
  opacity: 0.9;
  animation: prm-cloak 4s ease-in-out infinite;
}
.scn-eumaeus-promises-cloak .hearth-glare {
  position: absolute; bottom: 22%; left: 40%; width: 25%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,85,61,0.3) 0%, transparent 70%);
  pointer-events: none;
  animation: prm-glare 3s ease-in-out infinite alternate;
}
@keyframes prm-fire { 0% { transform: translateX(-50%) scale(1); opacity: 0.9; } 50% { transform: translateX(-50%) scale(1.1); opacity: 1; } 100% { transform: translateX(-50%) scale(1); opacity: 0.9; } }
@keyframes prm-ulysses { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes prm-eumaeus { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes prm-cloak { 0%,100% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.05); } }
@keyframes prm-glare { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

/* Scene: eumaeus-sleeps-with-pigs (calm, firelit, outdoor) */
.scn-eumaeus-sleeps-with-pigs {
  background: linear-gradient(180deg, #1a1a2e 0%, #242440 50%, #3a3a5e 100%), radial-gradient(ellipse at 50% 60%, #4a4a6a 0%, transparent 70%);
}
.scn-eumaeus-sleeps-with-pigs .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0c0c1e 0%, #1a1a30 100%);
  animation: slp-sky 15s ease-in-out infinite alternate;
}
.scn-eumaeus-sleeps-with-pigs .stars {
  position: absolute; top: 5%; left: 0; width: 100%; height: 30%;
  background-image: radial-gradient(2px 2px at 20% 10%, #d0d8f0 0%, transparent 100%), radial-gradient(2px 2px at 60% 20%, #d0d8f0 0%, transparent 100%), radial-gradient(1px 1px at 30% 50%, #d0d8f0 0%, transparent 100%), radial-gradient(1px 1px at 80% 15%, #d0d8f0 0%, transparent 100%), radial-gradient(2px 2px at 50% 40%, #d0d8f0 0%, transparent 100%);
  background-size: 100% 100%;
  animation: slp-stars 30s linear infinite;
}
.scn-eumaeus-sleeps-with-pigs .pigsty-roof {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 15%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
}
.scn-eumaeus-sleeps-with-pigs .pig-body-1 {
  position: absolute; bottom: 18%; left: 25%; width: 32px; height: 22px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  animation: slp-pig1 4s ease-in-out infinite alternate;
}
.scn-eumaeus-sleeps-with-pigs .pig-body-2 {
  position: absolute; bottom: 16%; right: 25%; width: 28px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  animation: slp-pig2 5s ease-in-out infinite alternate;
}
.scn-eumaeus-sleeps-with-pigs .eumaeus-sleeping {
  position: absolute; bottom: 18%; left: 45%; width: 24px; height: 35px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: slp-eumaeus 6s ease-in-out infinite alternate;
}
.scn-eumaeus-sleeps-with-pigs .firelight-glow {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,85,61,0.2) 0%, transparent 80%);
  pointer-events: none;
  animation: slp-firelight 4s ease-in-out infinite alternate;
}
@keyframes slp-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes slp-stars { 0% { background-position: 0 0; } 100% { background-position: 10px 20px; } }
@keyframes slp-pig1 { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes slp-pig2 { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes slp-eumaeus { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes slp-firelight { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.2; } }

/* ----- SCENE: minerva-conceals-ulysses (mcu) ----- */
.scn-minerva-conceals-ulysses {
  background: linear-gradient(180deg, #2c2a4e 0%, #4a407a 40%, #6a5a8a 70%, #4a3a5a 100%),
              radial-gradient(ellipse at 50% 80%, #5a4a7a 0%, transparent 60%);
}
.scn-minerva-conceals-ulysses .sky-mcu {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3768 0%, #2a2850 50%, transparent 100%);
  animation: mcu-sky 14s ease-in-out infinite alternate;
}
.scn-minerva-conceals-ulysses .city-mcu {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  clip-path: polygon(0% 100%, 0% 60%, 5% 60%, 5% 40%, 10% 40%, 10% 70%, 15% 70%, 15% 50%, 20% 50%, 20% 65%, 25% 65%, 25% 30%, 30% 30%, 30% 55%, 35% 55%, 35% 45%, 40% 45%, 40% 60%, 45% 60%, 45% 35%, 50% 35%, 50% 50%, 55% 50%, 55% 65%, 60% 65%, 60% 40%, 65% 40%, 65% 60%, 70% 60%, 70% 45%, 75% 45%, 75% 50%, 80% 50%, 80% 70%, 85% 70%, 85% 40%, 90% 40%, 90% 55%, 95% 55%, 95% 60%, 100% 60%, 100% 100%);
  animation: mcu-city 20s ease-in-out infinite alternate;
}
.scn-minerva-conceals-ulysses .cloud-mcu {
  position: absolute; bottom: 50%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 60%, rgba(20,20,40,0.95) 0%, rgba(30,25,50,0.6) 60%, transparent 80%);
  filter: blur(12px);
  animation: mcu-cloud 16s ease-in-out infinite alternate;
}
.scn-minerva-conceals-ulysses .figure-mcu {
  position: absolute; bottom: 38%; left: 43%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a2040 0%, #1a1030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  opacity: 0.5;
  animation: mcu-figure 10s ease-in-out infinite;
}
.scn-minerva-conceals-ulysses .glow-mcu {
  position: absolute; bottom: 45%; left: 35%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(180,160,255,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: mcu-glow 12s ease-in-out infinite alternate;
}
@keyframes mcu-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes mcu-city { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mcu-cloud { 0% { transform: translateX(-5%) scale(1) } 50% { transform: translateX(3%) scale(1.05) } 100% { transform: translateX(-5%) scale(1) } }
@keyframes mcu-figure { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(3px) rotate(2deg) } 60% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mcu-glow { 0% { opacity: 0.3; transform: scale(0.9) } 50% { opacity: 0.5; transform: scale(1.1) } 100% { opacity: 0.3; transform: scale(0.9) } }

/* ----- SCENE: minerva-describes-palace-and-queen (mdp) ----- */
.scn-minerva-describes-palace-and-queen {
  background: linear-gradient(180deg, #3a2040 0%, #5a3050 40%, #7a4060 70%, #4a2840 100%),
              radial-gradient(ellipse at 50% 20%, #6a3860 0%, transparent 70%);
}
.scn-minerva-describes-palace-and-queen .wall-mdp {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a2840 0%, #3a1c30 100%);
  border-bottom: 4px solid #5a3050;
  animation: mdp-wall 20s ease-in-out infinite alternate;
}
.scn-minerva-describes-palace-and-queen .floor-mdp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1420 0%, #1a0c14 100%);
}
.scn-minerva-describes-palace-and-queen .table-mdp {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #5a3050 0%, #3a1c30 100%);
  border-radius: 4% 4% 0 0;
  transform: perspective(200px) rotateX(8deg);
  animation: mdp-table 18s ease-in-out infinite;
}
.scn-minerva-describes-palace-and-queen .queen-mdp {
  position: absolute; bottom: 28%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a4060 0%, #4a2840 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mdp-figure 8s ease-in-out infinite;
}
.scn-minerva-describes-palace-and-queen .guest-mdp {
  position: absolute; bottom: 28%; left: 35%; width: 16px; height: 44px;
  background: linear-gradient(180deg, #5a3050 0%, #3a1c30 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mdp-figure 9s ease-in-out infinite;
}
.scn-minerva-describes-palace-and-queen .lamp-mdp {
  position: absolute; bottom: 45%; left: 48%; width: 14px; height: 18px;
  background: radial-gradient(circle, #c08060 0%, #a06040 60%, transparent 80%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(192,128,96,0.6), 0 0 40px 16px rgba(192,128,96,0.3);
  animation: mdp-lamp 4s ease-in-out infinite alternate;
}
@keyframes mdp-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes mdp-table { 0% { transform: perspective(200px) rotateX(8deg) translateY(0) } 50% { transform: perspective(200px) rotateX(8deg) translateY(-1px) } 100% { transform: perspective(200px) rotateX(8deg) translateY(0) } }
@keyframes mdp-figure { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(3deg) } 60% { transform: translateY(1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mdp-lamp { 0% { box-shadow: 0 0 15px 6px rgba(192,128,96,0.4); opacity: 0.8 } 50% { box-shadow: 0 0 30px 12px rgba(192,128,96,0.7); opacity: 1 } 100% { box-shadow: 0 0 20px 8px rgba(192,128,96,0.5); opacity: 0.9 } }

/* ----- SCENE: minerva-continues-history (mch) ----- */
.scn-minerva-continues-history {
  background: linear-gradient(180deg, #2a2a4e 0%, #4a406a 40%, #6a5a8a 70%, #3a3a5a 100%),
              radial-gradient(ellipse at 80% 30%, #5a4a7a 0%, transparent 60%);
}
.scn-minerva-continues-history .room-mch {
  position: absolute; inset: 10% 5% 20% 5%;
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: mch-room 24s ease-in-out infinite alternate;
}
.scn-minerva-continues-history .window-mch {
  position: absolute; top: 20%; right: 20%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #5a4a7a 0%, #3a3a6a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(255,200,150,0.2);
  animation: mch-window 14s ease-in-out infinite alternate;
}
.scn-minerva-continues-history .minerva-mch {
  position: absolute; bottom: 30%; left: 25%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #6a5a8a 0%, #4a3a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mch-figure 10s ease-in-out infinite;
}
.scn-minerva-continues-history .ulysses-mch {
  position: absolute; bottom: 30%; left: 45%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mch-figure 11s ease-in-out infinite reverse;
}
.scn-minerva-continues-history .shadow-mch {
  position: absolute; bottom: 25%; left: 20%; width: 50%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: mch-shadow 18s ease-in-out infinite alternate;
}
.scn-minerva-continues-history .scroll-mch {
  position: absolute; bottom: 35%; left: 33%; width: 28px; height: 8px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(-10deg);
  animation: mch-scroll 8s ease-in-out infinite;
}
@keyframes mch-room { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes mch-window { 0% { opacity: 0.6; transform: scaleX(1) } 50% { opacity: 0.8; transform: scaleX(1.05) } 100% { opacity: 0.6; transform: scaleX(1) } }
@keyframes mch-figure { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(2deg) } 60% { transform: translateY(1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mch-shadow { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }
@keyframes mch-scroll { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-1px) } 100% { transform: rotate(-10deg) translateY(0) } }

/* ----- SCENE: minerva-departs-to-athens (mda) ----- */
.scn-minerva-departs-to-athens {
  background: linear-gradient(180deg, #1a2040 0%, #2a3060 30%, #4a4a7a 60%, #3a3a5a 100%),
              radial-gradient(ellipse at 70% 50%, #5a5a8a 0%, transparent 50%);
}
.scn-minerva-departs-to-athens .sky-mda {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a3060 0%, #1a2040 50%, transparent 100%);
  animation: mda-sky 16s ease-in-out infinite alternate;
}
.scn-minerva-departs-to-athens .sea-mda {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3a3a6a 0%, #1a1a3e 50%, #0a0a1e 100%);
  clip-path: polygon(0% 60%, 10% 50%, 20% 65%, 30% 48%, 40% 62%, 50% 45%, 60% 60%, 70% 43%, 80% 58%, 90% 40%, 100% 55%, 100% 100%, 0% 100%);
  animation: mda-sea 20s ease-in-out infinite alternate;
}
.scn-minerva-departs-to-athens .horizon-mda {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent, #6a6a9a 20%, #8a8aaa 50%, #6a6a9a 80%, transparent);
  animation: mda-horizon 25s linear infinite;
}
.scn-minerva-departs-to-athens .goddess-mda {
  position: absolute; top: 20%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #8a8aaa 0%, #6a6a9a 50%, #4a4a7a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(-15deg);
  box-shadow: 0 0 30px 10px rgba(138,138,170,0.3);
  animation: mda-goddess 14s ease-in-out infinite;
}
.scn-minerva-departs-to-athens .city-mda {
  position: absolute; bottom: 40%; right: 15%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%);
  clip-path: polygon(0% 100%, 0% 40%, 15% 40%, 15% 20%, 30% 20%, 30% 50%, 50% 50%, 50% 30%, 65% 30%, 65% 60%, 80% 60%, 80% 25%, 100% 25%, 100% 100%);
  animation: mda-city 30s ease-in-out infinite alternate;
}
.scn-minerva-departs-to-athens .wind-mda {
  position: absolute; top: 25%; left: 30%; width: 80px; height: 8px;
  background: linear-gradient(90deg, transparent, rgba(138,138,170,0.4) 30%, transparent 70%);
  filter: blur(4px);
  animation: mda-wind 12s linear infinite;
}
.scn-minerva-departs-to-athens .cloud-left-mda {
  position: absolute; top: 12%; left: 5%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(200,200,230,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mda-cloud-left 35s linear infinite;
}
.scn-minerva-departs-to-athens .cloud-right-mda {
  position: absolute; top: 18%; right: 10%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(200,200,230,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mda-cloud-right 40s linear infinite reverse;
}
@keyframes mda-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes mda-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mda-horizon { 0% { opacity: 0.4 } 50% { opacity: 0.8 } 100% { opacity: 0.4 } }
@keyframes mda-goddess { 0% { transform: rotate(-15deg) translateX(0) } 30% { transform: rotate(-10deg) translateX(5px) } 60% { transform: rotate(-20deg) translateX(-5px) } 100% { transform: rotate(-15deg) translateX(0) } }
@keyframes mda-city { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes mda-wind { 0% { transform: translateX(-30px) } 100% { transform: translateX(100vw) } }
@keyframes mda-cloud-left { 0% { transform: translateX(0) } 100% { transform: translateX(110vw) } }
@keyframes mda-cloud-right { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-nausicaa-arrives-home {
  background: linear-gradient(180deg, #2a1a3e 0%, #4a3a5e 30%, #6a4a3e 60%, #3a2a1a 100%), radial-gradient(ellipse at 50% 0%, #b08040 0%, transparent 50%);
}
.scn-nausicaa-arrives-home .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a3a4a 0%, #b08050 50%, #d0a060 100%);
  animation: na-sky 15s ease-in-out infinite alternate;
}
.scn-nausicaa-arrives-home .house {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: na-house 10s ease-in-out infinite;
}
.scn-nausicaa-arrives-home .gateway {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: #2a1a1a;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-nausicaa-arrives-home .waggon {
  position: absolute; bottom: 15%; left: 30%; width: 70px; height: 30px;
  background: #5a3a2a;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: na-waggon 6s ease-in-out infinite;
}
.scn-nausicaa-arrives-home .mule1,
.scn-nausicaa-arrives-home .mule2 {
  position: absolute; bottom: 17%; width: 30px; height: 22px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: na-mule 4s ease-in-out infinite alternate;
}
.scn-nausicaa-arrives-home .mule1 { left: 22%; }
.scn-nausicaa-arrives-home .mule2 { left: 38%; animation-delay: 0.5s; }
.scn-nausicaa-arrives-home .figure-nausicaa {
  position: absolute; bottom: 14%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #8a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: na-walk 5s ease-in-out infinite;
}
.scn-nausicaa-arrives-home .figure-brother {
  position: absolute; bottom: 14%; left: 55%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: na-walk 5s ease-in-out infinite reverse;
}
.scn-nausicaa-arrives-home .clothes {
  position: absolute; bottom: 18%; left: 65%; width: 25px; height: 15px;
  background: #b08060;
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: na-bob 7s ease-in-out infinite;
}
@keyframes na-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes na-house { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes na-waggon { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(1px) rotate(1deg); } }
@keyframes na-mule { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes na-walk { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes na-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

.scn-ulysses-enters-city {
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 40%, #5a3a3e 70%, #2a1a1a 100%), radial-gradient(ellipse at 50% 100%, #5a3a3e 0%, transparent 60%);
}
.scn-ulysses-enters-city .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a2a4a 0%, #a08050 100%);
  animation: ul-sky 20s ease-in-out infinite alternate;
}
.scn-ulysses-enters-city .city-wall {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  clip-path: polygon(0% 0%, 5% 0%, 10% 15%, 15% 0%, 25% 0%, 30% 15%, 35% 0%, 50% 0%, 55% 15%, 60% 0%, 70% 0%, 75% 15%, 80% 0%, 90% 0%, 95% 15%, 100% 0%, 100% 100%, 0% 100%);
  animation: ul-wall 25s ease-in-out infinite alternate;
}
.scn-ulysses-enters-city .gate {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: #1a0a0a;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: ul-gate 8s ease-in-out infinite alternate;
}
.scn-ulysses-enters-city .mist {
  position: absolute; inset: 20% 0 30% 0;
  background: linear-gradient(90deg, rgba(180,160,140,0.6) 0%, rgba(180,160,140,0.1) 50%, rgba(180,160,140,0.6) 100%);
  filter: blur(8px);
  animation: ul-mist 30s linear infinite;
}
.scn-ulysses-enters-city .ulysses {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ul-walk 6s ease-in-out infinite;
}
.scn-ulysses-enters-city .minerva {
  position: absolute; bottom: 25%; right: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.5;
  animation: ul-fade 12s ease-in-out infinite alternate;
}
.scn-ulysses-enters-city .road {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 10%;
  background: #3a2a1a;
  border-radius: 0 0 50% 50%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
@keyframes ul-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ul-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ul-gate { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes ul-mist { 0% { transform: translateX(-10%); } 100% { transform: translateX(10%); } }
@keyframes ul-walk { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ul-fade { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }

.scn-ulysses-asks-girl-for-directions {
  background: linear-gradient(180deg, #2a1a3e 0%, #4a3a5e 40%, #6a4a3a 70%, #3a2a1a 100%), radial-gradient(ellipse at 50% 0%, #c0a060 0%, transparent 50%);
}
.scn-ulysses-asks-girl-for-directions .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a3a4a 0%, #b08050 70%, #d0a060 100%);
  animation: ug-sky 18s ease-in-out infinite alternate;
}
.scn-ulysses-asks-girl-for-directions .house-alcinous {
  position: absolute; bottom: 25%; right: 15%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: ug-house 12s ease-in-out infinite;
}
.scn-ulysses-asks-girl-for-directions .street {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 15%;
  background: #4a3a2a;
  border-radius: 0 0 40% 40%;
}
.scn-ulysses-asks-girl-for-directions .ulysses-figure {
  position: absolute; bottom: 22%; left: 25%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ug-ulysses 7s ease-in-out infinite;
}
.scn-ulysses-asks-girl-for-directions .girl-figure {
  position: absolute; bottom: 22%; left: 45%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ug-girl 7s ease-in-out infinite alternate;
}
.scn-ulysses-asks-girl-for-directions .fountain {
  position: absolute; bottom: 20%; left: 60%; width: 20px; height: 30px;
  background: #5a4a3a;
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -10px 20px rgba(100,80,60,0.4);
  animation: ug-fountain 4s ease-in-out infinite;
}
.scn-ulysses-asks-girl-for-directions .window-glow {
  position: absolute; bottom: 50%; right: 20%; width: 12px; height: 16px;
  background: radial-gradient(circle, #f0c060 0%, #b08040 70%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: ug-glow 3s ease-in-out infinite alternate;
}
@keyframes ug-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ug-house { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ug-ulysses { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(0); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes ug-girl { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes ug-fountain { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } }
@keyframes ug-glow { 0% { box-shadow: 0 0 15px 4px #c08040, 0 0 30px 8px rgba(192,128,64,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 25px 8px #ffd060, 0 0 50px 15px rgba(255,208,96,0.5); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #c08040, 0 0 35px 10px rgba(192,128,64,0.35); opacity: 0.9; } }

.scn-minerva-leads-him {
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 40%, #5a3a3e 70%, #2a1a1a 100%), radial-gradient(ellipse at 50% 100%, #5a3a3e 0%, transparent 60%);
}
.scn-minerva-leads-him .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a2a4a 0%, #a08050 100%);
  animation: ml-sky 20s ease-in-out infinite alternate;
}
.scn-minerva-leads-him .path {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 12%;
  background: #3a2a1a;
  border-radius: 0 0 40% 40%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-minerva-leads-him .minerva-figure {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ml-walk 7s ease-in-out infinite;
}
.scn-minerva-leads-him .ulysses-figure {
  position: absolute; bottom: 22%; left: 42%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ml-walk 7s ease-in-out infinite reverse;
}
.scn-minerva-leads-him .house-close {
  position: absolute; bottom: 25%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: ml-house 15s ease-in-out infinite;
}
.scn-minerva-leads-him .tree1,
.scn-minerva-leads-him .tree2 {
  position: absolute; bottom: 28%; width: 15px; height: 50px;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: ml-tree 10s ease-in-out infinite alternate;
}
.scn-minerva-leads-him .tree1 { left: 5%; }
.scn-minerva-leads-him .tree2 { left: 15%; animation-delay: 2s; }
.scn-minerva-leads-him .door-glow {
  position: absolute; bottom: 35%; right: 15%; width: 14px; height: 20px;
  background: radial-gradient(circle, #f0c060 0%, #b08040 70%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: ml-door 3s ease-in-out infinite alternate;
}
@keyframes ml-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ml-walk { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ml-house { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ml-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes ml-door { 0% { box-shadow: 0 0 15px 4px #c08040, 0 0 30px 8px rgba(192,128,64,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 25px 8px #ffd060, 0 0 50px 15px rgba(255,208,96,0.5); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #c08040, 0 0 35px 10px rgba(192,128,64,0.35); opacity: 0.9; } }

/* medon-reveals-the-plot */
.scn-medon-reveals-the-plot {
  background:
    linear-gradient(180deg, #1a1814 0%, #2a2218 30%, #1c1610 70%, #0e0a06 100%),
    radial-gradient(ellipse at 50% 20%, #4a3520 0%, transparent 60%);
  overflow: hidden;
}
.scn-medon-reveals-the-plot .room-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2e22 0%, #1c1610 100%);
  animation: mr-wall-pulse 12s ease-in-out infinite;
}
.scn-medon-reveals-the-plot .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-medon-reveals-the-plot .lamp {
  position: absolute; bottom: 40%; left: 25%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #ffa040 0%, #8a4a10 70%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 0 40px 15px #b06020, 0 0 100px 30px rgba(176,96,32,0.4);
  animation: mr-lamp-flicker 2s ease-in-out infinite;
}
.scn-medon-reveals-the-plot .figure-medon {
  position: absolute; bottom: 35%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a120a 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -10px 0 20px rgba(0,0,0,0.6);
  animation: mr-medon-speak 4s ease-in-out infinite;
}
.scn-medon-reveals-the-plot .figure-penelope {
  position: absolute; bottom: 36%; right: 30%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  box-shadow: 5px 0 15px rgba(0,0,0,0.5);
  animation: mr-penelope-react 5s ease-in-out infinite;
}
.scn-medon-reveals-the-plot .table {
  position: absolute; bottom: 35%; left: 40%; width: 50px; height: 12px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e14 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: mr-table-shift 6s ease-in-out infinite;
}
.scn-medon-reveals-the-plot .scroll {
  position: absolute; bottom: 40%; left: 45%; width: 18px; height: 8px;
  background: linear-gradient(90deg, #b89860 0%, #d4b880 50%, #b89860 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: mr-scroll-unfurl 8s ease-in-out infinite;
}
@keyframes mr-wall-pulse { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes mr-lamp-flicker { 0%,100% { opacity:0.8; transform: scaleY(1) translateY(0) } 30% { opacity:1; transform: scaleY(1.05) translateY(-1px) } 60% { opacity:0.6; transform: scaleY(0.95) translateY(1px) } }
@keyframes mr-medon-speak { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(1deg) } }
@keyframes mr-penelope-react { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(0) translateY(-1px) rotate(-3deg) } 60% { transform: translateX(1px) translateY(0) rotate(2deg) } }
@keyframes mr-table-shift { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) } }
@keyframes mr-scroll-unfurl { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } }

/* penelope-in-despair */
.scn-penelope-in-despair {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #222238 40%, #18182a 70%, #0c0c1e 100%),
    radial-gradient(ellipse at 60% 30%, #3a3a5e 0%, transparent 60%);
  overflow: hidden;
}
.scn-penelope-in-despair .bedroom-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a42 0%, #1a1a2e 100%);
  animation: pd-wall-fade 10s ease-in-out infinite alternate;
}
.scn-penelope-in-despair .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
}
.scn-penelope-in-despair .window {
  position: absolute; top: 15%; right: 20%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #50507a 0%, #30305a 100%);
  border: 4px solid #1a1a2e;
  border-radius: 4px;
  box-shadow: inset 0 0 20px #60608a;
  animation: pd-window-breathe 8s ease-in-out infinite;
}
.scn-penelope-in-despair .moonlight {
  position: absolute; top: 20%; right: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, rgba(160,160,200,0.3) 0%, transparent 100%);
  transform: rotate(15deg);
  filter: blur(4px);
  animation: pd-moonlight-sweep 15s linear infinite;
}
.scn-penelope-in-despair .figure-penelope {
  position: absolute; bottom: 25%; left: 55%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a2a46 0%, #1a1a32 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.5);
  animation: pd-penelope-collapse 4s ease-in-out infinite;
}
.scn-penelope-in-despair .tears {
  position: absolute; bottom: 30%; left: 58%; width: 4px; height: 4px;
  background: radial-gradient(circle, #a0a0c0 0%, #505070 100%);
  border-radius: 50%;
}
.scn-penelope-in-despair .drop-a {
  animation: pd-tear-fall 3s ease-in infinite;
  left: 59%;
}
.scn-penelope-in-despair .drop-b {
  animation: pd-tear-fall 3.5s ease-in infinite 1s;
  left: 57%;
}
@keyframes pd-wall-fade { 0%,100% { opacity:0.6 } 50% { opacity:1 } }
@keyframes pd-window-breathe { 0%,100% { box-shadow: inset 0 0 20px #60608a; } 50% { box-shadow: inset 0 0 40px #8080a0; } }
@keyframes pd-moonlight-sweep { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(20deg) translateX(10px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes pd-penelope-collapse { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(5px) translateY(-3px) rotate(-5deg); } 50% { transform: translateX(10px) translateY(0) rotate(0deg); } 75% { transform: translateX(5px) translateY(2px) rotate(5deg); } }
@keyframes pd-tear-fall { 0% { transform: translateY(0) scale(1); opacity:1; } 100% { transform: translateY(40px) scale(0.5); opacity:0; } }

/* medon-answers */
.scn-medon-answers {
  background:
    linear-gradient(180deg, #2a241e 0%, #3a3028 40%, #2a2018 70%, #1a1410 100%),
    radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, transparent 70%);
  overflow: hidden;
}
.scn-medon-answers .chamber-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a342a 0%, #2a241e 100%);
  animation: ma-wall-glow 15s ease-in-out infinite alternate;
}
.scn-medon-answers .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #2a2218 0px, #3a3028 20px, #2a2218 40px);
  background-size: 40px 100%;
  animation: ma-tiles-slide 20s linear infinite;
}
.scn-medon-answers .lamp-soft {
  position: absolute; bottom: 45%; left: 30%; width: 18px; height: 24px;
  background: radial-gradient(circle at 50% 30%, #d0a070 0%, #8a5a30 70%);
  border-radius: 4px 4px 6px 6px;
  box-shadow: 0 0 30px 10px #b08050, 0 0 60px 20px rgba(176,128,80,0.3);
  animation: ma-lamp-breathe 6s ease-in-out infinite;
}
.scn-medon-answers .figure-medon {
  position: absolute; bottom: 35%; left: 38%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ma-medon-gesture 7s ease-in-out infinite;
}
.scn-medon-answers .figure-penelope {
  position: absolute; bottom: 36%; right: 30%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  animation: ma-penelope-listen 8s ease-in-out infinite;
}
.scn-medon-answers .pillar {
  position: absolute; bottom: 25%; left: 20%; width: 12px; height: 75%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 4px 0 10px rgba(0,0,0,0.3);
}
@keyframes ma-wall-glow { 0%,100% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } }
@keyframes ma-tiles-slide { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }
@keyframes ma-lamp-breathe { 0%,100% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } }
@keyframes ma-medon-gesture { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-3deg); } }
@keyframes ma-penelope-listen { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

/* penelope-mourns */
.scn-penelope-mourns {
  background:
    linear-gradient(180deg, #1a1412 0%, #2a1e1a 30%, #1c1410 70%, #0e0a08 100%),
    radial-gradient(ellipse at 40% 50%, #3a2a22 0%, transparent 70%);
  overflow: hidden;
}
.scn-penelope-mourns .palace-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  border-radius: 80% 20% 0 0 / 40% 20% 0 0;
}
.scn-penelope-mourns .wall-shadow {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a221e 0%, #1a1410 100%);
  box-shadow: inset 0 30px 60px rgba(0,0,0,0.6);
  animation: pm-wall-darken 12s ease-in-out infinite alternate;
}
.scn-penelope-mourns .figure-penelope {
  position: absolute; bottom: 25%; left: 50%; width: 45px; height: 50px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1410 100%);
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  box-shadow: 0 -15px 30px rgba(0,0,0,0.7);
  animation: pm-penelope-fling 5s ease-in-out infinite;
}
.scn-penelope-mourns .maid {
  position: absolute; bottom: 30%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  filter: blur(1px);
}
.scn-penelope-mourns .maid.back {
  left: 25%; height: 40px;
  animation: pm-maid-move 9s ease-in-out infinite;
}
.scn-penelope-mourns .maid.front {
  left: 65%; height: 42px;
  animation: pm-maid-move 9s ease-in-out infinite 2s;
}
.scn-penelope-mourns .weeping {
  position: absolute; bottom: 30%; left: 52%; width: 8px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, #5a4a40 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: pm-weep 4s ease-in-out infinite;
}
.scn-penelope-mourns .oil-lamp {
  position: absolute; bottom: 45%; left: 20%; width: 16px; height: 22px;
  background: radial-gradient(circle at 50% 30%, #b07040 0%, #5a3018 70%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 0 30px 8px #805020, 0 0 60px 15px rgba(128,80,32,0.3);
  animation: pm-lamp-glimmer 2.5s ease-in-out infinite;
}
.scn-penelope-mourns .pool-of-tears {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #4a3a32 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: pm-pool-spread 10s ease-in-out infinite alternate;
}
@keyframes pm-wall-darken { 0%,100% { opacity:0.6; filter: brightness(1); } 50% { opacity:1; filter: brightness(0.85); } }
@keyframes pm-penelope-fling { 0%,100% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-8px) rotate(-10deg); } 40% { transform: translateX(0) rotate(0deg); } 60% { transform: translateX(6px) rotate(8deg); } 80% { transform: translateX(-4px) rotate(-5deg); } }
@keyframes pm-maid-move { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes pm-weep { 0%,100% { opacity:0.3; transform: scaleY(1); } 50% { opacity:0.6; transform: scaleY(1.3); } }
@keyframes pm-lamp-glimmer { 0%,100% { opacity:0.8; } 30% { opacity:1; } 60% { opacity:0.6; } }
@keyframes pm-pool-spread { 0% { transform: scaleX(1) scaleY(1); } 100% { transform: scaleX(1.5) scaleY(0.8); } }

.scn-mother-reports {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0e0e24 100%), radial-gradient(ellipse at 50% 80%, #1a1a3a 0%, transparent 70%);
  position: relative;
}
.scn-mother-reports .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,10,.6) 0%, rgba(10,10,30,.8) 100%); }
.scn-mother-reports .wall-left { position:absolute; bottom:30%; left:0; width:45%; height:70%; background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 100%); border-right: 2px solid #3a3a4a; transform: scaleX(.95) translateY(2px); animation: mr-wall 14s ease-in-out infinite alternate; }
.scn-mother-reports .wall-right { position:absolute; bottom:30%; right:0; width:45%; height:70%; background: linear-gradient(270deg, #2a2a3a 0%, #1a1a2a 100%); border-left: 2px solid #3a3a4a; transform: scaleX(.95) translateY(2px); animation: mr-wall 14s ease-in-out infinite alternate-reverse; }
.scn-mother-reports .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.7); border-radius: 20% 20% 0 0 / 50% 50% 0 0; }
.scn-mother-reports .window-glow { position:absolute; top:20%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #3a3a5a 0%, #1a1a2e 70%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 30px 10px #2a2a4a, 0 0 60px 20px rgba(42,42,74,.4); animation: mr-glow 5s ease-in-out infinite alternate; }
.scn-mother-reports .mother-figure { position:absolute; bottom:28%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-figure 7s ease-in-out infinite; }
.scn-mother-reports .chair { position:absolute; bottom:22%; left:32%; width:40px; height:20px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 20% 20% 10% 10% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-mother-reports .tear { position:absolute; bottom:33%; left:38%; width:4px; height:10px; background: radial-gradient(circle, #6a8aaa 0%, transparent 80%); border-radius: 50%; box-shadow: 0 0 6px 2px #6a8aaa; animation: mr-tear 3s ease-in-out infinite; }
@keyframes mr-wall { 0% { transform: scaleX(.95) translateY(2px); } 50% { transform: scaleX(1) translateY(0px); } 100% { transform: scaleX(.95) translateY(2px); } }
@keyframes mr-glow { 0% { opacity:.6; box-shadow: 0 0 20px 5px #2a2a4a, 0 0 40px 10px rgba(42,42,74,.3); } 50% { opacity:.9; box-shadow: 0 0 40px 15px #3a3a5a, 0 0 80px 25px rgba(58,58,90,.5); } 100% { opacity:.7; box-shadow: 0 0 25px 8px #2a2a4a, 0 0 50px 15px rgba(42,42,74,.35); } }
@keyframes mr-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mr-tear { 0% { transform: translateY(0) scale(1); opacity:1; } 50% { transform: translateY(8px) scale(.8); opacity:.5; } 100% { transform: translateY(16px) scale(.5); opacity:0; } }

.scn-embracing-mother-ghost {
  background: linear-gradient(180deg, #0c0c24 0%, #1a1a3e 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 80%);
  position: relative;
}
.scn-embracing-mother-ghost .bg-void { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,20,.7) 0%, rgba(10,10,30,.5) 100%); }
.scn-embracing-mother-ghost .ground-ghost { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 30% 30% 0 0 / 80% 80% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.8); }
.scn-embracing-mother-ghost .mother-ghost { position:absolute; bottom:30%; left:45%; width:40px; height:60px; background: radial-gradient(circle at 50% 40%, rgba(150,180,200,.3) 0%, rgba(100,130,160,.1) 70%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); animation: em-ghost 8s ease-in-out infinite; }
.scn-embracing-mother-ghost .arms { position:absolute; bottom:34%; left:20%; width:100px; height:30px; background: radial-gradient(circle at 0% 50%, rgba(150,180,200,.2) 0%, transparent 70%); border-radius: 40% 60% 60% 40% / 50% 50% 50% 50%; transform-origin: left center; animation: em-arms 6s ease-in-out infinite; }
.scn-embracing-mother-ghost .ghost-glow { position:absolute; bottom:28%; left:42%; width:60px; height:80px; background: radial-gradient(circle, rgba(200,220,240,.1) 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(150,180,210,.15); animation: em-glow 10s ease-in-out infinite alternate; }
.scn-embracing-mother-ghost .spark { position:absolute; width:4px; height:4px; background: radial-gradient(circle, #aaccee 0%, transparent 80%); border-radius: 50%; box-shadow: 0 0 8px 2px #aaccee; }
.scn-embracing-mother-ghost .spark-1 { bottom:40%; left:30%; animation: em-spark1 5s ease-in-out infinite; }
.scn-embracing-mother-ghost .spark-2 { bottom:35%; right:35%; animation: em-spark2 7s ease-in-out infinite reversed; }
@keyframes em-ghost { 0% { transform: translateY(0) scale(1); opacity:.4; } 50% { transform: translateY(-8px) scale(1.05); opacity:.7; } 100% { transform: translateY(0) scale(1); opacity:.4; } }
@keyframes em-arms { 0% { transform: translateX(-40px) rotate(0deg); opacity:.3; } 50% { transform: translateX(-10px) rotate(15deg); opacity:.6; } 100% { transform: translateX(-40px) rotate(0deg); opacity:.3; } }
@keyframes em-glow { 0% { opacity:.2; transform: scale(.9); } 50% { opacity:.5; transform: scale(1.1); } 100% { opacity:.2; transform: scale(.9); } }
@keyframes em-spark1 { 0% { transform: translate(0,0) scale(0); opacity:0; } 30% { transform: translate(10px,-15px) scale(1.5); opacity:1; } 60% { transform: translate(20px,-30px) scale(1); opacity:.7; } 100% { transform: translate(30px,-50px) scale(0); opacity:0; } }
@keyframes em-spark2 { 0% { transform: translate(0,0) scale(0); opacity:0; } 30% { transform: translate(-10px,-10px) scale(1.2); opacity:1; } 60% { transform: translate(-20px,-25px) scale(.8); opacity:.6; } 100% { transform: translate(-30px,-40px) scale(0); opacity:0; } }

.scn-wives-and-daughters {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 40%, #0e0a1e 100%), radial-gradient(ellipse at 50% 70%, #2a1a3a 0%, transparent 80%);
  position: relative;
}
.scn-wives-and-daughters .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,20,.8) 0%, rgba(10,10,30,.6) 100%); }
.scn-wives-and-daughters .altar { position:absolute; bottom:20%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 5% 5% / 40% 40% 20% 20%; box-shadow: 0 6px 20px rgba(0,0,0,.8); transform: perspective(400px) rotateX(10deg); }
.scn-wives-and-daughters .blood-pool { position:absolute; bottom:18%; left:40%; width:20%; height:8%; background: radial-gradient(ellipse, #5e1a1d 0%, #3a0e10 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #5e1a1d; animation: wd-blood 6s ease-in-out infinite alternate; }
.scn-wives-and-daughters .ghost { position:absolute; height:50px; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px); background: radial-gradient(circle at 50% 40%, rgba(180,200,220,.25) 0%, rgba(120,140,160,.1) 70%, transparent 100%); }
.scn-wives-and-daughters .woman-a { bottom:30%; left:15%; width:25px; animation: wd-ghost-a 9s ease-in-out infinite; }
.scn-wives-and-daughters .woman-b { bottom:35%; left:45%; width:30px; animation: wd-ghost-b 11s ease-in-out infinite; }
.scn-wives-and-daughters .woman-c { bottom:32%; right:15%; width:28px; animation: wd-ghost-c 8s ease-in-out infinite; }
.scn-wives-and-daughters .ember { position:absolute; width:3px; height:3px; background: radial-gradient(circle, #c8553d 0%, transparent 80%); border-radius: 50%; box-shadow: 0 0 6px 2px #c8553d; }
.scn-wives-and-daughters .ember-1 { bottom:22%; left:38%; animation: wd-ember 4s ease-in-out infinite; }
.scn-wives-and-daughters .ember-2 { bottom:20%; right:42%; animation: wd-ember 5s ease-in-out infinite reverse; }
@keyframes wd-blood { 0% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1); opacity:.8; } }
@keyframes wd-ghost-a { 0% { transform: translateY(0) scale(1); opacity:.3; } 30% { transform: translateY(-5px) scale(1.05); opacity:.6; } 60% { transform: translateY(2px) scale(1); opacity:.4; } 100% { transform: translateY(0) scale(1); opacity:.3; } }
@keyframes wd-ghost-b { 0% { transform: translateY(0) scale(1); opacity:.2; } 40% { transform: translateY(-8px) scale(1.1); opacity:.5; } 80% { transform: translateY(3px) scale(.95); opacity:.3; } 100% { transform: translateY(0) scale(1); opacity:.2; } }
@keyframes wd-ghost-c { 0% { transform: translateY(0) scale(1); opacity:.3; } 50% { transform: translateY(-4px) scale(1.03); opacity:.5; } 100% { transform: translateY(0) scale(1); opacity:.3; } }
@keyframes wd-ember { 0% { transform: translateY(0) scale(1); opacity:1; } 50% { transform: translateY(-20px) scale(.8); opacity:.5; } 100% { transform: translateY(0) scale(1); opacity:1; } }

.scn-catalogue-of-women {
  background: linear-gradient(180deg, #0e1a2e 0%, #1a2a4e 40%, #0a1a2a 100%), radial-gradient(ellipse at 50% 30%, #1a3a5a 0%, transparent 80%);
  position: relative;
}
.scn-catalogue-of-women .sea-deep { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,20,40,.9) 0%, rgba(5,15,25,.7) 100%); }
.scn-catalogue-of-women .sea-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.8); }
.scn-catalogue-of-women .figure-left, .scn-catalogue-of-women .figure-center, .scn-catalogue-of-women .figure-right {
  position:absolute; bottom:22%; height:50px; width:25px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
}
.scn-catalogue-of-women .figure-left { left:15%; animation: cw-fig-l 10s ease-in-out infinite; }
.scn-catalogue-of-women .figure-center { left:42%; animation: cw-fig-c 12s ease-in-out infinite; }
.scn-catalogue-of-women .figure-right { right:15%; animation: cw-fig-r 8s ease-in-out infinite; }
.scn-catalogue-of-women .bubble { position:absolute; width:6px; height:6px; background: radial-gradient(circle, rgba(180,210,240,.3) 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 4px 1px rgba(180,210,240,.15); }
.scn-catalogue-of-women .bubble-1 { bottom:40%; left:30%; animation: cw-bubble 7s ease-in-out infinite; }
.scn-catalogue-of-women .bubble-2 { bottom:35%; left:55%; animation: cw-bubble 9s ease-in-out infinite reverse; }
.scn-catalogue-of-women .bubble-3 { bottom:28%; left:70%; animation: cw-bubble 6s ease-in-out infinite; }
@keyframes cw-fig-l { 0% { transform: translateY(0) scale(1); opacity:.6; } 30% { transform: translateY(-3px) scale(1.02); opacity:.8; } 60% { transform: translateY(1px) scale(1); opacity:.7; } 100% { transform: translateY(0) scale(1); opacity:.6; } }
@keyframes cw-fig-c { 0% { transform: translateY(0) scale(1); opacity:.5; } 40% { transform: translateY(-5px) scale(1.05); opacity:.8; } 80% { transform: translateY(2px) scale(.98); opacity:.6; } 100% { transform: translateY(0) scale(1); opacity:.5; } }
@keyframes cw-fig-r { 0% { transform: translateY(0) scale(1); opacity:.7; } 50% { transform: translateY(-4px) scale(1.03); opacity:.9; } 100% { transform: translateY(0) scale(1); opacity:.7; } }
@keyframes cw-bubble { 0% { transform: translateY(0) scale(1); opacity:.3; } 30% { transform: translateY(-15px) scale(1.2); opacity:.7; } 60% { transform: translateY(-30px) scale(1); opacity:.4; } 100% { transform: translateY(-50px) scale(.8); opacity:0; } }

.scn-servants-attend-to-guests {
  background:
    linear-gradient(180deg, #f5f0e5 0%, #d9cfb8 40%, #a69c8a 100%),
    radial-gradient(ellipse at 50% 100%, #e3d6c0 0%, transparent 70%);
}
.scn-servants-attend-to-guests .courtyard-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8ddd0 0%, #c8b8a0 100%); }
.scn-servants-attend-to-guests .stable-wall { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(90deg, #9b8b7a 0%, #b7a692 20%, #a08f7c 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,0.3); }
.scn-servants-attend-to-guests .manger { position:absolute; bottom:30%; left:10%; width:30%; height:12%; background: linear-gradient(180deg, #7a6b5c 0%, #5e4f3e 100%); border-radius: 12% 12% 4% 4% / 40% 40% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-servants-attend-to-guests .chariot { position:absolute; bottom:25%; right:15%; width:25%; height:20%; background: linear-gradient(135deg, #b89a6b 0%, #8c6e42 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%; transform: skewX(-5deg); box-shadow: -4px 0 10px rgba(0,0,0,0.3); animation: sa1-chariot 8s ease-in-out infinite alternate; }
.scn-servants-attend-to-guests .horse { position:absolute; bottom:22%; right:30%; width:18%; height:30%; background: linear-gradient(180deg, #c6a87a 0%, #a88c62 40%, #7c6344 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: sa1-horse 5s ease-in-out infinite; }
.scn-servants-attend-to-guests .servant-left { position:absolute; bottom:20%; left:20%; width:8%; height:25%; background: linear-gradient(180deg, #b8a08a 0%, #8a705a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sa1-servant-l 6s ease-in-out infinite; }
.scn-servants-attend-to-guests .servant-right { position:absolute; bottom:20%; left:55%; width:8%; height:25%; background: linear-gradient(180deg, #b8a08a 0%, #8a705a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sa1-servant-r 6s ease-in-out infinite 2s; }
.scn-servants-attend-to-guests .lantern-glow { position:absolute; bottom:40%; left:5%; width:20px; height:20px; background: radial-gradient(circle, #ffd190 0%, #c88a40 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #f5b86e; animation: sa1-lantern 4s ease-in-out infinite alternate; }
.scn-servants-attend-to-guests .dust-particles { position:absolute; inset:0; background: radial-gradient(circle at 20% 30%, rgba(255,240,210,0.1) 0%, transparent 50%); filter: blur(8px); animation: sa1-dust 12s linear infinite; }

@keyframes sa1-chariot { 0% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-4deg) translateY(-3px); } 100% { transform: skewX(-5deg) translateY(0); } }
@keyframes sa1-horse { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sa1-servant-l { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sa1-servant-r { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-3deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes sa1-lantern { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes sa1-dust { 0% { transform: translateY(0); opacity: 0.3; } 50% { transform: translateY(-8px); opacity: 0.5; } 100% { transform: translateY(0); opacity: 0.3; } }

.scn-guests-seated-at-table {
  background:
    linear-gradient(180deg, #f2ede4 0%, #d6cdbd 40%, #b8ad98 100%),
    radial-gradient(ellipse at 50% 50%, #fff8ee 0%, transparent 70%);
}
.scn-guests-seated-at-table .hall-depth { position:absolute; inset:0; background: linear-gradient(135deg, #eae3d6 0%, #d4cbb8 50%, #bfb4a0 100%); }
.scn-guests-seated-at-table .column-left { position:absolute; bottom:10%; left:5%; width:6%; height:80%; background: linear-gradient(90deg, #c5b8a2 0%, #ede2d0 30%, #bfb29c 100%); border-radius: 8% 8% 4% 4%; box-shadow: 2px 0 6px rgba(0,0,0,0.15); }
.scn-guests-seated-at-table .column-right { position:absolute; bottom:10%; right:5%; width:6%; height:80%; background: linear-gradient(90deg, #bfb29c 0%, #ede2d0 70%, #c5b8a2 100%); border-radius: 8% 8% 4% 4%; box-shadow: -2px 0 6px rgba(0,0,0,0.15); }
.scn-guests-seated-at-table .table { position:absolute; bottom:22%; left:22%; width:56%; height:18%; background: linear-gradient(180deg, #b09670 0%, #8a754a 100%); border-radius: 20% 20% 6% 6% / 60% 60% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.25); }
.scn-guests-seated-at-table .guest1 { position:absolute; bottom:25%; left:28%; width:10%; height:28%; background: linear-gradient(180deg, #e0d2bc 0%, #c0ae94 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gs2-guest 6s ease-in-out infinite; }
.scn-guests-seated-at-table .guest2 { position:absolute; bottom:25%; right:28%; width:10%; height:28%; background: linear-gradient(180deg, #dccfb8 0%, #bcaa90 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gs2-guest 6s ease-in-out infinite 3s; }
.scn-guests-seated-at-table .servant-pour { position:absolute; bottom:18%; left:48%; width:7%; height:35%; background: linear-gradient(180deg, #d2c0a8 0%, #b09a82 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: gs2-servant 8s ease-in-out infinite; }
.scn-guests-seated-at-table .ewer { position:absolute; bottom:38%; left:46%; width:5%; height:10%; background: linear-gradient(135deg, #cba86b 0%, #a08050 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,0.2); animation: gs2-ewer 3s ease-in-out infinite alternate; }
.scn-guests-seated-at-table .basin { position:absolute; bottom:30%; left:44%; width:8%; height:6%; background: radial-gradient(circle, #ecd6a0 0%, #c8b080 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: gs2-basin 4s ease-in-out infinite; }

@keyframes gs2-guest { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gs2-servant { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes gs2-ewer { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes gs2-basin { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

.scn-menelaus-offers-hospice {
  background:
    linear-gradient(180deg, #f5ead8 0%, #dfceb0 40%, #c4b090 100%),
    radial-gradient(ellipse at 30% 80%, #f9e4c8 0%, transparent 70%);
}
.scn-menelaus-offers-hospice .chamber-bg { position:absolute; inset:0; background: linear-gradient(135deg, #ede3d0 0%, #d9cbb4 50%, #c1b098 100%); }
.scn-menelaus-offers-hospice .hearth-glow { position:absolute; bottom:10%; left:10%; width:25%; height:30%; background: radial-gradient(ellipse at 50% 100%, #fad398 0%, #e88a40 40%, transparent 100%); filter: blur(10px); animation: mh3-hearth 5s ease-in-out infinite alternate; }
.scn-menelaus-offers-hospice .table-food { position:absolute; bottom:20%; left:25%; width:50%; height:16%; background: linear-gradient(180deg, #b29670 0%, #8a704a 100%); border-radius: 20% 20% 6% 6% / 60% 60% 10% 10%; box-shadow: 0 6px 14px rgba(0,0,0,0.25); }
.scn-menelaus-offers-hospice .guest-seated { position:absolute; bottom:22%; right:22%; width:9%; height:26%; background: linear-gradient(180deg, #dcc8ae 0%, #b8a08a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mh3-guest 7s ease-in-out infinite; }
.scn-menelaus-offers-hospice .menelaus-standing { position:absolute; bottom:15%; left:30%; width:10%; height:38%; background: linear-gradient(180deg, #eee0c8 0%, #c8b49a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; box-shadow: 2px 0 8px rgba(0,0,0,0.2); animation: mh3-menelaus 6s ease-in-out infinite; }
.scn-menelaus-offers-hospice .welcome-lamp { position:absolute; bottom:38%; left:20%; width:8px; height:8px; background: radial-gradient(circle, #ffe0a0 0%, #d4a050 100%); border-radius:50%; box-shadow: 0 0 24px 8px #f5c880; animation: mh3-lamp 3s ease-in-out infinite alternate; }
.scn-menelaus-offers-hospice .wreath-shadow { position:absolute; bottom:10%; left:40%; width:20%; height:6%; background: radial-gradient(ellipse, #6a5a4a 0%, transparent 100%); filter: blur(6px); animation: mh3-wreath 12s linear infinite; }

@keyframes mh3-hearth { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes mh3-guest { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mh3-menelaus { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes mh3-lamp { 0% { box-shadow: 0 0 20px 6px #f5c880; } 50% { box-shadow: 0 0 32px 12px #ffd899; } 100% { box-shadow: 0 0 24px 8px #f5c880; } }
@keyframes mh3-wreath { 0% { transform: translateX(-10px); opacity: 0.4; } 50% { transform: translateX(10px); opacity: 0.6; } 100% { transform: translateX(-10px); opacity: 0.4; } }

.scn-telemachus-admires-palace {
  background:
    linear-gradient(180deg, #f7f0e5 0%, #e0d6c8 40%, #c9bcac 100%),
    radial-gradient(ellipse at 50% 30%, #fffbf3 0%, transparent 70%);
}
.scn-telemachus-admires-palace .hall-vault { position:absolute; inset:0; background: linear-gradient(180deg, #f0e8da 0%, #dcd0be 60%, #c4b8a6 100%); }
.scn-telemachus-admires-palace .pillar-left { position:absolute; bottom:0; left:10%; width:5%; height:90%; background: linear-gradient(90deg, #c2b29c 0%, #e9ddcc 30%, #baa992 100%); border-radius: 6% 6% 2% 2%; box-shadow: 2px 0 8px rgba(0,0,0,0.12); }
.scn-telemachus-admires-palace .pillar-right { position:absolute; bottom:0; right:10%; width:5%; height:90%; background: linear-gradient(90deg, #baa992 0%, #e9ddcc 70%, #c2b29c 100%); border-radius: 6% 6% 2% 2%; box-shadow: -2px 0 8px rgba(0,0,0,0.12); }
.scn-telemachus-admires-palace .archway { position:absolute; bottom:40%; left:25%; width:50%; height:30%; background: linear-gradient(180deg, #dcc8b0 0%, #bfaa8e 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; clip-path: inset(0 0 5% 0); }
.scn-telemachus-admires-palace .telemachus-figure { position:absolute; bottom:15%; left:45%; width:8%; height:30%; background: linear-gradient(180deg, #cebca4 0%, #a9967e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: ta4-telem 8s ease-in-out infinite; }
.scn-telemachus-admires-palace .light-shaft { position:absolute; top:0; left:35%; width:30%; height:60%; background: linear-gradient(180deg, rgba(255,250,230,0.25) 0%, transparent 100%); filter: blur(12px); animation: ta4-light 10s ease-in-out infinite alternate; }
.scn-telemachus-admires-palace .floor-mosaic { position:absolute; bottom:0; left:0; right:0; height:15%; background: repeating-linear-gradient(45deg, #b8a88c 0px, #b8a88c 8px, #9e8e72 8px, #9e8e72 16px); opacity: 0.5; }

@keyframes ta4-telem { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ta4-light { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.6; transform: scaleY(1.05); } 100% { opacity: 0.4; transform: scaleY(1); } }

.scn-circe-describes-scylla {
  background: linear-gradient(180deg, #0f0c1a 0%, #1a1428 40%, #0a0812 100%), radial-gradient(ellipse at 50% 80%, #1a1428 0%, transparent 70%);
}
.scn-circe-describes-scylla .cavern {
  position: absolute; inset: 0; background: linear-gradient(180deg, #151025 0%, #0b0713 100%); opacity: 0.6; animation: cs-cavern 20s ease-in-out infinite alternate;
}
.scn-circe-describes-scylla .cliff {
  position: absolute; bottom: 10%; left: 38%; width: 24%; height: 85%; background: linear-gradient(180deg, #1f1730 0%, #161020 100%); border-radius: 30% 30% 10% 10% / 90% 90% 20% 20%; box-shadow: 0 0 40px 10px rgba(0,0,0,0.8); transform-origin: bottom center; animation: cs-cliff 12s ease-in-out infinite;
}
.scn-circe-describes-scylla .top-cloud {
  position: absolute; top: 0; left: 15%; width: 70%; height: 30%; background: radial-gradient(ellipse, rgba(100,90,120,0.5) 0%, transparent 70%); filter: blur(12px); animation: cs-cloud 25s ease-in-out infinite alternate, cs-cloud-shift 35s linear infinite;
}
.scn-circe-describes-scylla .mist {
  position: absolute; bottom: 25%; left: -10%; width: 120%; height: 40%; background: radial-gradient(ellipse, rgba(80,70,100,0.3) 0%, transparent 60%); filter: blur(8px); animation: cs-mist 30s ease-in-out infinite alternate;
}
.scn-circe-describes-scylla .figure {
  position: absolute; bottom: 12%; left: 45%; width: 12px; height: 35px; background: linear-gradient(180deg, #2c2840 0%, #1a1630 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-figure 8s ease-in-out infinite;
}
.scn-circe-describes-scylla .crack {
  position: absolute; bottom: 8%; left: 35%; width: 30%; height: 4%; background: linear-gradient(180deg, transparent 0%, #1a1428 100%); border-radius: 50%; filter: blur(4px); animation: cs-crack 15s ease-in-out infinite alternate;
}
@keyframes cs-cavern { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes cs-cliff { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.02) scaleX(0.98); } 100% { transform: scaleY(1) scaleX(1); } }
@keyframes cs-cloud { 0% { opacity: 0.6; transform: translateY(0) scale(1); } 50% { opacity: 0.9; transform: translateY(-5px) scale(1.05); } 100% { opacity: 0.6; transform: translateY(0) scale(1); } }
@keyframes cs-cloud-shift { 0% { transform: translateX(-10px); } 100% { transform: translateX(20px); } }
@keyframes cs-mist { 0% { opacity: 0.3; transform: translateY(0) scale(1); } 50% { opacity: 0.6; transform: translateY(-8px) scale(1.1); } 100% { opacity: 0.3; transform: translateY(0) scale(1); } }
@keyframes cs-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(10px) translateY(0) rotate(-2deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(20px) translateY(0) rotate(0); } }
@keyframes cs-crack { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

.scn-circe-describes-charybdis {
  background: linear-gradient(180deg, #0b0d1c 0%, #13172e 50%, #0a0c1a 100%), radial-gradient(ellipse at 30% 70%, #1a2240 0%, transparent 60%);
}
.scn-circe-describes-charybdis .cave-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #0e1122 0%, transparent 30%, transparent 70%, #0e1122 100%); opacity: 0.8; animation: cc-wall 18s ease-in-out infinite alternate;
}
.scn-circe-describes-charybdis .fig-tree {
  position: absolute; top: 8%; left: 20%; width: 40px; height: 50px; background: radial-gradient(circle at 50% 100%, #2a4a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cc-tree 8s ease-in-out infinite;
}
.scn-circe-describes-charybdis .trunk {
  position: absolute; top: 30%; left: 35%; width: 8px; height: 55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 20%; transform-origin: bottom center; animation: cc-trunk 8s ease-in-out infinite;
}
.scn-circe-describes-charybdis .whirlpool {
  position: absolute; bottom: 5%; left: 25%; width: 45%; height: 50%; background: radial-gradient(ellipse at 50% 80%, #1a3040 0%, #0a1a20 60%, transparent 80%); border-radius: 50%; transform-origin: center; animation: cc-whirl 10s linear infinite;
}
.scn-circe-describes-charybdis .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; animation: cc-water 15s ease-in-out infinite alternate;
}
.scn-circe-describes-charybdis .spray {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 30px; background: radial-gradient(circle, rgba(200,230,255,0.4) 0%, transparent 70%); filter: blur(6px); animation: cc-spray 4s ease-in-out infinite alternate;
}
.scn-circe-describes-charybdis .shore {
  position: absolute; bottom: 15%; left: 10%; width: 20%; height: 15%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 30% 30% 0 0; animation: cc-shore 20s ease-in-out infinite alternate;
}
@keyframes cc-wall { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes cc-tree { 0% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(3deg) scale(1.02); } 50% { transform: rotate(0deg) scale(1); } 75% { transform: rotate(-3deg) scale(1.02); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes cc-trunk { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes cc-whirl { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(0.95); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes cc-water { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cc-spray { 0% { opacity: 0.3; transform: translate(-5px, -5px) scale(1); } 50% { opacity: 0.8; transform: translate(5px, -10px) scale(1.5); } 100% { opacity: 0.3; transform: translate(-5px, -5px) scale(1); } }
@keyframes cc-shore { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

.scn-circe-warns-about-helios {
  background: linear-gradient(180deg, #0f0d1a 0%, #1c182a 40%, #12101e 100%), radial-gradient(ellipse at 60% 50%, #2a2440 0%, transparent 70%);
}
.scn-circe-warns-about-helios .frame-left {
  position: absolute; top: 0; bottom: 0; left: 0; width: 12%; background: linear-gradient(90deg, #1a1728 0%, #0f0c1a 100%); box-shadow: 4px 0 12px rgba(0,0,0,0.6); animation: ch-frame 20s ease-in-out infinite alternate;
}
.scn-circe-warns-about-helios .frame-right {
  position: absolute; top: 0; bottom: 0; right: 0; width: 12%; background: linear-gradient(90deg, #0f0c1a 0%, #1a1728 100%); box-shadow: -4px 0 12px rgba(0,0,0,0.6); animation: ch-frame 20s ease-in-out infinite alternate-reverse;
}
.scn-circe-warns-about-helios .window {
  position: absolute; top: 5%; left: 15%; right: 15%; bottom: 10%; background: linear-gradient(180deg, #1c1a2e 0%, #0f0d1a 100%); border: 3px solid #2a2640; border-radius: 4px; overflow: hidden;
}
.scn-circe-warns-about-helios .island {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 30%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: ch-island 25s ease-in-out infinite alternate;
}
.scn-circe-warns-about-helios .cattle {
  position: absolute; bottom: 30%; left: 25%; width: 20px; height: 12px; background: #3a3a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 15px 2px 0 #3a3a2a, 30px -1px 0 #3a3a2a, 8px 10px 0 #3a3a2a; animation: ch-cattle 10s ease-in-out infinite;
}
.scn-circe-warns-about-helios .sheep {
  position: absolute; bottom: 35%; right: 20%; width: 14px; height: 10px; background: #4a4a3a; border-radius: 50%; box-shadow: -12px 3px 0 #4a4a3a, -25px -2px 0 #4a4a3a; animation: ch-sheep 12s ease-in-out infinite alternate;
}
.scn-circe-warns-about-helios .sun {
  position: absolute; top: 5%; right: 22%; width: 30px; height: 30px; background: radial-gradient(circle, #6a6a4a 0%, #3a3a2a 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(100,100,60,0.3); animation: ch-sun 8s ease-in-out infinite alternate;
}
.scn-circe-warns-about-helios .rays {
  position: absolute; top: 5%; right: 22%; width: 50px; height: 50px; background: repeating-linear-gradient(45deg, transparent 0px, transparent 5px, rgba(100,100,60,0.1) 5px, rgba(100,100,60,0.1) 6px); border-radius: 50%; animation: ch-rays 15s linear infinite;
}
@keyframes ch-frame { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ch-island { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ch-cattle { 0% { transform: translateX(0); } 25% { transform: translateX(5px); } 50% { transform: translateX(0); } 75% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes ch-sheep { 0% { transform: translateX(0); } 50% { transform: translateX(-8px); } 100% { transform: translateX(0); } }
@keyframes ch-sun { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 0.9; } 100% { transform: scale(1); opacity: 0.6; } }
@keyframes ch-rays { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.scn-departure-from-circe-second {
  background: linear-gradient(180deg, #2a1a10 0%, #4a3020 20%, #7a5030 40%, #5a3820 100%), radial-gradient(ellipse at 50% 30%, #8a6040 0%, transparent 70%);
}
.scn-departure-from-circe-second .dawn-sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #1a0a08 0%, #4a3020 30%, #7a5030 60%, #c08050 100%); animation: dc-dawn 15s ease-in-out infinite alternate;
}
.scn-departure-from-circe-second .ship {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 18%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); clip-path: polygon(0% 100%, 5% 30%, 20% 15%, 80% 15%, 95% 30%, 100% 100%); animation: dc-ship 6s ease-in-out infinite alternate;
}
.scn-departure-from-circe-second .hull {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 8%; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius: 0 0 30% 30% / 0 0 100% 100%; transform-origin: bottom center; animation: dc-hull 6s ease-in-out infinite alternate;
}
.scn-departure-from-circe-second .oars-left {
  position: absolute; bottom: 25%; left: 32%; width: 3px; height: 30px; background: #4a3020; transform-origin: bottom center; animation: dc-oar-left 1s ease-in-out infinite;
}
.scn-departure-from-circe-second .oars-right {
  position: absolute; bottom: 25%; right: 32%; width: 3px; height: 30px; background: #4a3020; transform-origin: bottom center; animation: dc-oar-right 1s ease-in-out infinite;
}
.scn-departure-from-circe-second .captain {
  position: absolute; bottom: 30%; left: 46%; width: 16px; height: 25px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dc-captain 8s ease-in-out infinite;
}
.scn-departure-from-circe-second .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #2a4a4a 0%, #1a2a2a 100%); border-radius: 70% 30% 0 0 / 90% 60% 0 0; animation: dc-water 12s ease-in-out infinite alternate;
}
.scn-departure-from-circe-second .foam {
  position: absolute; bottom: 22%; left: 28%; width: 44%; height: 8%; background: radial-gradient(ellipse, rgba(200,230,240,0.4) 0%, transparent 80%); filter: blur(4px); animation: dc-foam 4s ease-in-out infinite alternate;
}
@keyframes dc-dawn { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes dc-ship { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dc-hull { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes dc-oar-left { 0% { transform: rotate(30deg); } 50% { transform: rotate(-30deg); } 100% { transform: rotate(30deg); } }
@keyframes dc-oar-right { 0% { transform: rotate(-30deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-30deg); } }
@keyframes dc-captain { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes dc-water { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes dc-foam { 0% { opacity: 0.2; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.1); } 100% { opacity: 0.2; transform: scaleX(1); } }

.scn-noise-wakes-ulysses {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4e8 30%, #f5deb3 60%, #d2b48c 100%), radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 70%);
  overflow: hidden;
}
.scn-noise-wakes-ulysses .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4e8 60%, #d4a574 100%);
  animation: nwu-sky 14s ease-in-out infinite alternate;
}
.scn-noise-wakes-ulysses .field {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #9acd32 0%, #6b8e23 50%, #556b2f 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: nwu-field 10s ease-in-out infinite;
}
.scn-noise-wakes-ulysses .bush {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #2e8b57 0%, #1a4d2e 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: nwu-bush 6s ease-in-out infinite;
}
.scn-noise-wakes-ulysses .figure-sleeping {
  position: absolute; bottom: 28%; left: 28%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: nwu-sleep 8s ease-in-out infinite;
}
.scn-noise-wakes-ulysses .ball {
  position: absolute; bottom: 35%; right: 30%; width: 16px; height: 16px;
  background: radial-gradient(circle at 30% 30%, #fff8dc 0%, #c0a060 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: nwu-ball 2s ease-in-out infinite;
}
.scn-noise-wakes-ulysses .light-beam {
  position: absolute; top: 10%; left: 40%; width: 30px; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: nwu-beam 4s ease-in-out infinite alternate;
}
.scn-noise-wakes-ulysses .cloud-a,
.scn-noise-wakes-ulysses .cloud-b {
  position: absolute; top: 12%; height: 20px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  filter: blur(8px);
}
.scn-noise-wakes-ulysses .cloud-a {
  left: 10%; width: 60px;
  animation: nwu-drift-a 40s linear infinite;
}
.scn-noise-wakes-ulysses .cloud-b {
  right: 15%; width: 45px;
  animation: nwu-drift-b 50s linear infinite reverse;
}
@keyframes nwu-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes nwu-field {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes nwu-bush {
  0%,100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(1deg); }
}
@keyframes nwu-sleep {
  0%,100% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-2px) rotate(-3deg); }
}
@keyframes nwu-ball {
  0%,100% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(5px, -8px) rotate(45deg); }
  50% { transform: translate(10px, 0px) rotate(90deg); }
  75% { transform: translate(5px, 8px) rotate(135deg); }
}
@keyframes nwu-beam {
  0% { opacity: 0.3; transform: translateX(0) scaleX(1); }
  50% { opacity: 0.7; transform: translateX(10px) scaleX(1.2); }
  100% { opacity: 0.4; transform: translateX(-5px) scaleX(0.9); }
}
@keyframes nwu-drift-a {
  0% { transform: translateX(-60px); }
  100% { transform: translateX(120vw); }
}
@keyframes nwu-drift-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

.scn-ulysses-wonders-where-he-is {
  background: linear-gradient(180deg, #ffb347 0%, #ffa500 30%, #e67e22 60%, #d35400 100%), radial-gradient(ellipse at 50% 0%, #ffb347 0%, transparent 70%);
  overflow: hidden;
}
.scn-ulysses-wonders-where-he-is .sky-1 {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffcc66 0%, #ffa500 50%, #d35400 100%);
  animation: uwh-sky 8s ease-in-out infinite alternate;
}
.scn-ulysses-wonders-where-he-is .sun-disk {
  position: absolute; top: 5%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,215,0,0.4);
  animation: uwh-sun 12s ease-in-out infinite;
}
.scn-ulysses-wonders-where-he-is .rocks-bg {
  position: absolute; bottom: 30%; left: -10%; right: -10%; height: 40%;
  background: linear-gradient(180deg, #8b4513 0%, #5c3317 50%, #3e220f 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: uwh-rocks 16s ease-in-out infinite alternate;
}
.scn-ulysses-wonders-where-he-is .tree-silhouette {
  position: absolute; bottom: 20%; left: 5%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  animation: uwh-tree 14s ease-in-out infinite;
}
.scn-ulysses-wonders-where-he-is .figure-profile {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a2e1b 0%, #2c1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: uwh-figure 6s ease-in-out infinite;
}
.scn-ulysses-wonders-where-he-is .shadow-streak {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 8px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 50%, transparent 100%);
  filter: blur(2px);
  animation: uwh-shadow 5s ease-in-out infinite;
}
.scn-ulysses-wonders-where-he-is .dust-particles {
  position: absolute; bottom: 28%; left: 40%; width: 4px; height: 4px;
  background: rgba(200,150,80,0.5);
  border-radius: 50%;
  box-shadow: 20px -10px 0 0 rgba(200,150,80,0.4), 40px 5px 0 0 rgba(200,150,80,0.3), 60px -15px 0 0 rgba(200,150,80,0.2);
  animation: uwh-dust 3s ease-in-out infinite;
}
@keyframes uwh-sky {
  0%,100% { opacity: 0.9; }
  50% { opacity: 0.7; }
}
@keyframes uwh-sun {
  0%,100% { transform: scale(1) translate(0,0); }
  50% { transform: scale(1.05) translate(5px,-5px); }
}
@keyframes uwh-rocks {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-5px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(0.98); }
}
@keyframes uwh-tree {
  0%,100% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.02); }
}
@keyframes uwh-figure {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-3px) rotate(-3deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(3deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); }
}
@keyframes uwh-shadow {
  0%,100% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.5); opacity: 0.5; }
}
@keyframes uwh-dust {
  0% { transform: translate(0,0); opacity: 0.5; }
  25% { transform: translate(10px,-5px); opacity: 0.7; }
  50% { transform: translate(20px,5px); opacity: 0.3; }
  75% { transform: translate(30px,-2px); opacity: 0.6; }
  100% { transform: translate(40px,0); opacity: 0.2; }
}

.scn-ulysses-emerges-naked {
  background: linear-gradient(180deg, #f4c430 0%, #e6a817 30%, #c87a00 60%, #8b5a00 100%), radial-gradient(ellipse at 50% 0%, #f4c430 0%, transparent 70%);
  overflow: hidden;
}
.scn-ulysses-emerges-naked .sky-2 {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f5d040 0%, #e6a817 50%, #c87a00 100%);
  animation: uen-sky 10s ease-in-out infinite alternate;
}
.scn-ulysses-emerges-naked .sun-rays {
  position: absolute; top: 0; left: 20%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.5) 0%, transparent 100%);
  filter: blur(10px);
  animation: uen-rays 3s ease-in-out infinite;
}
.scn-ulysses-emerges-naked .bush-dark {
  position: absolute; bottom: 25%; left: 30%; width: 100px; height: 70px;
  background: radial-gradient(ellipse at 50% 100%, #2d5a1e 0%, #1a3a0e 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: uen-bush 12s ease-in-out infinite;
}
.scn-ulysses-emerges-naked .figure-crouching {
  position: absolute; bottom: 22%; left: 45%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5c3a1a 0%, #2c1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: uen-crouch 4s ease-in-out infinite;
}
.scn-ulysses-emerges-naked .leaf-bough {
  position: absolute; bottom: 35%; left: 42%; width: 60px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #6b8e23 0%, #3a5a1a 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(30deg);
  animation: uen-bough 7s ease-in-out infinite;
}
.scn-ulysses-emerges-naked .ground-flash {
  position: absolute; bottom: 18%; left: 35%; width: 80px; height: 10px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,200,100,0.4) 50%, transparent 100%);
  filter: blur(4px);
  animation: uen-flash 2s ease-in-out infinite;
}
.scn-ulysses-emerges-naked .eye-glint {
  position: absolute; bottom: 42%; left: 47%; width: 6px; height: 6px;
  background: white;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,255,200,0.8);
  animation: uen-glint 1s ease-in-out infinite;
}
@keyframes uen-sky {
  0%,100% { opacity: 0.9; }
  50% { opacity: 0.8; }
}
@keyframes uen-rays {
  0% { transform: translateX(-10px) scaleY(0.8); opacity: 0.4; }
  50% { transform: translateX(10px) scaleY(1.2); opacity: 0.7; }
  100% { transform: translateX(0) scaleY(1); opacity: 0.5; }
}
@keyframes uen-bush {
  0%,100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.03) rotate(2deg); }
}
@keyframes uen-crouch {
  0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-4px) rotate(-4deg) scaleY(1.05); }
  50% { transform: translateX(-50%) translateY(0) rotate(4deg) scaleY(0.95); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(-2deg) scaleY(1.02); }
}
@keyframes uen-bough {
  0%,100% { transform: rotate(30deg) scale(1); }
  50% { transform: rotate(35deg) scale(1.1); }
}
@keyframes uen-flash {
  0%,100% { opacity: 0; }
  50% { opacity: 0.6; }
}
@keyframes uen-glint {
  0%,100% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.3); opacity: 1; }
}

.scn-ulysses-addresses-nausicaa {
  background: linear-gradient(180deg, #fedcba 0%, #f5cba7 30%, #e8b08a 60%, #d4956a 100%), radial-gradient(ellipse at 50% 100%, #fedcba 0%, transparent 70%);
  overflow: hidden;
}
.scn-ulysses-addresses-nausicaa .sky-warm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffdab9 0%, #f5cba7 50%, #e0a06a 100%);
  animation: uan-sky 12s ease-in-out infinite alternate;
}
.scn-ulysses-addresses-nausicaa .golden-haze {
  position: absolute; top: 20%; left: 10%; right: 10%; bottom: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,150,0.2) 0%, transparent 70%);
  filter: blur(15px);
  animation: uan-haze 8s ease-in-out infinite;
}
.scn-ulysses-addresses-nausicaa .nausicaa-silhouette {
  position: absolute; bottom: 30%; left: 55%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #a06040 0%, #6a3a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: uan-nausicaa 10s ease-in-out infinite;
}
.scn-ulysses-addresses-nausicaa .ulysses-kneeling {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5c3a1a 0%, #2c1a0a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  transform: translateX(-50%);
  animation: uan-ulysses 6s ease-in-out infinite;
}
.scn-ulysses-addresses-nausicaa .gesturing-hand {
  position: absolute; bottom: 55%; left: 40%; width: 12px; height: 18px;
  background: #4a2e1b;
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: uan-hand 3s ease-in-out infinite;
}
.scn-ulysses-addresses-nausicaa .flower-at-feet {
  position: absolute; bottom: 22%; left: 45%; width: 10px; height: 10px;
  background: radial-gradient(circle at 50% 50%, #ffb6c1 0%, #d87093 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,182,193,0.5);
  animation: uan-flower 5s ease-in-out infinite;
}
.scn-ulysses-addresses-nausicaa .light-sparkles {
  position: absolute; top: 10%; left: 30%; width: 4px; height: 4px;
  background: white;
  border-radius: 50%;
  box-shadow: 30px 20px 0 0 rgba(255,255,200,0.6), 60px -10px 0 0 rgba(255,255,200,0.4), 100px 30px 0 0 rgba(255,255,200,0.3);
  animation: uan-sparkles 4s ease-in-out infinite;
}
@keyframes uan-sky {
  0%,100% { opacity: 0.9; }
  50% { opacity: 1; }
}
@keyframes uan-haze {
  0% { transform: scale(1) translateX(0); opacity: 0.4; }
  50% { transform: scale(1.1) translateX(10px); opacity: 0.6; }
  100% { transform: scale(0.95) translateX(-5px); opacity: 0.5; }
}
@keyframes uan-nausicaa {
  0%,100% { transform: translateX(-50%) rotate(0deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); }
}
@keyframes uan-ulysses {
  0%,100% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  25% { transform: translateX(-50%) rotate(-3deg) translateY(-2px); }
  50% { transform: translateX(-50%) rotate(3deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(-1deg) translateY(-1px); }
}
@keyframes uan-hand {
  0%,100% { transform: rotate(-20deg) scale(1); }
  50% { transform: rotate(-10deg) scale(1.2); }
}
@keyframes uan-flower {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.1); }
}
@keyframes uan-sparkles {
  0% { opacity: 0; transform: translate(0,0); }
  25% { opacity: 0.8; transform: translate(15px,-10px); }
  50% { opacity: 0; transform: translate(30px,0); }
  75% { opacity: 0.6; transform: translate(45px,-15px); }
  100% { opacity: 0; transform: translate(60px,-5px); }
}

.scn-ulysses-travels-to-laertes {
  background:
    linear-gradient(180deg, #7fb2d4 0%, #c6d8e8 30%, #f0e4c4 60%, #d4b88a 100%),
    radial-gradient(ellipse at 50% 100%, #e3cfa0 0%, transparent 60%);
}
.scn-ulysses-travels-to-laertes .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #9ac0d6 0%, transparent 100%);
  animation: ul-tl-sky 12s ease-in-out infinite alternate;
}
.scn-ulysses-travels-to-laertes .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5b7a4e 0%, #3a5a2e 100%);
  border-radius: 40% 50% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,.3);
  animation: ul-tl-hills 18s ease-in-out infinite alternate;
}
.scn-ulysses-travels-to-laertes .fields {
  position: absolute; bottom: 22%; left: 10%; right: 10%; height: 18%;
  background: repeating-linear-gradient(90deg, #8bb36e 0px, #6d924a 8px, #8bb36e 16px);
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 0% 100%);
  opacity: 0.7;
  animation: ul-tl-fields 25s linear infinite;
}
.scn-ulysses-travels-to-laertes .house {
  position: absolute; bottom: 24%; left: 35%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #b98a5a 0%, #7a5a3a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
  animation: ul-tl-house 9s ease-in-out infinite;
}
.scn-ulysses-travels-to-laertes .tree {
  position: absolute; bottom: 20%; left: 60%; width: 50px; height: 90px;
  background: radial-gradient(ellipse at 50% 0%, #3a6a2e 0%, #1a3a1a 90%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  animation: ul-tl-tree 7s ease-in-out infinite alternate;
}
.scn-ulysses-travels-to-laertes .path {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 8px;
  background: linear-gradient(90deg, transparent, #b8986e 20%, #9a7a56 50%, #b8986e 80%, transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: ul-tl-path 20s ease-in-out infinite;
}
.scn-ulysses-travels-to-laertes .figure {
  position: absolute; bottom: 17%; left: 42%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ul-tl-figure 8s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-ulysses-travels-to-laertes .cloud-a {
  position: absolute; top: 10%; left: 15%; width: 100px; height: 22px;
  background: linear-gradient(180deg, rgba(255,255,240,.6) 0%, rgba(255,255,240,.1) 100%);
  border-radius: 50%; filter: blur(7px);
  animation: ul-tl-drift 40s linear infinite;
}
.scn-ulysses-travels-to-laertes .cloud-b {
  position: absolute; top: 18%; right: 20%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,240,.5) 0%, rgba(255,255,240,.05) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: ul-tl-drift 55s linear infinite reverse;
  animation-delay: -15s;
}
@keyframes ul-tl-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ul-tl-hills { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes ul-tl-fields { 0% { background-position: 0 0 } 100% { background-position: 100px 0 } }
@keyframes ul-tl-house { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-2px) translateY(-2px) } }
@keyframes ul-tl-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes ul-tl-path { 0%,100% { opacity: 0.5; transform: scaleX(1) } 50% { opacity: 0.8; transform: scaleX(1.05) } }
@keyframes ul-tl-figure { 0% { transform: translateX(0) rotate(-2deg) } 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 ul-tl-drift { 0% { transform: translateX(-40px) } 100% { transform: translateX(130vw) } }

.scn-ulysses-approaches-laertes {
  background:
    linear-gradient(180deg, #c4d6b0 0%, #dce8c8 35%, #e8d8a0 70%, #c8a86a 100%),
    radial-gradient(ellipse at 30% 100%, #d4c08a 0%, transparent 50%);
}
.scn-ulysses-approaches-laertes .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #aac0a0 0%, transparent 100%);
  animation: ul-al-sky 14s ease-in-out infinite alternate;
}
.scn-ulysses-approaches-laertes .vineyard-bg {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: repeating-linear-gradient(0deg, #5a7a3e 0px, #4a6a2e 20px, #5a7a3e 40px);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 0% 100%);
  opacity: 0.6;
}
.scn-ulysses-approaches-laertes .vine-row {
  position: absolute; bottom: 25%; height: 50px; border-radius: 30% 30% 0 0;
  background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: ul-al-vine 6s ease-in-out infinite alternate;
}
.scn-ulysses-approaches-laertes .vine-1 { left: 10%; width: 12%; animation-delay: -2s; }
.scn-ulysses-approaches-laertes .vine-2 { left: 40%; width: 10%; animation-delay: 0s; }
.scn-ulysses-approaches-laertes .vine-3 { left: 65%; width: 14%; animation-delay: -4s; }
.scn-ulysses-approaches-laertes .figure-ulysses {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ul-al-walk 6s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-ulysses-approaches-laertes .armour-pile {
  position: absolute; bottom: 12%; left: 12%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #7a7a5a 0%, #4a4a3a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 3px 6px rgba(0,0,0,.4);
}
.scn-ulysses-approaches-laertes .servant {
  position: absolute; bottom: 18%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ul-al-servant 10s ease-in-out infinite;
}
.scn-ulysses-approaches-laertes .servant-1 { left: 55%; animation-delay: -3s; }
.scn-ulysses-approaches-laertes .servant-2 { left: 70%; animation-delay: -7s; }
@keyframes ul-al-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ul-al-vine { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.08) } 100% { transform: scaleY(1) } }
@keyframes ul-al-walk { 0% { transform: translateX(0) rotate(-1deg) } 20% { transform: translateX(8px) rotate(0) } 40% { transform: translateX(16px) rotate(1deg) } 60% { transform: translateX(24px) rotate(0) } 80% { transform: translateX(32px) rotate(-1deg) } 100% { transform: translateX(40px) rotate(0) } }
@keyframes ul-al-servant { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

.scn-laertes-appearance {
  background:
    linear-gradient(180deg, #8a7a5a 0%, #c8b898 40%, #d4c49e 70%, #e8d8b0 100%),
    radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 60%);
  filter: brightness(0.85) saturate(0.6);
}
.scn-laertes-appearance .sun {
  position: absolute; top: 5%; right: 10%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffe8b0 0%, #f0c880 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,200,128,0.4);
  animation: la-ap-sun 20s ease-in-out infinite alternate;
}
.scn-laertes-appearance .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 20%, 100% 0%, 100% 100%, 0% 100%);
}
.scn-laertes-appearance .figure-laertes {
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform: rotate(15deg) scale(0.95);
  animation: la-ap-figure 8s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-laertes-appearance .staff {
  position: absolute; bottom: 12%; left: 38%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  animation: la-ap-staff 7s ease-in-out infinite alternate;
}
.scn-laertes-appearance .tattered-cloak {
  position: absolute; bottom: 18%; left: 42%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, #3a2a1a 70%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 40% 40%;
  filter: blur(2px);
  animation: la-ap-cloak 6s ease-in-out infinite alternate;
}
.scn-laertes-appearance .shadow-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.5) 0%, transparent 50%, rgba(0,0,0,0.3) 100%);
  pointer-events: none;
  animation: la-ap-shadow 12s ease-in-out infinite alternate;
}
.scn-laertes-appearance .dust {
  position: absolute; bottom: 10%; left: 50%; width: 100%; height: 30px;
  background: radial-gradient(circle at 50% 50%, rgba(200,180,140,0.6) 0%, transparent 100%);
  filter: blur(10px);
  animation: la-ap-dust 20s ease-in-out infinite;
}
@keyframes la-ap-sun { 0% { opacity: 0.8; transform: scale(1) } 50% { opacity: 0.9; transform: scale(1.03) } 100% { opacity: 0.7; transform: scale(0.98) } }
@keyframes la-ap-figure { 0% { transform: rotate(12deg) translateX(0) } 50% { transform: rotate(16deg) translateX(-2px) } 100% { transform: rotate(12deg) translateX(0) } }
@keyframes la-ap-staff { 0% { transform: rotate(-6deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-6deg) } }
@keyframes la-ap-cloak { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }
@keyframes la-ap-shadow { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes la-ap-dust { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }

.scn-ulysses-crafty-question {
  background:
    linear-gradient(180deg, #c4b080 0%, #dcc8a0 40%, #e4d0a8 70%, #d4b888 100%),
    radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 50%);
}
.scn-ulysses-crafty-question .earth {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-ulysses-crafty-question .plant {
  position: absolute; bottom: 25%; left: 48%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #4a7a2a 0%, #2a5a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: ul-cq-plant 5s ease-in-out infinite alternate;
}
.scn-ulysses-crafty-question .laertes-figure {
  position: absolute; bottom: 18%; left: 30%; width: 28px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform: rotate(10deg);
  animation: ul-cq-laertes 6s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-ulysses-crafty-question .ulysses-figure {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ul-cq-ulysses 7s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-ulysses-crafty-question .olive-branch {
  position: absolute; bottom: 35%; left: 60%; width: 30px; height: 10px;
  background: linear-gradient(90deg, #3a5a2a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: rotate(-30deg);
  animation: ul-cq-branch 8s ease-in-out infinite alternate;
}
.scn-ulysses-crafty-question .sunbeams {
  position: absolute; top: 0; left: 20%; width: 200px; height: 100%;
  background: linear-gradient(180deg, rgba(255,220,150,0.3) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  filter: blur(5px);
  animation: ul-cq-beams 15s ease-in-out infinite alternate;
}
.scn-ulysses-crafty-question .leaf {
  position: absolute; bottom: 30%; left: 52%; width: 12px; height: 6px;
  background: #5a8a3a;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: rotate(-40deg);
  animation: ul-cq-leaf 4s ease-in-out infinite alternate;
}
.scn-ulysses-crafty-question .stone {
  position: absolute; bottom: 10%; left: 45%; width: 20px; height: 12px;
  background: #7a6a5a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.3);
}
@keyframes ul-cq-plant { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(1) } }
@keyframes ul-cq-laertes { 0% { transform: rotate(8deg) translateX(0) } 50% { transform: rotate(12deg) translateX(-2px) } 100% { transform: rotate(8deg) translateX(0) } }
@keyframes ul-cq-ulysses { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ul-cq-branch { 0% { transform: rotate(-28deg) } 50% { transform: rotate(-32deg) } 100% { transform: rotate(-28deg) } }
@keyframes ul-cq-beams { 0% { opacity: 0.4; transform: skewX(-5deg) } 50% { opacity: 0.7; transform: skewX(0deg) } 100% { opacity: 0.5; transform: skewX(5deg) } }
@keyframes ul-cq-leaf { 0% { transform: rotate(-35deg) } 50% { transform: rotate(-45deg) } 100% { transform: rotate(-35deg) } }

.scn-laertes-armes { background: linear-gradient(180deg, #c8b89a 0%, #a0886a 40%, #7a6040 100%), radial-gradient(ellipse at 60% 30%, #eeddbb 0%, transparent 60%); }
.scn-laertes-armes .wall-back  { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(135deg, #d4c4a4 0%, #b09878 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.15); }
.scn-laertes-armes .wall-side { position:absolute; top:0; left:0; bottom:30%; width:35%; background: linear-gradient(180deg, #c8b090 0%, #a08868 100%); box-shadow: 4px 0 20px rgba(0,0,0,.2); }
.scn-laertes-armes .floor      { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.3); }
.scn-laertes-armes .door-frame{ position:absolute; top:5%; left:45%; width:30%; height:65%; background: #5a4020; border-radius:4% 4% 2% 2%; box-shadow: 0 0 24px rgba(0,0,0,.4); }
.scn-laertes-armes .door-open { position:absolute; top:5%; left:60%; width:15%; height:65%; background: #f0e8d8; transform:skewY(2deg); transform-origin:left center; box-shadow: inset 0 0 30px #fff8e0, 4px 0 16px rgba(0,0,0,.2); border-radius:0 4% 4% 0; }
.scn-laertes-armes .figure-silhouette { position:absolute; top:8%; left:58%; width:14%; height:60%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: -6px 0 20px rgba(0,0,0,.3); animation: la-walk 4s ease-in-out infinite alternate; }
.scn-laertes-armes .table     { position:absolute; bottom:18%; left:10%; width:28%; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%); border-radius:8%; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.scn-laertes-armes .sunbeam   { position:absolute; top:2%; left:55%; width:25%; height:50%; background: linear-gradient(180deg, rgba(255,240,200,.35) 0%, rgba(255,240,200,.05) 100%); filter: blur(4px); transform:rotate(12deg); animation: la-beam 6s ease-in-out infinite alternate; }
.scn-laertes-armes .spear-rack{ position:absolute; top:12%; right:8%; width:4%; height:40%; background: linear-gradient(180deg, #8a7040 0%, #5a4020 100%); border-radius:10%; box-shadow: 0 0 12px rgba(0,0,0,.3); }
@keyframes la-walk { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes la-beam { 0% { opacity: .6; transform: rotate(10deg) scaleX(1); } 50% { opacity: 1; transform: rotate(14deg) scaleX(1.05); } 100% { opacity: .7; transform: rotate(11deg) scaleX(.95); } }

.scn-armed-band-prepares { background: linear-gradient(180deg, #a0c0d8 0%, #f0e8c8 30%, #d0b890 60%, #8a7050 100%), radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 50%); }
.scn-armed-band-prepares .sky-bright    { position:absolute; top:0; left:0; right:0; bottom:35%; background: linear-gradient(180deg, #7ab0d0 0%, #c0d8e0 60%, #e8dcb8 100%); animation: ar-sky 20s ease-in-out infinite alternate; }
.scn-armed-band-prepares .ground-dusty  { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b89870 0%, #8a6840 100%); border-radius:60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.2); }
.scn-armed-band-prepares .gate-arch     { position:absolute; bottom:15%; left:30%; width:40%; height:60%; background: linear-gradient(180deg, #7a6030 0%, #5a4020 100%); border-radius:30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 0 30px rgba(0,0,0,.3); }
.scn-armed-band-prepares .gate-open     { position:absolute; bottom:15%; left:42%; width:16%; height:55%; background: linear-gradient(180deg, #e0d8c0 0%, #c0b090 100%); border-radius:0 10% 10% 0; box-shadow: inset 0 0 20px #fff8e0, -4px 0 16px rgba(0,0,0,.15); transform:skewY(-3deg); transform-origin:left; }
.scn-armed-band-prepares .figure-armor-a{ position:absolute; bottom:10%; left:15%; width:12%; height:40%; background: linear-gradient(180deg, #c8b088 0%, #a08860 50%, #705030 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: ar-armor 3s ease-in-out infinite; }
.scn-armed-band-prepares .figure-armor-b{ position:absolute; bottom:12%; left:55%; width:14%; height:38%; background: linear-gradient(180deg, #d0b890 0%, #b09870 50%, #705030 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: ar-armor 4s ease-in-out infinite .5s; }
.scn-armed-band-prepares .figure-armor-c{ position:absolute; bottom:14%; left:72%; width:10%; height:36%; background: linear-gradient(180deg, #b8a080 0%, #907050 50%, #604030 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: ar-armor 3.5s ease-in-out infinite 1s; }
.scn-armed-band-prepares .spear-glint-a { position:absolute; bottom:45%; left:18%; width:2%; height:25%; background: linear-gradient(180deg, #fff8e0 0%, #c8b070 50%, #705020 100%); border-radius:20%; box-shadow: 0 0 8px 2px rgba(255,248,224,.6); animation: ar-glint 2s ease-in-out infinite; }
.scn-armed-band-prepares .spear-glint-b { position:absolute; bottom:48%; left:58%; width:2%; height:22%; background: linear-gradient(180deg, #fff8e0 0%, #c8b070 50%, #705020 100%); border-radius:20%; box-shadow: 0 0 8px 2px rgba(255,248,224,.6); animation: ar-glint 2.5s ease-in-out infinite .3s; }
@keyframes ar-sky   { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes ar-armor { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ar-glint { 0% { opacity: .3; transform: rotate(0); } 50% { opacity: 1; transform: rotate(5deg); } 100% { opacity: .4; transform: rotate(2deg); } }

.scn-telemachus-pledges-valour { background: linear-gradient(180deg, #d4bc94 0%, #b89c74 40%, #9a7c54 100%), radial-gradient(ellipse at 70% 40%, #f0d8b0 0%, transparent 50%); }
.scn-telemachus-pledges-valour .bg-warm       { position:absolute; top:0; left:0; right:0; bottom:25%; background: linear-gradient(135deg, #dcc8a8 0%, #b8a080 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.1); }
.scn-telemachus-pledges-valour .floor-tiles   { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #a08868 0%, #7a6040 100%); border-radius:30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.2); }
.scn-telemachus-pledges-valour .laertes-profile   { position:absolute; bottom:18%; left:25%; width:16%; height:48%; background: linear-gradient(180deg, #9a7c5c 0%, #7a5c3c 100%); border-radius: 40% 30% 20% 30% / 50% 40% 30% 40%; box-shadow: 0 0 20px rgba(0,0,0,.2); animation: te-profile 6s ease-in-out infinite alternate; }
.scn-telemachus-pledges-valour .telemachus-profile{ position:absolute; bottom:20%; left:48%; width:14%; height:46%; background: linear-gradient(180deg, #b09068 0%, #8a6c44 100%); border-radius: 30% 40% 30% 20% / 40% 50% 40% 30%; box-shadow: 0 0 20px rgba(0,0,0,.2); animation: te-profile 6s ease-in-out infinite alternate-reverse; }
.scn-telemachus-pledges-valour .arms-clasp    { position:absolute; bottom:30%; left:36%; width:18%; height:14%; background: linear-gradient(180deg, #c8a878 0%, #a88858 100%); border-radius:30% 30% 40% 40% / 40% 40% 30% 30%; box-shadow: 0 0 16px rgba(0,0,0,.15); animation: te-clasp 4s ease-in-out infinite; }
.scn-telemachus-pledges-valour .hearth-glow   { position:absolute; bottom:0; left:40%; width:20%; height:15%; background: radial-gradient(ellipse at 50% 100%, #f09040 0%, #d06020 40%, transparent 70%); animation: te-hearth 5s ease-in-out infinite alternate; }
.scn-telemachus-pledges-valour .light-rays    { position:absolute; top:2%; left:30%; width:40%; height:50%; background: linear-gradient(180deg, rgba(240,220,180,.25) 0%, rgba(240,220,180,.05) 100%); filter: blur(6px); transform:rotate(-8deg); animation: te-rays 8s ease-in-out infinite alternate; }
.scn-telemachus-pledges-valour .column-left   { position:absolute; top:0; left:10%; width:6%; height:75%; background: linear-gradient(180deg, #b09878 0%, #8a7050 100%); border-radius:10%; box-shadow: 0 0 20px rgba(0,0,0,.15); }
.scn-telemachus-pledges-valour .column-right  { position:absolute; top:0; right:10%; width:6%; height:75%; background: linear-gradient(180deg, #b09878 0%, #8a7050 100%); border-radius:10%; box-shadow: 0 0 20px rgba(0,0,0,.15); }
@keyframes te-profile { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes te-clasp   { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.03) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes te-hearth  { 0% { opacity: .7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: .8; transform: scaleY(.95); } }
@keyframes te-rays    { 0% { opacity: .5; transform: rotate(-10deg) scaleX(1); } 50% { opacity: .8; transform: rotate(-6deg) scaleX(1.05); } 100% { opacity: .6; transform: rotate(-9deg) scaleX(.95); } }

.scn-minerva-encourages-laertes { background: linear-gradient(180deg, #8ab8d8 0%, #c8e0e8 30%, #f0e8c8 60%, #c8b090 100%), radial-gradient(ellipse at 40% 30%, #fff8e8 0%, transparent 50%); }
.scn-minerva-encourages-laertes .sky-radiant   { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #6aa8c8 0%, #b8d8e0 60%, #e8dcb8 100%); animation: mi-sky 18s ease-in-out infinite alternate; }
.scn-minerva-encourages-laertes .ground-path   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b89868 0%, #8a6840 100%); border-radius:40% 60% 0 0 / 25% 35% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.15); }
.scn-minerva-encourages-laertes .minerva-figure{ position:absolute; bottom:18%; left:25%; width:18%; height:50%; background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 50%, #b8a088 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 0 40px rgba(240,232,216,.6), 0 0 80px rgba(240,232,216,.3); animation: mi-minerva 6s ease-in-out infinite alternate; }
.scn-minerva-encourages-laertes .laertes-figure{ position:absolute; bottom:20%; left:50%; width:16%; height:46%; background: linear-gradient(180deg, #9a7c5c 0%, #7a5c3c 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 4px 16px rgba(0,0,0,.2); animation: mi-laertes 4s ease-in-out infinite; }
.scn-minerva-encourages-laertes .spear-vertical{ position:absolute; bottom:45%; left:52%; width:2%; height:35%; background: linear-gradient(180deg, #c8b070 0%, #8a6840 50%, #5a4020 100%); border-radius:20%; box-shadow: 0 0 8px rgba(0,0,0,.2); transform:rotate(-6deg); animation: mi-spear 4s ease-in-out infinite alternate; }
.scn-minerva-encourages-laertes .radiant-halo  { position:absolute; top:6%; left:22%; width:24%; height:40%; background: radial-gradient(ellipse at 50% 50%, rgba(255,248,224,.3) 0%, rgba(255,248,224,.1) 40%, transparent 70%); filter: blur(10px); animation: mi-halo 5s ease-in-out infinite alternate; }
.scn-minerva-encourages-laertes .cloud-swirl   { position:absolute; top:10%; left:60%; width:28%; height:18%; background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(8px); animation: mi-swirl 30s linear infinite; }
.scn-minerva-encourages-laertes .dust-motes    { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(circle at 30% 40%, rgba(255,240,200,.12) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(255,240,200,.08) 0%, transparent 40%); animation: mi-motes 8s ease-in-out infinite alternate; }
@keyframes mi-sky     { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes mi-minerva { 0% { transform: translateY(0) rotate(-1deg); box-shadow: 0 0 30px rgba(240,232,216,.4), 0 0 60px rgba(240,232,216,.2); } 50% { transform: translateY(-3px) rotate(1deg); box-shadow: 0 0 50px rgba(240,232,216,.6), 0 0 100px rgba(240,232,216,.3); } 100% { transform: translateY(0) rotate(0); box-shadow: 0 0 35px rgba(240,232,216,.4), 0 0 70px rgba(240,232,216,.2); } }
@keyframes mi-laertes  { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mi-spear    { 0% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-4deg) translateX(2px); } 100% { transform: rotate(-6deg) translateX(0); } }
@keyframes mi-halo     { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .7; transform: scale(.98); } }
@keyframes mi-swirl    { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(20px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes mi-motes    { 0% { opacity: .5; transform: translateY(0); } 50% { opacity: .8; transform: translateY(-4px); } 100% { opacity: .6; transform: translateY(2px); } }

.scn-voyage-to-cimmerians {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #10102e 40%, #1a1a3a 70%, #0e0e28 100%),
    radial-gradient(ellipse at 50% 80%, #1a1a4a 0%, transparent 60%);
}
.scn-voyage-to-cimmerians .deep-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #141434 0%, #0a0a1a 100%);
  animation: vtc-sky 12s ease-in-out infinite alternate;
}
.scn-voyage-to-cimmerians .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #0c0c2a 0%, #060618 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-voyage-to-cimmerians .ship {
  position: absolute; bottom: 32%; left: 25%;
  width: 120px; height: 40px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  transform-origin: center bottom;
  animation: vtc-ship 6s ease-in-out infinite;
}
.scn-voyage-to-cimmerians .mast {
  position: absolute; bottom: 44%; left: 30%;
  width: 4px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: vtc-mast 6s ease-in-out infinite;
}
.scn-voyage-to-cimmerians .sail-1 {
  position: absolute; bottom: 52%; left: 28%;
  width: 50px; height: 40px;
  background: linear-gradient(135deg, #3a3a46 0%, #1a1a26 100%);
  border-radius: 40% 20% 10% 30% / 30% 40% 20% 30%;
  transform: rotate(-5deg);
  animation: vtc-sail 8s ease-in-out infinite alternate;
}
.scn-voyage-to-cimmerians .sail-2 {
  position: absolute; bottom: 54%; left: 34%;
  width: 40px; height: 30px;
  background: linear-gradient(225deg, #2a2a36 0%, #12121e 100%);
  border-radius: 20% 40% 30% 10% / 40% 30% 30% 20%;
  transform: rotate(3deg);
  animation: vtc-sail2 8s ease-in-out infinite alternate;
}
.scn-voyage-to-cimmerians .rower {
  position: absolute; bottom: 30%; left: 18%;
  width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vtc-row 4s ease-in-out infinite;
}
.scn-voyage-to-cimmerians .wave-1 {
  position: absolute; bottom: 15%; left: 10%; right: 0; height: 20px;
  background: radial-gradient(ellipse at 30% 50%, rgba(20,20,60,0.6), transparent);
  filter: blur(4px);
  animation: vtc-wave1 10s ease-in-out infinite;
}
.scn-voyage-to-cimmerians .wave-2 {
  position: absolute; bottom: 10%; left: 0; right: 20%; height: 15px;
  background: radial-gradient(ellipse at 70% 50%, rgba(20,20,60,0.4), transparent);
  filter: blur(3px);
  animation: vtc-wave2 14s ease-in-out infinite reverse;
}
@keyframes vtc-sky {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.02); }
  100% { opacity: 0.5; transform: scaleY(0.98); }
}
@keyframes vtc-ship {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-1.5deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  75% { transform: translateY(-4px) rotate(1.5deg); }
}
@keyframes vtc-mast {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
}
@keyframes vtc-sail {
  0% { transform: rotate(-5deg) scaleX(1); }
  50% { transform: rotate(-8deg) scaleX(0.9); }
  100% { transform: rotate(-5deg) scaleX(1); }
}
@keyframes vtc-sail2 {
  0% { transform: rotate(3deg) scaleX(1); }
  50% { transform: rotate(6deg) scaleX(0.85); }
  100% { transform: rotate(3deg) scaleX(1); }
}
@keyframes vtc-row {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(3deg); }
}
@keyframes vtc-wave1 {
  0% { transform: translateX(0) scaleY(1); opacity: 0.4; }
  50% { transform: translateX(-30px) scaleY(1.3); opacity: 0.8; }
  100% { transform: translateX(20px) scaleY(1); opacity: 0.5; }
}
@keyframes vtc-wave2 {
  0% { transform: translateX(0) scaleY(1); opacity: 0.3; }
  50% { transform: translateX(40px) scaleY(1.2); opacity: 0.7; }
  100% { transform: translateX(-20px) scaleY(1); opacity: 0.4; }
}

.scn-necromancy-rites {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #14142a 40%, #0e0e1e 100%),
    radial-gradient(ellipse at 50% 60%, #1a1a30 0%, transparent 70%);
}
.scn-necromancy-rites .earth {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 30% 70% 0 0 / 10% 50% 0 0;
}
.scn-necromancy-rites .trench {
  position: absolute; bottom: 25%; left: 35%; width: 120px; height: 40px;
  background: #06060f;
  border-radius: 10% 10% 50% 50% / 10% 10% 30% 30%;
  box-shadow: inset 0 -10px 15px rgba(0,0,0,0.8);
}
.scn-necromancy-rites .blood-pool {
  position: absolute; bottom: 22%; left: 40%; width: 80px; height: 18px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #2a0a0c 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ncr-blood 9s ease-in-out infinite;
}
.scn-necromancy-rites .vapor-1 {
  position: absolute; bottom: 35%; left: 38%; width: 60px; height: 80px;
  background: radial-gradient(ellipse, rgba(120,100,180,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: ncr-vapor1 12s ease-in-out infinite alternate;
}
.scn-necromancy-rites .vapor-2 {
  position: absolute; bottom: 30%; left: 52%; width: 50px; height: 70px;
  background: radial-gradient(ellipse, rgba(100,80,160,0.2) 0%, transparent 70%);
  filter: blur(6px);
  animation: ncr-vapor2 15s ease-in-out infinite alternate;
}
.scn-necromancy-rites .figure-odysseus {
  position: absolute; bottom: 22%; left: 48%;
  width: 22px; height: 64px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ncr-odysseus 8s ease-in-out infinite;
}
.scn-necromancy-rites .flame-small {
  position: absolute; bottom: 36%; left: 30%;
  width: 12px; height: 24px;
  background: radial-gradient(ellipse at 50% 80%, #a0461a 0%, #703010 50%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(3px);
  animation: ncr-flame1 2s ease-in-out infinite alternate;
}
.scn-necromancy-rites .flame-medium {
  position: absolute; bottom: 34%; left: 55%;
  width: 16px; height: 32px;
  background: radial-gradient(ellipse at 50% 80%, #b85828 0%, #804020 50%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(4px);
  animation: ncr-flame2 2.5s ease-in-out infinite alternate;
}
@keyframes ncr-blood {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: scaleX(1.1) scaleY(1.2); opacity: 0.9; }
  100% { transform: scaleX(0.95) scaleY(0.95); opacity: 0.7; }
}
@keyframes ncr-vapor1 {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-20px) scale(1.3); opacity: 0.6; }
  100% { transform: translateY(-10px) scale(1); opacity: 0.4; }
}
@keyframes ncr-vapor2 {
  0% { transform: translateY(0) scale(1); opacity: 0.2; }
  50% { transform: translateY(-15px) scale(1.2); opacity: 0.5; }
  100% { transform: translateY(-8px) scale(0.9); opacity: 0.3; }
}
@keyframes ncr-odysseus {
  0%,100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(3deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(-4px); }
  75% { transform: rotate(-3deg) translateY(-1px); }
}
@keyframes ncr-flame1 {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.8; }
  50% { transform: scaleY(1.3) scaleX(0.8); opacity: 1; }
  100% { transform: scaleY(1) scaleX(1.1); opacity: 0.7; }
}
@keyframes ncr-flame2 {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.7; }
  50% { transform: scaleY(1.4) scaleX(0.7); opacity: 1; }
  100% { transform: scaleY(0.9) scaleX(1.2); opacity: 0.8; }
}

.scn-elpenor-ghost {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #12122a 50%, #08081a 100%),
    radial-gradient(ellipse at 30% 40%, #1a1a3a 0%, transparent 70%);
}
.scn-elpenor-ghost .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0c0c24 0%, #060614 100%);
  animation: elp-sky 15s ease-in-out infinite alternate;
}
.scn-elpenor-ghost .trench-ground {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #14142a 0%, #0a0a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-elpenor-ghost .trench-shadow {
  position: absolute; bottom: 18%; left: 30%; width: 140px; height: 20px;
  background: #04040c;
  border-radius: 50%;
  box-shadow: inset 0 8px 10px rgba(0,0,0,0.6);
}
.scn-elpenor-ghost .blood-liquid {
  position: absolute; bottom: 16%; left: 35%; width: 100px; height: 12px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #2a0a0c 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: elp-blood 7s ease-in-out infinite;
}
.scn-elpenor-ghost .ghost-elpenor {
  position: absolute; bottom: 30%; left: 38%;
  width: 24px; height: 70px;
  background: linear-gradient(180deg, rgba(180,180,220,0.4) 0%, rgba(100,100,160,0.2) 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  filter: blur(1px);
  animation: elp-ghost 8s ease-in-out infinite;
}
.scn-elpenor-ghost .ghost-glow {
  position: absolute; bottom: 28%; left: 36%; width: 60px; height: 80px;
  background: radial-gradient(ellipse, rgba(180,180,255,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: elp-glow 5s ease-in-out infinite alternate;
}
.scn-elpenor-ghost .sword-blade {
  position: absolute; bottom: 15%; left: 52%;
  width: 4px; height: 30px;
  background: linear-gradient(180deg, #a0a0c0 0%, #606080 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: elp-sword 4s ease-in-out infinite;
}
.scn-elpenor-ghost .figure-kneeling {
  position: absolute; bottom: 12%; left: 48%;
  width: 20px; height: 36px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: elp-kneel 6s ease-in-out infinite;
}
@keyframes elp-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}
@keyframes elp-blood {
  0% { transform: scaleX(1) translateY(0); opacity: 0.5; }
  50% { transform: scaleX(1.1) translateY(-2px); opacity: 0.8; }
  100% { transform: scaleX(0.95) translateY(0); opacity: 0.6; }
}
@keyframes elp-ghost {
  0%,100% { transform: translateY(0) rotate(0deg) scale(1); opacity: 0.6; }
  25% { transform: translateY(-5px) rotate(2deg) scale(1.05); opacity: 0.8; }
  50% { transform: translateY(-8px) rotate(-1deg) scale(1.1); opacity: 0.9; }
  75% { transform: translateY(-3px) rotate(1deg) scale(1.02); opacity: 0.7; }
}
@keyframes elp-glow {
  0% { transform: scale(1); opacity: 0.2; }
  50% { transform: scale(1.3); opacity: 0.5; }
  100% { transform: scale(0.9); opacity: 0.3; }
}
@keyframes elp-sword {
  0%,100% { transform: rotate(15deg); }
  50% { transform: rotate(20deg) translateY(-4px); }
}
@keyframes elp-kneel {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}

.scn-mother-ghost {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #10102a 50%, #08081a 100%),
    radial-gradient(ellipse at 70% 40%, #1a1a3a 0%, transparent 70%);
}
.scn-mother-ghost .deep-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0e22 0%, #060614 100%);
  animation: mth-bg 20s ease-in-out infinite alternate;
}
.scn-mother-ghost .ritual-pit {
  position: absolute; bottom: 10%; left: 40%; width: 80px; height: 30px;
  background: #04040c;
  border-radius: 30% 30% 50% 50% / 20% 20% 40% 40%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.8);
}
.scn-mother-ghost .blood-stream {
  position: absolute; bottom: 8%; left: 43%; width: 50px; height: 8px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #2a0a0c 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: mth-blood 6s ease-in-out infinite;
}
.scn-mother-ghost .ghost-mother {
  position: absolute; bottom: 28%; left: 32%;
  width: 26px; height: 76px;
  background: linear-gradient(180deg, rgba(200,200,240,0.35) 0%, rgba(120,120,180,0.15) 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  filter: blur(1.5px);
  transform-origin: bottom center;
  animation: mth-mother 10s ease-in-out infinite;
}
.scn-mother-ghost .mother-hair {
  position: absolute; bottom: 58%; left: 30%;
  width: 30px; height: 30px;
  background: radial-gradient(ellipse, rgba(160,160,200,0.25) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mth-hair 8s ease-in-out infinite alternate;
}
.scn-mother-ghost .sword-up {
  position: absolute; bottom: 12%; left: 55%;
  width: 5px; height: 40px;
  background: linear-gradient(180deg, #b0b0d0 0%, #707090 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: mth-sword 3s ease-in-out infinite;
}
.scn-mother-ghost .tear-drop {
  position: absolute; bottom: 52%; left: 18%;
  width: 6px; height: 10px;
  background: radial-gradient(ellipse, rgba(180,180,255,0.4) 0%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: mth-tear 5s ease-in-out infinite;
}
.scn-mother-ghost .ground-dust {
  position: absolute; bottom: 2%; left: 20%; right: 20%; height: 8px;
  background: radial-gradient(ellipse, rgba(60,60,80,0.3) 0%, transparent 100%);
  filter: blur(3px);
  animation: mth-dust 12s ease-in-out infinite;
}
@keyframes mth-bg {
  0% { opacity: 0.4; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes mth-blood {
  0% { transform: scaleX(1) translateY(0); opacity: 0.5; }
  50% { transform: scaleX(1.15) translateY(-1px); opacity: 0.8; }
  100% { transform: scaleX(0.9) translateY(0); opacity: 0.6; }
}
@keyframes mth-mother {
  0%,100% { transform: translateY(0) rotate(0deg) scale(1); opacity: 0.5; }
  30% { transform: translateY(-6px) rotate(2deg) scale(1.04); opacity: 0.8; }
  60% { transform: translateY(-10px) rotate(-1deg) scale(1.08); opacity: 0.9; }
  80% { transform: translateY(-4px) rotate(1deg) scale(1.02); opacity: 0.7; }
}
@keyframes mth-hair {
  0% { transform: translateY(0) scale(1); opacity: 0.2; }
  50% { transform: translateY(-8px) scale(1.2); opacity: 0.5; }
  100% { transform: translateY(-3px) scale(0.9); opacity: 0.3; }
}
@keyframes mth-sword {
  0%,100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-3px); }
}
@keyframes mth-tear {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(12px) scale(1.1); opacity: 0.8; }
  100% { transform: translateY(20px) scale(0.9); opacity: 0; }
}
@keyframes mth-dust {
  0% { transform: translateX(0) scaleY(1); opacity: 0.2; }
  50% { transform: translateX(-40px) scaleY(1.5); opacity: 0.5; }
  100% { transform: translateX(20px) scaleY(1); opacity: 0.3; }
}

/* escape-to-ship */
.scn-escape-to-ship {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #b8860b 100%),
    radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 60%);
}
.scn-escape-to-ship .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #fff8dc 100%);
  animation: es-sky 12s ease-in-out infinite alternate;
}
.scn-escape-to-ship .cave-mouth {
  position:absolute; bottom:30%; left:5%; right:60%; height:40%;
  background: linear-gradient(135deg, #2e1a0e 0%, #4a3020 100%);
  border-radius: 0 40% 40% 0 / 0 60% 60% 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
  animation: es-cave 20s ease-in-out infinite alternate;
}
.scn-escape-to-ship .ram {
  position:absolute; bottom:30%; left:15%; width:120px; height:60px;
  background: linear-gradient(180deg, #c4a882 0%, #8b7355 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: es-ram 4s ease-in-out infinite;
}
.scn-escape-to-ship .odysseus {
  position:absolute; bottom:22%; left:23%; width:20px; height:30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: es-od 3s ease-in-out infinite;
}
.scn-escape-to-ship .sheep {
  position:absolute; bottom:28%; width:30px; height:20px;
  background: linear-gradient(180deg, #f5f0e0 0%, #d4c8a0 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-escape-to-ship .sheep-a { left:45%; animation: es-sheep-a 7s ease-in-out infinite; }
.scn-escape-to-ship .sheep-b { left:55%; animation: es-sheep-b 9s ease-in-out infinite; }
.scn-escape-to-ship .ship {
  position:absolute; bottom:50%; right:10%; width:80px; height:40px;
  background: linear-gradient(90deg, #8b4513 0%, #5c2e0d 100%);
  border-radius: 20% 0 0 60% / 50% 0 0 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: es-ship 15s ease-in-out infinite alternate;
}
.scn-escape-to-ship .sun-ray {
  position:absolute; top:10%; left:40%; width:200px; height:100px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,200,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: es-sun 6s ease-in-out infinite alternate;
}
@keyframes es-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes es-cave { 0% { transform: translateX(0); } 50% { transform: translateX(-10px) scale(1.02); } 100% { transform: translateX(5px); } }
@keyframes es-ram { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes es-od { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(3px) scaleY(0.95); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes es-sheep-a { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(0); } }
@keyframes es-sheep-b { 0% { transform: translateX(0); } 50% { transform: translateX(-8px); } 100% { transform: translateX(0); } }
@keyframes es-ship { 0% { transform: translateY(0) scale(0.95); } 50% { transform: translateY(-5px) scale(1); } 100% { transform: translateY(2px) scale(0.95); } }
@keyframes es-sun { 0% { transform: scale(0.9); opacity:0.5; } 50% { transform: scale(1.1); opacity:0.8; } 100% { transform: scale(0.9); opacity:0.5; } }

/* ulysses-taunts-cyclops */
.scn-ulysses-taunts-cyclops {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #b8860b 100%),
    radial-gradient(ellipse at 50% 30%, #f0e68c 0%, transparent 60%);
}
.scn-ulysses-taunts-cyclops .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #fff8dc 100%);
  animation: ut-sky 10s ease-in-out infinite alternate;
}
.scn-ulysses-taunts-cyclops .cave-wall {
  position:absolute; bottom:20%; left:0; right:50%; height:70%;
  background: linear-gradient(135deg, #3a2210 0%, #5c3a20 100%);
  border-radius: 0 60% 20% 0 / 0 80% 40% 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
  animation: ut-wall 18s ease-in-out infinite alternate;
}
.scn-ulysses-taunts-cyclops .cyclops {
  position:absolute; bottom:15%; left:20%; width:100px; height:180px;
  background: linear-gradient(180deg, #6b5a4a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 10px 30px rgba(0,0,0,0.5);
  animation: ut-cyclops 5s ease-in-out infinite;
}
.scn-ulysses-taunts-cyclops .odysseus-figure {
  position:absolute; bottom:25%; left:50%; width:14px; height:28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ut-od 3s ease-in-out infinite;
}
.scn-ulysses-taunts-cyclops .rock {
  position:absolute; bottom:35%; left:65%; width:40px; height:30px;
  background: linear-gradient(135deg, #7a6a5a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: ut-rock 2s ease-in-out infinite alternate;
}
.scn-ulysses-taunts-cyclops .dust {
  position:absolute; width:20px; height:20px;
  background: radial-gradient(circle, rgba(200,180,140,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-ulysses-taunts-cyclops .dust-a { bottom:18%; left:40%; animation: ut-dust-a 4s ease-out infinite; }
.scn-ulysses-taunts-cyclops .dust-b { bottom:22%; left:55%; animation: ut-dust-b 5s ease-out infinite; }
@keyframes ut-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ut-wall { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ut-cyclops { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-8px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ut-od { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.9) translateX(5px); } 100% { transform: scaleY(1); } }
@keyframes ut-rock { 0% { transform: translateY(0) rotate(0); } 100% { transform: translateY(-20px) rotate(30deg); opacity:0.3; } }
@keyframes ut-dust-a { 0% { transform: translate(0,0) scale(1); opacity:1; } 100% { transform: translate(-30px,-40px) scale(2); opacity:0; } }
@keyframes ut-dust-b { 0% { transform: translate(0,0) scale(1); opacity:1; } 100% { transform: translate(20px,-50px) scale(1.5); opacity:0; } }

/* ulysses-reveals-name */
.scn-ulysses-reveals-name {
  background: 
    linear-gradient(180deg, #b0e0e6 0%, #f0e68c 50%, #daa520 100%),
    radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%);
}
.scn-ulysses-reveals-name .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #fffacd 100%);
  animation: ur-sky 12s ease-in-out infinite alternate;
}
.scn-ulysses-reveals-name .sea {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #1e90ff 0%, #4682b4 60%, #2c5f8a 100%);
  animation: ur-sea 8s ease-in-out infinite alternate;
}
.scn-ulysses-reveals-name .ship {
  position:absolute; bottom:40%; left:20%; width:120px; height:50px;
  background: linear-gradient(90deg, #6b3a20 0%, #4a2210 100%);
  border-radius: 10% 0 0 40% / 50% 0 0 50%;
  box-shadow: 0 6px 15px rgba(0,0,0,0.4);
  animation: ur-ship 15s ease-in-out infinite alternate;
}
.scn-ulysses-reveals-name .sail {
  position:absolute; bottom:50%; left:25%; width:40px; height:60px;
  background: linear-gradient(135deg, #f5f5dc 0%, #d2b48c 100%);
  border-radius: 0 40% 60% 0 / 0 60% 80% 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
  animation: ur-sail 6s ease-in-out infinite;
}
.scn-ulysses-reveals-name .cyclops-cliff {
  position:absolute; bottom:10%; right:-10%; width:180px; height:200px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  transform-origin: bottom center;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
  animation: ur-cliff 20s ease-in-out infinite alternate;
}
.scn-ulysses-reveals-name .boulder {
  position:absolute; bottom:50%; left:60%; width:30px; height:30px;
  background: linear-gradient(135deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: ur-boulder 1.5s ease-in infinite;
}
.scn-ulysses-reveals-name .splash {
  position:absolute; bottom:42%; left:55%; width:60px; height:10px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.7) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ur-splash 2s ease-out infinite;
}
.scn-ulysses-reveals-name .wave {
  position:absolute; bottom:0; width:200%; height:20px;
  background: linear-gradient(90deg, #87cefa 0%, #4682b4 50%, #87cefa 100%);
  border-radius: 50%;
  opacity:0.6;
}
.scn-ulysses-reveals-name .wave-a { left:-50%; animation: ur-wave-a 4s linear infinite; }
.scn-ulysses-reveals-name .wave-b { left:-25%; animation: ur-wave-b 6s linear infinite; }
@keyframes ur-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ur-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ur-ship { 0% { transform: translateY(0); } 50% { transform: translateY(-6px); } 100% { transform: translateY(2px); } }
@keyframes ur-sail { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.8); } 100% { transform: scaleX(1); } }
@keyframes ur-cliff { 0% { transform: translateY(0) scale(0.98); } 50% { transform: translateY(-5px) scale(1); } 100% { transform: translateY(0) scale(0.98); } }
@keyframes ur-boulder { 0% { transform: translate(0,0) rotate(0deg); } 100% { transform: translate(-50px,60px) rotate(720deg); opacity:0; } }
@keyframes ur-splash { 0% { transform: scale(0.5); opacity:1; } 100% { transform: scale(1.5); opacity:0; } }
@keyframes ur-wave-a { 0% { transform: translateX(0); } 100% { transform: translateX(50%); } }
@keyframes ur-wave-b { 0% { transform: translateX(0); } 100% { transform: translateX(-25%); } }

/* polyphemus-prophesies */
.scn-polyphemus-prophesies {
  background: 
    linear-gradient(180deg, #a0522d 0%, #deb887 50%, #f5deb3 100%),
    radial-gradient(ellipse at 50% 30%, #f0e68c 0%, transparent 70%);
}
.scn-polyphemus-prophesies .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #cd853f 0%, #f0e68c 100%);
  animation: pp-sky 14s ease-in-out infinite alternate;
}
.scn-polyphemus-prophesies .cave-back {
  position:absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0e05 100%);
  border-radius: 30% 50% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 30px 60px rgba(0,0,0,0.8);
  animation: pp-cave 22s ease-in-out infinite alternate;
}
.scn-polyphemus-prophesies .cyclops-silhouette {
  position:absolute; bottom:10%; left:10%; width:120px; height:200px;
  background: linear-gradient(180deg, #1a0e05 0%, #000000 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px rgba(0,0,0,0.9);
  animation: pp-cyclops 6s ease-in-out infinite;
}
.scn-polyphemus-prophesies .hands {
  position:absolute; bottom:40%; left:20%; width:30px; height:30px;
  background: radial-gradient(circle, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: pp-hands 4s ease-in-out infinite alternate;
}
.scn-polyphemus-prophesies .sun-glow {
  position:absolute; top:15%; left:35%; width:150px; height:150px;
  background: radial-gradient(circle, rgba(255,215,0,0.4) 0%, transparent 70%);
  filter: blur(15px);
  animation: pp-glow 8s ease-in-out infinite alternate;
}
.scn-polyphemus-prophesies .stone {
  position:absolute; bottom:25%; right:15%; width:20px; height:20px;
  background: linear-gradient(135deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: pp-stone 3s ease-in-out infinite;
}
@keyframes pp-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes pp-cave { 0% { transform: scaleY(0.95); } 50% { transform: scaleY(1); } 100% { transform: scaleY(0.95); } }
@keyframes pp-cyclops { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-10px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pp-hands { 0% { transform: translate(0,0) scale(0.8); } 50% { transform: translate(5px,-5px) scale(1); } 100% { transform: translate(0,0) scale(0.8); } }
@keyframes pp-glow { 0% { transform: scale(0.8); opacity:0.3; } 50% { transform: scale(1.2); opacity:0.6; } 100% { transform: scale(0.8); opacity:0.3; } }
@keyframes pp-stone { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-15px) rotate(15deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-antinous-startled {
  background: linear-gradient(180deg, #6DA9E1 0%, #F2D98D 50%, #E8B76C 100%), radial-gradient(ellipse at 50% 0%, #FCE7A8 0%, transparent 60%);
}
.scn-antinous-startled .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #85C1E9 0%, #FADFAD 100%); animation: as-sky 8s ease-in-out infinite alternate; }
.scn-antinous-startled .sun { position:absolute; top:15%; left:70%; width:80px; height:80px; background: radial-gradient(circle, #FFF8D6 0%, #FFD966 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(255,217,102,.4); animation: as-sun 6s ease-in-out infinite alternate; }
.scn-antinous-startled .pillar { position:absolute; bottom:20%; left:25%; width:30px; height:150px; background: linear-gradient(180deg, #D5BFA5 0%, #B0967A 100%); border-radius:4px; box-shadow: 8px 0 12px rgba(0,0,0,.15); animation: as-pillar 4s ease-in-out infinite alternate; }
.scn-antinous-startled .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #D4B78C 0%, #B8945C 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); }
.scn-antinous-startled .figure-shadow { position:absolute; bottom:18%; left:45%; width:80px; height:20px; background: rgba(0,0,0,.2); border-radius:50%; filter: blur(8px); animation: as-shadow 4s ease-in-out infinite alternate; }
.scn-antinous-startled .figure-antinous { position:absolute; bottom:18%; left:50%; width:40px; height:100px; margin-left:-20px; background: linear-gradient(180deg, #2E2824 0%, #1F1A17 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: as-figure 5s ease-in-out infinite; }
.scn-antinous-startled .dust { position:absolute; bottom:20%; left:20%; width:8px; height:8px; background: rgba(200,180,140,0.3); border-radius:50%; filter: blur(4px); animation: as-dust 12s linear infinite; }
@keyframes as-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes as-sun { 0% { transform: scale(1) translate(0,0); opacity:.9 } 50% { transform: scale(1.05) translate(3px,-2px); opacity:1 } 100% { transform: scale(0.98) translate(-2px,1px); opacity:.85 } }
@keyframes as-pillar { 0% { transform: skewX(0deg) } 50% { transform: skewX(1deg) } 100% { transform: skewX(-0.5deg) } }
@keyframes as-shadow { 0% { transform: scaleX(1) translateX(0); opacity:.25 } 50% { transform: scaleX(.9) translateX(10px); opacity:.15 } 100% { transform: scaleX(1.1) translateX(-5px); opacity:.2 } }
@keyframes as-figure { 0% { transform: rotate(0deg) } 25% { transform: rotate(-5deg) translateX(-5px) } 50% { transform: rotate(2deg) translateX(8px) } 75% { transform: rotate(-3deg) translateX(-3px) } 100% { transform: rotate(0deg) } }
@keyframes as-dust { 0% { transform: translateY(0) translateX(0); opacity:0.4 } 25% { transform: translateY(-20px) translateX(15px); opacity:0.2 } 50% { transform: translateY(-40px) translateX(-10px); opacity:0 } 100% { transform: translateY(-60px) translateX(20px); opacity:0 } }

.scn-noemon-explains {
  background: linear-gradient(180deg, #A8D0E6 0%, #FCEAA6 40%, #F5D67B 100%), radial-gradient(ellipse at 50% 0%, #FFF9C4 0%, transparent 70%);
}
.scn-noemon-explains .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #C7E2F7 0%, #FCEAA6 100%); animation: ne-sky 12s ease-in-out infinite alternate; }
.scn-noemon-explains .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #87CEEB 0%, #4682B4 50%, #2C5F8A 100%); animation: ne-sea 6s ease-in-out infinite alternate; }
.scn-noemon-explains .ship { position:absolute; bottom:25%; left:45%; width:80px; height:30px; background: linear-gradient(90deg, #8B5A2B 0%, #A0522D 50%, #6B3A1F 100%); border-radius: 0 0 20% 20% / 0 0 50% 50%; transform: rotate(2deg); animation: ne-ship 4s ease-in-out infinite; }
.scn-noemon-explains .sail-fore { position:absolute; bottom:40%; left:48%; width:30px; height:50px; background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%); clip-path: polygon(0 0, 100% 20%, 80% 100%, 10% 80%); animation: ne-sail-f 5s ease-in-out infinite alternate; }
.scn-noemon-explains .sail-aft { position:absolute; bottom:38%; left:55%; width:25px; height:45px; background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%); clip-path: polygon(20% 0, 100% 0, 90% 100%, 0 80%); animation: ne-sail-a 5s ease-in-out infinite alternate-reverse; }
.scn-noemon-explains .figure-noemon { position:absolute; bottom:22%; left:38%; width:20px; height:40px; background: linear-gradient(180deg, #3C3C3C 0%, #1F1F1F 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ne-figure 3s ease-in-out infinite alternate; }
.scn-noemon-explains .cloud-a { position:absolute; top:12%; left:10%; width:90px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(8px); animation: ne-cloud-a 40s linear infinite; }
.scn-noemon-explains .cloud-b { position:absolute; top:20%; right:15%; width:70px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.05) 100%); border-radius:50%; filter: blur(6px); animation: ne-cloud-b 55s linear infinite reverse; }
@keyframes ne-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ne-sea { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(-2px) } }
@keyframes ne-ship { 0% { transform: rotate(1deg) translateX(0) } 50% { transform: rotate(-1deg) translateX(3px) } 100% { transform: rotate(2deg) translateX(-2px) } }
@keyframes ne-sail-f { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) scaleX(.95) } 100% { transform: rotate(-2deg) scaleX(1.02) } }
@keyframes ne-sail-a { 0% { transform: rotate(0deg) } 50% { transform: rotate(-4deg) scaleX(.9) } 100% { transform: rotate(2deg) scaleX(1.05) } }
@keyframes ne-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes ne-cloud-a { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }
@keyframes ne-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-antinous-resolves-to-murder {
  background: linear-gradient(180deg, #3A2A1A 0%, #5C4033 30%, #8B5A2B 100%), radial-gradient(ellipse at 80% 20%, #FFD48A 0%, transparent 60%);
}
.scn-antinous-resolves-to-murder .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #4A3525 0%, #6A4F3A 50%, #3A2518 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6); animation: ar-wall 10s ease-in-out infinite alternate; }
.scn-antinous-resolves-to-murder .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5C3D2E 0%, #2E1C10 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-antinous-resolves-to-murder .window { position:absolute; top:20%; right:15%; width:100px; height:130px; background: rgba(255,210,130,.15); border: 6px solid #3A2A1A; box-shadow: inset 0 0 30px rgba(255,180,60,.3), 0 0 40px rgba(255,180,60,.2); animation: ar-window 6s ease-in-out infinite alternate; }
.scn-antinous-resolves-to-murder .sunbeam { position:absolute; top:20%; right:15%; width:80px; height:60%; background: linear-gradient(180deg, rgba(255,230,180,.2) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation: ar-sunbeam 4s ease-in-out infinite alternate; }
.scn-antinous-resolves-to-murder .figure-antinous-anger { position:absolute; bottom:30%; left:35%; width:50px; height:110px; background: linear-gradient(180deg, #1A1A1A 0%, #0D0D0D 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ar-figure 2s ease-in-out infinite; }
.scn-antinous-resolves-to-murder .shadow { position:absolute; bottom:22%; left:30%; width:100px; height:12px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(10px); animation: ar-shadow 3s ease-in-out infinite alternate; }
.scn-antinous-resolves-to-murder .table { position:absolute; bottom:28%; left:60%; width:60px; height:40px; background: linear-gradient(180deg, #6B3A1F 0%, #3A1A0A 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ar-table 8s ease-in-out infinite alternate; }
@keyframes ar-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ar-window { 0% { box-shadow: inset 0 0 20px rgba(255,180,60,.2), 0 0 30px rgba(255,180,60,.1); } 50% { box-shadow: inset 0 0 40px rgba(255,220,100,.5), 0 0 60px rgba(255,220,100,.3); } 100% { box-shadow: inset 0 0 25px rgba(255,180,60,.25), 0 0 35px rgba(255,180,60,.15); } }
@keyframes ar-sunbeam { 0% { opacity:.15; transform: rotate(0deg) } 50% { opacity:.3; transform: rotate(2deg) } 100% { opacity:.1; transform: rotate(-1deg) } }
@keyframes ar-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(-3deg) } 50% { transform: translateX(-3px) rotate(5deg) } 75% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ar-shadow { 0% { transform: scaleX(1) translateX(0); opacity:.35 } 50% { transform: scaleX(.8) translateX(15px); opacity:.2 } 100% { transform: scaleX(1.2) translateX(-10px); opacity:.3 } }
@keyframes ar-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }

.scn-penelope-learns-of-plot {
  background: linear-gradient(180deg, #1A1513 0%, #2C2420 30%, #40332C 100%), radial-gradient(ellipse at 50% 60%, #5A4030 0%, transparent 70%);
}
.scn-penelope-learns-of-plot .room { position:absolute; inset:0; background: linear-gradient(180deg, #2B211C 0%, #1C1512 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.7); animation: pl-room 12s ease-in-out infinite alternate; }
.scn-penelope-learns-of-plot .wall-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(90deg, #1F1815 0%, #2B211C 100%); box-shadow: 4px 0 12px rgba(0,0,0,.4); }
.scn-penelope-learns-of-plot .wall-right { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(270deg, #1F1815 0%, #2B211C 100%); box-shadow: -4px 0 12px rgba(0,0,0,.4); }
.scn-penelope-learns-of-plot .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3A2B22 0%, #1C1410 100%); }
.scn-penelope-learns-of-plot .lamp { position:absolute; top:25%; left:50%; width:20px; height:30px; margin-left:-10px; background: radial-gradient(circle at 50% 10%, #FFD27F 0%, #B87A3A 60%, transparent 80%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 50px 20px rgba(200,140,60,.3); animation: pl-lamp 5s ease-in-out infinite alternate; }
.scn-penelope-learns-of-plot .figure-penelope { position:absolute; bottom:20%; left:35%; width:40px; height:90px; background: linear-gradient(180deg, #1A1A1A 0%, #0F0F0F 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pl-penelope 4s ease-in-out infinite alternate; }
.scn-penelope-learns-of-plot .figure-medon { position:absolute; bottom:22%; left:55%; width:30px; height:70px; background: linear-gradient(180deg, #242424 0%, #121212 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: pl-medon 4s ease-in-out infinite alternate; }
.scn-penelope-learns-of-plot .shadow { position:absolute; bottom:15%; left:30%; width:120px; height:10px; background: rgba(0,0,0,.5); border-radius:50%; filter: blur(8px); animation: pl-shadow 6s ease-in-out infinite alternate; }
.scn-penelope-learns-of-plot .cushion { position:absolute; bottom:18%; left:40%; width:30px; height:10px; background: #4A3025; border-radius: 50%; animation: pl-cushion 8s ease-in-out infinite alternate; }
@keyframes pl-room { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pl-lamp { 0% { box-shadow: 0 0 40px 15px rgba(200,140,60,.2); } 50% { box-shadow: 0 0 60px 25px rgba(200,140,60,.4); } 100% { box-shadow: 0 0 45px 18px rgba(200,140,60,.25); } }
@keyframes pl-penelope { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes pl-medon { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes pl-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(.9) translateX(8px) } 100% { transform: scaleX(1.1) translateX(-5px) } }
@keyframes pl-cushion { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }

.scn-menelaus-compliments-pisistratus {
  background: linear-gradient(180deg, #f5e6d0 0%, #d6b88a 40%, #b89a6a 100%), radial-gradient(ellipse at 50% 0%, rgba(255,230,180,0.6) 0%, transparent 70%);
}
.scn-menelaus-compliments-pisistratus .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #e8d4b0 0%, #c8a87a 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.15);
}
.scn-menelaus-compliments-pisistratus .window {
  position: absolute; top: 8%; right: 15%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at center, #ffeac0 0%, #d4b080 70%);
  border-radius: 8px; box-shadow: inset 0 0 30px rgba(255,200,100,0.5), 0 0 20px rgba(255,200,100,0.3);
  animation: mcp-window 8s ease-in-out infinite alternate;
}
.scn-menelaus-compliments-pisistratus .table {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(180deg, #a08060 0%, #7a5e40 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -2px 10px rgba(0,0,0,0.2);
}
.scn-menelaus-compliments-pisistratus .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcp-figL 4s ease-in-out infinite alternate;
}
.scn-menelaus-compliments-pisistratus .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 34px; height: 80px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcp-figR 4s ease-in-out infinite alternate;
}
.scn-menelaus-compliments-pisistratus .lamp {
  position: absolute; bottom: 40%; left: 50%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #b08040 0%, #8a5a20 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 6px rgba(200,150,80,0.6);
  transform: translateX(-50%);
  animation: mcp-lamp 3s ease-in-out infinite alternate;
}
.scn-menelaus-compliments-pisistratus .lamp-glow {
  position: absolute; bottom: 38%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 80%);
  transform: translate(-50%, 0);
  animation: mcp-lampGlow 3s ease-in-out infinite alternate;
}
@keyframes mcp-window {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.8; transform: scaleX(0.98); }
}
@keyframes mcp-figL {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes mcp-figR {
  0% { transform: translateY(0) rotate(3deg); }
  50% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes mcp-lamp {
  0% { box-shadow: 0 0 15px 4px rgba(200,150,80,0.5); }
  50% { box-shadow: 0 0 30px 10px rgba(255,200,100,0.8); }
  100% { box-shadow: 0 0 18px 6px rgba(200,150,80,0.6); }
}
@keyframes mcp-lampGlow {
  0% { transform: translate(-50%, 0) scale(0.9); opacity: 0.8; }
  50% { transform: translate(-50%, -4%) scale(1.1); opacity: 1; }
  100% { transform: translate(-50%, 0) scale(0.95); opacity: 0.85; }
}

.scn-helen-drugged-wine {
  background: linear-gradient(180deg, #f0e0c8 0%, #d4c0a0 40%, #b8a080 100%), radial-gradient(ellipse at 50% 0%, rgba(245,225,180,0.7) 0%, transparent 70%);
}
.scn-helen-drugged-wine .bg-column {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #d8c8a8 0%, #b8a080 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.1);
}
.scn-helen-drugged-wine .table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #a08060 0%, #7a5e40 100%);
  border-radius: 8% 8% 0 0; box-shadow: 0 -2px 10px rgba(0,0,0,0.2);
}
.scn-helen-drugged-wine .wine-bowl {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 40%, #c8a060 0%, #906030 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: translateX(-50%);
  animation: hdw-bowl 6s ease-in-out infinite alternate;
}
.scn-helen-drugged-wine .herb-leaf {
  position: absolute; bottom: 30%; left: 47%; width: 12px; height: 6px;
  background: #6a8a4a; border-radius: 50% 0 50% 0;
  transform: rotate(20deg); opacity: 0.8;
  animation: hdw-herb 4s ease-in-out infinite alternate;
}
.scn-helen-drugged-wine .figure-helen {
  position: absolute; bottom: 25%; left: 10%; width: 36px; height: 85px;
  background: linear-gradient(180deg, #b89878 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hdw-helen 5s ease-in-out infinite alternate;
}
.scn-helen-drugged-wine .hand-pouring {
  position: absolute; bottom: 35%; left: 18%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #b89878 0%, #8a6a4a 100%);
  border-radius: 40% 40% 20% 20%; transform: rotate(30deg);
  transform-origin: bottom left;
  animation: hdw-hand 3s ease-in-out infinite alternate;
}
.scn-helen-drugged-wine .wine-stream {
  position: absolute; bottom: 30%; left: 22%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #c85030 0%, #c06040 100%);
  border-radius: 50%; opacity: 0.7;
  animation: hdw-stream 2s ease-in-out infinite;
}
@keyframes hdw-bowl {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02) translateY(-1px); }
  100% { transform: translateX(-50%) scaleY(0.98) translateY(0); }
}
@keyframes hdw-herb {
  0% { transform: rotate(15deg) translate(0,0); }
  50% { transform: rotate(25deg) translate(2px,-1px); }
  100% { transform: rotate(18deg) translate(1px,0); }
}
@keyframes hdw-helen {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes hdw-hand {
  0% { transform: rotate(25deg) translate(0,0); }
  50% { transform: rotate(35deg) translate(2px,-2px); }
  100% { transform: rotate(28deg) translate(0,0); }
}
@keyframes hdw-stream {
  0% { height: 0; opacity: 0; }
  30% { height: 30px; opacity: 0.7; }
  70% { height: 30px; opacity: 0.5; }
  100% { height: 0; opacity: 0; }
}

.scn-helen-tells-of-ulysses-in-troy {
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a87a 40%, #a08060 100%), radial-gradient(ellipse at 50% 100%, rgba(200,160,100,0.5) 0%, transparent 70%);
}
.scn-helen-tells-of-ulysses-in-troy .bg-tapestry {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #c8b090 0%, #a88868 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.1);
}
.scn-helen-tells-of-ulysses-in-troy .hearth-fire {
  position: absolute; bottom: 30%; left: 10%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #e06020 0%, #c04010 40%, #a02008 70%, transparent 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 15px rgba(200,80,30,0.5);
  animation: hut-fire 3s ease-in-out infinite alternate;
}
.scn-helen-tells-of-ulysses-in-troy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5e40 0%, #5a3a1a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-helen-tells-of-ulysses-in-troy .figure-helen {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #b89878 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hut-helen 5s ease-in-out infinite;
}
.scn-helen-tells-of-ulysses-in-troy .listener-a {
  position: absolute; bottom: 30%; right: 20%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hut-listenA 6s ease-in-out infinite alternate;
}
.scn-helen-tells-of-ulysses-in-troy .listener-b {
  position: absolute; bottom: 30%; right: 10%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hut-listenB 7s ease-in-out infinite alternate;
}
.scn-helen-tells-of-ulysses-in-troy .lamp-glow {
  position: absolute; bottom: 35%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 80%);
  transform: translateX(-50%);
  animation: hut-lamp 4s ease-in-out infinite alternate;
}
@keyframes hut-fire {
  0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 30px 10px rgba(200,80,30,0.4); }
  50% { transform: scaleY(1.1) translateY(-3px); box-shadow: 0 0 50px 20px rgba(200,80,30,0.7); }
  100% { transform: scaleY(0.95) translateY(0); box-shadow: 0 0 35px 12px rgba(200,80,30,0.5); }
}
@keyframes hut-helen {
  0% { transform: translateY(0) rotate(-3deg); }
  25% { transform: translateY(-2px) rotate(1deg) translateX(4px); }
  50% { transform: translateY(0) rotate(3deg) translateX(0); }
  75% { transform: translateY(-1px) rotate(-1deg) translateX(-4px); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes hut-listenA {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hut-listenB {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes hut-lamp {
  0% { opacity: 0.8; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.85; transform: translateX(-50%) scale(1); }
}

.scn-menelaus-recounts-wooden-horse {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 50%, rgba(255,180,60,0.15) 0%, transparent 70%);
}
.scn-menelaus-recounts-wooden-horse .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2a 0%, #2a2a3e 50%, #1a1a2a 100%);
}
.scn-menelaus-recounts-wooden-horse .horse-silhouette {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 60%;
  background: #0a0a12;
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  clip-path: polygon(10% 0%, 90% 0%, 95% 40%, 85% 100%, 15% 100%, 5% 40%);
  box-shadow: 0 0 30px rgba(0,0,0,0.8), inset 0 0 20px rgba(100,80,40,0.2);
  animation: mwh-horse 4s ease-in-out infinite alternate;
}
.scn-menelaus-recounts-wooden-horse .horse-interior {
  position: absolute; bottom: 20%; left: 38%; right: 38%; height: 40%;
  background: linear-gradient(180deg, #1a1a12 0%, #0a0a08 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.9);
  overflow: hidden;
}
.scn-menelaus-recounts-wooden-horse .soldier-group {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 35%;
  display: flex; flex-direction: column; align-items: center; gap: 2px;
}
.scn-menelaus-recounts-wooden-horse .soldier-group::before {
  content: ''; display: block; width: 80%; height: 60%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 0 10px rgba(200,150,50,0.2);
  animation: mwh-soldierA 5s ease-in-out infinite alternate;
}
.scn-menelaus-recounts-wooden-horse .soldier-group::after {
  content: ''; display: block; width: 70%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 20% 20%; 
  animation: mwh-soldierB 5s ease-in-out infinite alternate 0.5s;
}
.scn-menelaus-recounts-wooden-horse .spotlight {
  position: absolute; bottom: 25%; left: 40%; right: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,200,100,0.15) 0%, transparent 70%);
  animation: mwh-spotlight 6s ease-in-out infinite alternate;
}
.scn-menelaus-recounts-wooden-horse .shadow-stripe {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: mwh-stripe 8s ease-in-out infinite alternate;
}
.scn-menelaus-recounts-wooden-horse .horse-shudder {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 50%, rgba(255,150,50,0.05) 0%, transparent 60%);
  animation: mwh-shudder 3s ease-in-out infinite;
}
@keyframes mwh-horse {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.01) translateY(-2px); }
  100% { transform: scaleX(0.99) translateY(0); }
}
@keyframes mwh-soldierA {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes mwh-soldierB {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes mwh-spotlight {
  0% { opacity: 0.3; transform: scaleY(0.9); }
  50% { opacity: 0.7; transform: scaleY(1.1); }
  100% { opacity: 0.4; transform: scaleY(0.95); }
}
@keyframes mwh-stripe {
  0% { transform: translateY(0); opacity: 0.5; }
  50% { transform: translateY(5%); opacity: 0.8; }
  100% { transform: translateY(0); opacity: 0.6; }
}
@keyframes mwh-shudder {
  0% { opacity: 0.1; transform: translateX(0); }
  25% { opacity: 0.2; transform: translateX(2px); }
  50% { opacity: 0.1; transform: translateX(-1px); }
  75% { opacity: 0.3; transform: translateX(2px); }
  100% { opacity: 0.1; transform: translateX(0); }
}

/* Scene: men-starve-on-island */
.scn-men-starve-on-island {
  background: 
    linear-gradient(180deg, #9ab3c8 0%, #d4c9a3 40%, #e8d5a3 55%, #c2a572 70%, #8b6f47 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,235,180,0.4) 0%, transparent 50%);
}
.scn-men-starve-on-island .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #6c8da8 0%, #b8c9d4 50%, transparent 100%);
  animation: msi-sky 12s ease-in-out infinite alternate;
}
.scn-men-starve-on-island .sun {
  position:absolute; bottom:50%; left:30%; width:40px; height:40px;
  background: radial-gradient(circle, #ffeac2 0%, #f5d78e 60%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 80px 30px rgba(245,215,142,0.5);
  animation: msi-sun 20s ease-in-out infinite alternate;
}
.scn-men-starve-on-island .cloud {
  position:absolute; height:20px; border-radius:50%; filter:blur(5px);
  background: rgba(180,190,200,0.3);
}
.scn-men-starve-on-island .cloud-a {
  top:15%; left:5%; width:90px; animation: msi-drift 40s linear infinite;
}
.scn-men-starve-on-island .cloud-b {
  top:25%; right:10%; width:70px; animation: msi-drift 55s linear infinite reverse;
}
.scn-men-starve-on-island .sea {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #6b8c9e 0%, #3a5c6e 100%);
  animation: msi-sea 8s ease-in-out infinite alternate;
}
.scn-men-starve-on-island .island {
  position:absolute; bottom:20%; left:40%; width:100px; height:40px;
  background: linear-gradient(180deg, #5a6b4a 0%, #3a4a2a 100%);
  border-radius: 40% 60% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 -5px 15px rgba(0,0,0,0.3);
  animation: msi-island 6s ease-in-out infinite alternate;
}
.scn-men-starve-on-island .ship {
  position:absolute; bottom:30%; left:55%; width:60px; height:30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30%;
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: msi-sway 4s ease-in-out infinite;
}
.scn-men-starve-on-island .figure {
  position:absolute; bottom:34%; width:14px; height:28px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: msi-walk 5s ease-in-out infinite;
}
.scn-men-starve-on-island .figure-1 { left:42%; animation-delay:0s; }
.scn-men-starve-on-island .figure-2 { left:48%; animation-delay:1.5s; }
@keyframes msi-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes msi-sun { 0% { transform: translateX(0) scale(1); opacity:0.9 } 50% { transform: translateX(-10px) scale(0.95); opacity:1 } 100% { transform: translateX(10px) scale(1); opacity:0.85 } }
@keyframes msi-drift { 0% { transform: translateX(-50px) } 50% { transform: translateX(20px) } 100% { transform: translateX(150vw) } }
@keyframes msi-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes msi-island { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(1px) scale(0.98) } }
@keyframes msi-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes msi-walk { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }

/* Scene: eurylochus-proposes-sacrifice */
.scn-eurylochus-proposes-sacrifice {
  background: 
    linear-gradient(180deg, #d4c9a3 0%, #c2a572 40%, #a0835a 70%, #6b5a3a 100%),
    radial-gradient(ellipse at 30% 50%, rgba(255,235,180,0.3) 0%, transparent 60%);
}
.scn-eurylochus-proposes-sacrifice .sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #9ab3c8 0%, #c2d4e0 50%, transparent 100%);
  animation: esp-sky 10s ease-in-out infinite alternate;
}
.scn-eurylochus-proposes-sacrifice .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #7a6040 0%, #4a3a2a 100%);
  border-radius: 30% 20% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-eurylochus-proposes-sacrifice .rock {
  position:absolute; bottom:30%; left:10%; width:50px; height:40px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 20% 50% 20% / 40% 30% 60% 30%;
  animation: esp-rock 8s ease-in-out infinite alternate;
}
.scn-eurylochus-proposes-sacrifice .speaker {
  position:absolute; bottom:30%; left:35%; width:24px; height:50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: esp-speak 3s ease-in-out infinite;
}
.scn-eurylochus-proposes-sacrifice .listener {
  position:absolute; bottom:28%; width:16px; height:34px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: esp-listen 5s ease-in-out infinite;
}
.scn-eurylochus-proposes-sacrifice .listener-1 { left:48%; animation-delay:0s; }
.scn-eurylochus-proposes-sacrifice .listener-2 { left:55%; animation-delay:1s; }
.scn-eurylochus-proposes-sacrifice .cattle {
  position:absolute; bottom:32%; width:40px; height:24px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: esp-cattle 6s ease-in-out infinite;
}
.scn-eurylochus-proposes-sacrifice .cattle-1 { right:20%; animation-delay:0s; }
.scn-eurylochus-proposes-sacrifice .cattle-2 { right:8%; animation-delay:2s; width:30px; height:20px; }
.scn-eurylochus-proposes-sacrifice .dust {
  position:absolute; bottom:10%; left:30%; width:100px; height:20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,160,120,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: esp-dust 4s ease-in-out infinite alternate;
}
@keyframes esp-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes esp-rock { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(2px) rotate(1deg) } }
@keyframes esp-speak { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-3px) rotate(-5deg) } 60% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes esp-listen { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes esp-cattle { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) } }
@keyframes esp-dust { 0% { opacity:0.2; transform: translateX(0) } 50% { opacity:0.5; transform: translateX(10px) } 100% { opacity:0.1; transform: translateX(-10px) } }

/* Scene: men-sacrifice-cattle */
.scn-men-sacrifice-cattle {
  background: 
    linear-gradient(180deg, #c2a572 0%, #a0835a 30%, #7a6040 60%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 40%, rgba(255,220,150,0.2) 0%, transparent 60%);
}
.scn-men-sacrifice-cattle .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #8aa3b8 0%, #b8c9d4 50%, transparent 100%);
  animation: msc-sky 12s ease-in-out infinite alternate;
}
.scn-men-sacrifice-cattle .ground {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #6b5a3a 0%, #3a2a1a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-men-sacrifice-cattle .altar {
  position:absolute; bottom:25%; left:50%; width:40px; height:20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 50% 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: msc-altar 8s ease-in-out infinite alternate;
}
.scn-men-sacrifice-cattle .cattle {
  position:absolute; bottom:30%; left:50%; width:50px; height:28px;
  transform: translateX(-50%) translateY(0);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: msc-cattle 6s ease-in-out infinite;
}
.scn-men-sacrifice-cattle .priest {
  position:absolute; bottom:32%; left:42%; width:18px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msc-priest 3s ease-in-out infinite;
}
.scn-men-sacrifice-cattle .acolyte {
  position:absolute; bottom:30%; width:14px; height:30px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: msc-acolyte 4s ease-in-out infinite;
}
.scn-men-sacrifice-cattle .acolyte-1 { left:34%; animation-delay:0s; }
.scn-men-sacrifice-cattle .acolyte-2 { right:34%; animation-delay:2s; }
.scn-men-sacrifice-cattle .shoot {
  position:absolute; bottom:35%; width:4px; height:20px;
  background: linear-gradient(180deg, #5a6b3a 0%, #3a4a2a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: msc-shoot 5s ease-in-out infinite;
}
.scn-men-sacrifice-cattle .shoot-1 { left:46%; animation-delay:0s; transform: rotate(-10deg); }
.scn-men-sacrifice-cattle .shoot-2 { left:52%; animation-delay:0.5s; transform: rotate(10deg); }
@keyframes msc-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes msc-altar { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(0.95) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes msc-cattle { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes msc-priest { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-3px) rotate(-5deg) } 60% { transform: translateY(-1px) rotate(5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes msc-acolyte { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes msc-shoot { 0% { transform: rotate(-10deg) scaleY(1) } 50% { transform: rotate(-15deg) scaleY(0.9) } 100% { transform: rotate(-10deg) scaleY(1) } }

/* Scene: ulysses-wakes */
.scn-ulysses-wakes {
  background: 
    linear-gradient(180deg, #8aa3b8 0%, #b8c9d4 30%, #d4c9a3 60%, #c2a572 85%, #8b6f47 100%),
    radial-gradient(ellipse at 50% 80%, rgba(255,235,180,0.2) 0%, transparent 50%);
}
.scn-ulysses-wakes .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #5a7a8e 0%, #9ab3c8 50%, transparent 100%);
  animation: uwa-sky 15s ease-in-out infinite alternate;
}
.scn-ulysses-wakes .sea {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #6b8c9e 0%, #3a5c6e 100%);
  animation: uwa-sea 8s ease-in-out infinite alternate;
}
.scn-ulysses-wakes .shore {
  position:absolute; bottom:15%; left:20%; right:20%; height:20%;
  background: linear-gradient(180deg, #c2a572 0%, #a0835a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.2);
}
.scn-ulysses-wakes .ship {
  position:absolute; bottom:30%; right:15%; width:70px; height:35px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 40% 40%;
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: uwa-ship 10s ease-in-out infinite alternate;
}
.scn-ulysses-wakes .figure {
  position:absolute; bottom:28%; left:40%; width:20px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uwa-wake 6s ease-in-out infinite;
}
.scn-ulysses-wakes .rock {
  position:absolute; bottom:25%; left:25%; width:30px; height:25px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 20% 50% 20% / 40% 30% 60% 30%;
  animation: uwa-rock 12s ease-in-out infinite alternate;
}
.scn-ulysses-wakes .cloud {
  position:absolute; top:15%; left:10%; width:80px; height:15px;
  background: rgba(200,210,220,0.4);
  border-radius:50%; filter:blur(6px);
  animation: uwa-cloud 40s linear infinite;
}
@keyframes uwa-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes uwa-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes uwa-ship { 0% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes uwa-wake { 0% { transform: translateY(0) rotate(-5deg) } 30% { transform: translateY(-5px) rotate(0deg) } 60% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes uwa-rock { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes uwa-cloud { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

.scn-leiocritus-responds {
  background: linear-gradient(180deg, #f8e8c0 0%, #d4ab6a 40%, #8a6a3a 100%),
              radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 60%);
}
.scn-leiocritus-responds .lr-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #d4ab6a 100%);
  animation: lr-sky 12s ease-in-out infinite alternate;
}
.scn-leiocritus-responds .lr-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-leiocritus-responds .lr-table {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 20px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-leiocritus-responds .lr-suitor1,
.scn-leiocritus-responds .lr-suitor2 {
  position: absolute; bottom: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-leiocritus-responds .lr-suitor1 {
  left: 30%; animation: lr-fidget 5s ease-in-out infinite;
}
.scn-leiocritus-responds .lr-suitor2 {
  left: 60%; animation: lr-fidget 5s ease-in-out infinite reverse;
}
.scn-leiocritus-responds .lr-leiocritus {
  position: absolute; bottom: 24%; left: 46%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #c8553d 0%, #8a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lr-speak 3s ease-in-out infinite;
}
.scn-leiocritus-responds .lr-cup {
  position: absolute; bottom: 29%; left: 50%; width: 10px; height: 8px;
  background: radial-gradient(circle, #f0c060 0%, #b08030 100%);
  border-radius: 50%; transform: translateX(-50%);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: lr-shake 4s ease-in-out infinite;
}
@keyframes lr-sky {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .6; }
}
@keyframes lr-fidget {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lr-speak {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes lr-shake {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  20% { transform: translateX(-48%) rotate(10deg); }
  40% { transform: translateX(-52%) rotate(-8deg); }
  60% { transform: translateX(-49%) rotate(4deg); }
  80% { transform: translateX(-51%) rotate(-2deg); }
}

.scn-assembly-dissolved {
  background: linear-gradient(180deg, #f0e6c0 0%, #c0a870 50%, #806040 100%),
              radial-gradient(ellipse at 50% 80%, #d4c080 0%, transparent 70%);
}
.scn-assembly-dissolved .ad-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8d8b0 0%, #c0a870 100%);
  animation: ad-sky 15s ease-in-out infinite alternate;
}
.scn-assembly-dissolved .ad-hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: ad-hills 20s ease-in-out infinite alternate;
}
.scn-assembly-dissolved .ad-road {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%);
  border-radius: 20% 20% 0 0;
  transform: perspective(600px) rotateX(30deg);
}
.scn-assembly-dissolved .ad-house {
  position: absolute; bottom: 22%; right: 20%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #806040 0%, #4a3a2a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: ad-breathe 8s ease-in-out infinite;
}
.scn-assembly-dissolved .ad-figure1,
.scn-assembly-dissolved .ad-figure2,
.scn-assembly-dissolved .ad-figure3 {
  position: absolute; bottom: 12%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-assembly-dissolved .ad-figure1 { left: 28%; animation: ad-walk1 12s linear infinite; }
.scn-assembly-dissolved .ad-figure2 { left: 44%; animation: ad-walk2 14s linear infinite 2s; }
.scn-assembly-dissolved .ad-figure3 { left: 60%; animation: ad-walk3 16s linear infinite 4s; }
@keyframes ad-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes ad-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ad-breathe {
  0% { transform: scale(1); }
  50% { transform: scale(1.02) translateY(-1px); }
  100% { transform: scale(1); }
}
@keyframes ad-walk1 {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(2deg); }
  50% { transform: translateX(20px) rotate(0deg); }
  75% { transform: translateX(30px) rotate(-2deg); }
  100% { transform: translateX(40px) rotate(0deg); }
}
@keyframes ad-walk2 {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-8px) rotate(1deg); }
  50% { transform: translateX(-16px) rotate(0deg); }
  75% { transform: translateX(-24px) rotate(-1deg); }
  100% { transform: translateX(-32px) rotate(0deg); }
}
@keyframes ad-walk3 {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(10px) rotate(0deg); }
  75% { transform: translateX(15px) rotate(-2deg); }
  100% { transform: translateX(20px) rotate(0deg); }
}

.scn-telemachus-prays-to-minerva {
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 50%, #3a4a5a 100%),
              radial-gradient(ellipse at 50% 100%, #4a5a6a 0%, transparent 70%);
}
.scn-telemachus-prays-to-minerva .tp-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 100%);
  animation: tp-sky 18s ease-in-out infinite alternate;
}
.scn-telemachus-prays-to-minerva .tp-sea {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
  animation: tp-sea 8s ease-in-out infinite alternate;
}
.scn-telemachus-prays-to-minerva .tp-shore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
}
.scn-telemachus-prays-to-minerva .tp-figure {
  position: absolute; bottom: 12%; left: 48%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tp-pray 4s ease-in-out infinite;
}
.scn-telemachus-prays-to-minerva .tp-rocks {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-telemachus-prays-to-minerva .tp-cloud {
  position: absolute; top: 15%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.05) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: tp-drift 40s linear infinite;
}
.scn-telemachus-prays-to-minerva .tp-spear {
  position: absolute; bottom: 15%; left: 50%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: tp-shiver 3s ease-in-out infinite;
}
@keyframes tp-sky {
  0% { opacity: .6; }
  50% { opacity: 1; }
  100% { opacity: .5; }
}
@keyframes tp-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes tp-pray {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-5deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tp-drift {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(120vw); }
}
@keyframes tp-shiver {
  0%,100% { transform: rotate(0deg); }
  20% { transform: rotate(2deg); }
  40% { transform: rotate(-2deg); }
  60% { transform: rotate(1deg); }
  80% { transform: rotate(-1deg); }
}

.scn-minerva-appears-as-mentor {
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 50%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 70%, #c0a060 0%, transparent 60%);
}
.scn-minerva-appears-as-mentor .mam-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #5a6a7a 100%);
  animation: mam-sky 20s ease-in-out infinite alternate;
}
.scn-minerva-appears-as-mentor .mam-sea {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: mam-sea 10s ease-in-out infinite alternate;
}
.scn-minerva-appears-as-mentor .mam-shore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-minerva-appears-as-mentor .mam-telemachus {
  position: absolute; bottom: 10%; left: 40%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mam-lookup 5s ease-in-out infinite;
}
.scn-minerva-appears-as-mentor .mam-mentor {
  position: absolute; bottom: 12%; left: 55%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #c0a060 0%, #806030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mam-stand 6s ease-in-out infinite;
}
.scn-minerva-appears-as-mentor .mam-aura {
  position: absolute; bottom: 15%; left: 55%; width: 60px; height: 60px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(192, 160, 96, .6) 0%, transparent 70%);
  border-radius: 50%;
  animation: mam-glow 3s ease-in-out infinite alternate;
}
.scn-minerva-appears-as-mentor .mam-staff {
  position: absolute; bottom: 14%; left: 57%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #a08050 0%, #604020 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: mam-staff-sway 4s ease-in-out infinite;
}
@keyframes mam-sky {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .6; }
}
@keyframes mam-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes mam-lookup {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mam-stand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mam-glow {
  0% { opacity: .5; transform: translate(-50%, -50%) scale(1); }
  100% { opacity: 1; transform: translate(-50%, -50%) scale(1.2); }
}
@keyframes mam-staff-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}

/* Scene 1: lotophagi-land */
.scn-lotophagi-land {
  background: linear-gradient(180deg, #4b8cbf 0%, #7ab0d9 30%, #a9d6e5 60%, #e6cfa0 100%),
              radial-gradient(ellipse at 30% 20%, #fdecc8 0%, transparent 50%);
}
.scn-lotophagi-land .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6eb3d9 0%, transparent 100%);
  animation: ll-sky 20s ease-in-out infinite alternate;
}
.scn-lotophagi-land .sun {
  position: absolute; top: 8%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe680 0%, #fcd04a 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(252,208,74,0.4);
  animation: ll-sun 30s ease-in-out infinite alternate;
}
.scn-lotophagi-land .sea {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3f8db8 0%, #2a6d94 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: ll-sea 12s ease-in-out infinite alternate;
}
.scn-lotophagi-land .shore {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #e8d5a3 0%, #c9b078 100%);
  border-radius: 60% 40% 0 0 / 80% 20% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.15);
}
.scn-lotophagi-land .lotus-flower {
  position: absolute; bottom: 22%; width: 20px; height: 28px;
  background: radial-gradient(ellipse, #f2cfb3 0%, #dba07a 70%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: ll-lotus 6s ease-in-out infinite;
}
.scn-lotophagi-land .lotus-flower.a { left: 20%; animation-delay: 0s; }
.scn-lotophagi-land .lotus-flower.b { left: 45%; animation-delay: -3s; }
.scn-lotophagi-land .figures {
  position: absolute; bottom: 18%; height: 40px; width: 16px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f130a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: ll-fig 8s ease-in-out infinite;
}
.scn-lotophagi-land .figures.pos-1 { left: 30%; animation-delay: 0s; }
.scn-lotophagi-land .figures.pos-2 { left: 55%; animation-delay: -4s; }
.scn-lotophagi-land .mist {
  position: absolute; bottom: 30%; left: -10%; width: 120%; height: 30%;
  background: radial-gradient(ellipse at 30% 100%, rgba(255,255,230,0.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: ll-mist 60s linear infinite;
}
@keyframes ll-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ll-sun { 0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 40px 20px rgba(252,208,74,0.3); } 50% { transform: translate(5px, -3px) scale(1.02); box-shadow: 0 0 60px 30px rgba(252,208,74,0.5); } 100% { transform: translate(0, 0) scale(1); box-shadow: 0 0 40px 20px rgba(252,208,74,0.3); } }
@keyframes ll-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ll-lotus { 0% { transform: rotate(-5deg) scale(1); opacity:0.9 } 50% { transform: rotate(3deg) scale(1.05); opacity:1 } 100% { transform: rotate(-5deg) scale(1); opacity:0.9 } }
@keyframes ll-fig { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes ll-mist { 0% { transform: translateX(0) } 100% { transform: translateX(-20%) } }

/* Scene 2: cyclops-island-description */
.scn-cyclops-island-description {
  background: linear-gradient(180deg, #f5a623 0%, #e87a3a 20%, #d45d2a 50%, #7a3b1a 100%),
              radial-gradient(ellipse at 70% 30%, #ffe066 0%, transparent 60%);
}
.scn-cyclops-island-description .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fdd48a 0%, transparent 100%);
  animation: ci-sky 18s ease-in-out infinite alternate;
}
.scn-cyclops-island-description .sun-harsh {
  position: absolute; top: 5%; left: 70%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff5c0 0%, #f5a623 50%, transparent 75%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(245,166,35,0.6), 0 0 120px 60px rgba(212,93,42,0.3);
  animation: ci-sun 4s ease-in-out infinite alternate;
}
.scn-cyclops-island-description .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b4226 0%, #3f2412 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.5);
  animation: ci-hills 15s ease-in-out infinite alternate;
}
.scn-cyclops-island-description .vineyard {
  position: absolute; bottom: 27%; left: 10%; right: 20%; height: 18%;
  background: repeating-linear-gradient(45deg, #4c3320 0px, #4c3320 8px, #35230f 8px, #35230f 16px);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  animation: ci-vine 12s ease-in-out infinite;
}
.scn-cyclops-island-description .giant-silhouette {
  position: absolute; bottom: 28%; left: 55%; width: 80px; height: 150px;
  background: linear-gradient(180deg, #1a0e05 0%, #2d1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ci-giant 8s ease-in-out infinite alternate;
  box-shadow: -10px 0 30px rgba(0,0,0,0.6);
}
.scn-cyclops-island-description .shadow-stripe {
  position: absolute; bottom: 30%; left: 20%; width: 200px; height: 10px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 30%, transparent 60%);
  filter: blur(4px);
  animation: ci-stripe 6s ease-in-out infinite alternate;
}
.scn-cyclops-island-description .dust-devil {
  position: absolute; bottom: 35%; left: 10%; width: 20px; height: 50px;
  background: radial-gradient(ellipse, rgba(200,150,80,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: ci-dust 10s linear infinite;
}
@keyframes ci-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ci-sun { 0% { transform: scale(1); box-shadow: 0 0 60px 30px rgba(245,166,35,0.4) } 50% { transform: scale(1.08); box-shadow: 0 0 100px 50px rgba(245,166,35,0.7) } 100% { transform: scale(1); box-shadow: 0 0 60px 30px rgba(245,166,35,0.4) } }
@keyframes ci-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes ci-vine { 0% { background-position: 0 0; opacity:0.9 } 50% { background-position: 10px 5px; opacity:1 } 100% { background-position: 0 0; opacity:0.9 } }
@keyframes ci-giant { 0% { transform: rotate(-2deg) scale(1); opacity:0.85 } 50% { transform: rotate(1deg) scale(1.03); opacity:1 } 100% { transform: rotate(-2deg) scale(1); opacity:0.85 } }
@keyframes ci-stripe { 0% { transform: translateX(0) skewX(0deg) } 50% { transform: translateX(30px) skewX(10deg) } 100% { transform: translateX(0) skewX(0deg) } }
@keyframes ci-dust { 0% { transform: translate(0, 0) rotate(0deg) } 33% { transform: translate(20px, -10px) rotate(120deg) } 66% { transform: translate(-10px, -5px) rotate(240deg) } 100% { transform: translate(0, 0) rotate(360deg) } }

/* Scene 3: cyclops-island-landing */
.scn-cyclops-island-landing {
  background: linear-gradient(180deg, #0d141c 0%, #151f2a 30%, #1c2c3a 60%, #0f171f 100%),
              radial-gradient(ellipse at 50% 30%, #2a4050 0%, transparent 70%);
}
.scn-cyclops-island-landing .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0f15 0%, transparent 100%);
  animation: ci3-sky 25s ease-in-out infinite alternate;
}
.scn-cyclops-island-landing .moon {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0e8f0 0%, #a0b8d0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(160,184,208,0.3);
  animation: ci3-moon 12s ease-in-out infinite alternate;
}
.scn-cyclops-island-landing .cliff {
  position: absolute; bottom: 30%; left: 0; right: 20%; height: 50%;
  background: linear-gradient(180deg, #1f2e3a 0%, #0f171f 100%);
  border-radius: 0 80% 0 0 / 0 60% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.8);
  animation: ci3-cliff 20s ease-in-out infinite alternate;
}
.scn-cyclops-island-landing .cave-mouth {
  position: absolute; bottom: 40%; left: 15%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, #050a0f 0%, #0a111a 70%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: inset 0 0 20px #000;
  animation: ci3-cave 15s ease-in-out infinite;
}
.scn-cyclops-island-landing .ship {
  position: absolute; bottom: 28%; left: 50%; width: 100px; height: 30px;
  background: linear-gradient(180deg, #3c2818 0%, #1f1005 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: ci3-ship 8s ease-in-out infinite alternate;
}
.scn-cyclops-island-landing .lantern-glow {
  position: absolute; bottom: 35%; left: 52%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd170 0%, #e6993a 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #e6993a, 0 0 60px 20px rgba(230,153,58,0.4);
  animation: ci3-glow 3s ease-in-out infinite alternate;
}
.scn-cyclops-island-landing .wave {
  position: absolute; bottom: 22%; width: 200%; height: 20px;
  background: linear-gradient(90deg, transparent 0%, #2a4050 20%, #1c2c3a 50%, #2a4050 80%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ci3-wave 10s linear infinite;
}
.scn-cyclops-island-landing .wave.left { left: -50%; animation-delay: 0s; }
.scn-cyclops-island-landing .wave.right { left: -30%; animation-delay: -5s; }
@keyframes ci3-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes ci3-moon { 0% { transform: translateX(0) scale(1); opacity:0.85 } 50% { transform: translateX(5px) scale(1.02); opacity:1 } 100% { transform: translateX(0) scale(1); opacity:0.85 } }
@keyframes ci3-cliff { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes ci3-cave { 0% { transform: scale(1); opacity:0.9 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(1); opacity:0.9 } }
@keyframes ci3-ship { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes ci3-glow { 0% { box-shadow: 0 0 20px 5px #e6993a, 0 0 40px 10px rgba(230,153,58,0.3); opacity:0.9 } 50% { box-shadow: 0 0 40px 15px #ffd170, 0 0 80px 25px rgba(255,209,112,0.5); opacity:1 } 100% { box-shadow: 0 0 20px 5px #e6993a, 0 0 40px 10px rgba(230,153,58,0.3); opacity:0.9 } }
@keyframes ci3-wave { 0% { transform: translateX(0) } 100% { transform: translateX(-50%) } }

/* Scene 4: cyclops-island-hunting */
.scn-cyclops-island-hunting {
  background: linear-gradient(180deg, #f2d8b0 0%, #e8b88a 20%, #c98a5a 50%, #a06540 100%),
              radial-gradient(ellipse at 30% 15%, #ffe6b0 0%, transparent 60%);
}
.scn-cyclops-island-hunting .dawn-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fce4c0 0%, transparent 100%);
  animation: ci4-dawn 25s ease-in-out infinite alternate;
}
.scn-cyclops-island-hunting .sunrise {
  position: absolute; top: 5%; left: 25%; width: 70px; height: 70px;
  background: radial-gradient(circle, #ffe066 0%, #fcc86a 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(252,200,106,0.5), 0 0 120px 60px rgba(252,200,106,0.2);
  animation: ci4-sun 20s ease-in-out infinite alternate;
}
.scn-cyclops-island-hunting .hills-dawn {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5635 0%, #52371f 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.3);
  animation: ci4-hills 15s ease-in-out infinite alternate;
}
.scn-cyclops-island-hunting .goat {
  position: absolute; bottom: 25%; height: 30px; width: 24px;
  background: radial-gradient(ellipse at 50% 30%, #d1b28a 0%, #a07c5c 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: ci4-goat 6s ease-in-out infinite;
}
.scn-cyclops-island-hunting .goat.left { left: 30%; animation-delay: 0s; }
.scn-cyclops-island-hunting .goat.right { left: 60%; animation-delay: -3s; }
.scn-cyclops-island-hunting .hunter {
  position: absolute; bottom: 22%; height: 50px; width: 20px;
  background: linear-gradient(180deg, #2d1a0a 0%, #160b03 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ci4-hunter 8s ease-in-out infinite;
}
.scn-cyclops-island-hunting .hunter.one { left: 40%; animation-delay: 0s; }
.scn-cyclops-island-hunting .hunter.two { left: 55%; animation-delay: -4s; }
.scn-cyclops-island-hunting .spear {
  position: absolute; bottom: 30%; left: 42%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #5c3d1f 0%, #2f1d0b 100%);
  border-radius: 20%;
  transform: rotate(-15deg);
  animation: ci4-spear 4s ease-in-out infinite alternate;
}
@keyframes ci4-dawn { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ci4-sun { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 60px 30px rgba(252,200,106,0.4); } 50% { transform: translateY(-5px) scale(1.03); box-shadow: 0 0 80px 40px rgba(252,200,106,0.6); } 100% { transform: translateY(0) scale(1); box-shadow: 0 0 60px 30px rgba(252,200,106,0.4); } }
@keyframes ci4-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ci4-goat { 0% { transform: rotate(-5deg) translateX(0) } 25% { transform: rotate(2deg) translateX(8px) } 50% { transform: rotate(-3deg) translateX(12px) } 75% { transform: rotate(1deg) translateX(8px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes ci4-hunter { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(6px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(12px) translateY(0) rotate(-1deg) } 75% { transform: translateX(6px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes ci4-spear { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(2px) } 100% { transform: rotate(-15deg) translateX(0) } }

.scn-amphimedon-tells-ulysses-return {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1a10 40%, #0e0a08 100%),
    radial-gradient(ellipse at 30% 80%, #3a2518 0%, transparent 70%);
}
.scn-amphimedon-tells-ulysses-return .bg {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #2a1a10 0%, #1a1210 100%);
  filter: blur(2px);
}
.scn-amphimedon-tells-ulysses-return .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #120c08 0%, #1e1410 50%, #2a1a10 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-amphimedon-tells-ulysses-return .hearth {
  position:absolute; bottom:20%; left:25%; width:50px; height:30px;
  background: linear-gradient(180deg, #3a2518 0%, #1e1410 100%);
  border-radius: 40% 40% 20% 20%;
  transform: scaleX(1.4);
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.5);
}
.scn-amphimedon-tells-ulysses-return .fire {
  position:absolute; bottom:24%; left:30%; width:20px; height:30px;
  background: radial-gradient(ellipse at 50% 60%, #ff8844 0%, #cc4422 50%, #221100 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px #cc4422, 0 0 40px 16px #882211;
  animation: am1-fire 0.8s ease-in-out infinite alternate;
}
.scn-amphimedon-tells-ulysses-return .figure {
  position:absolute; bottom:18%; left:50%; width:28px; height:60px;
  background: linear-gradient(180deg, #0a0806 0%, #1c1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: am1-figure 6s ease-in-out infinite;
}
.scn-amphimedon-tells-ulysses-return .staff {
  position:absolute; bottom:18%; left:54%; width:4px; height:50px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: am1-staff 6s ease-in-out infinite;
}
.scn-amphimedon-tells-ulysses-return .window {
  position:absolute; top:15%; right:15%; width:40px; height:60px;
  background: linear-gradient(135deg, #1a2a3a 0%, #0e1a28 100%);
  border: 3px solid #2a1810;
  border-radius: 4px;
  box-shadow: inset 0 0 10px #3a5a7a, 0 0 6px #182838;
  animation: am1-window 20s linear infinite;
}
@keyframes am1-fire {
  0% { transform: scale(1) translateY(0); opacity:.9; }
  50% { transform: scale(1.15) translateY(-3px); opacity:1; }
  100% { transform: scale(0.95) translateY(2px); opacity:.85; }
}
@keyframes am1-figure {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes am1-staff {
  0%,100% { transform: rotate(-10deg); }
  50% { transform: rotate(-7deg); }
}
@keyframes am1-window {
  0% { opacity:.6; }
  50% { opacity:1; }
  100% { opacity:.6; }
}

/* ---- scene 2 ---- */
.scn-amphimedon-tells-bow-contest {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1a10 50%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 80%);
}
.scn-amphimedon-tells-bow-contest .hall {
  position:absolute; inset:0;
  background: repeating-linear-gradient(90deg, transparent, transparent 8px, rgba(20,12,8,.3) 8px, rgba(20,12,8,.3) 10px);
}
.scn-amphimedon-tells-bow-contest .pillar-l {
  position:absolute; top:10%; left:20%; width:12px; height:80%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 6px;
  box-shadow: 6px 0 8px rgba(0,0,0,.5);
}
.scn-amphimedon-tells-bow-contest .pillar-r {
  position:absolute; top:10%; right:20%; width:12px; height:80%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 6px;
  box-shadow: -6px 0 8px rgba(0,0,0,.5);
}
.scn-amphimedon-tells-bow-contest .ulysses {
  position:absolute; bottom:18%; left:42%; width:32px; height:64px;
  background: linear-gradient(180deg, #0c0806 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: am2-ulysses 4s ease-in-out infinite;
}
.scn-amphimedon-tells-bow-contest .bow {
  position:absolute; bottom:30%; left:48%; width:8px; height:40px;
  background: radial-gradient(ellipse at 50% 0%, #8a6a4a 0%, #4a3020 100%);
  border-radius: 50%;
  transform: rotate(-30deg);
  animation: am2-bow 4s ease-in-out infinite alternate;
}
.scn-amphimedon-tells-bow-contest .arrow {
  position:absolute; bottom:42%; left:52%; width:4px; height:36px;
  background: linear-gradient(180deg, #a08060 0%, #6a4a2a 100%);
  border-radius: 2px;
  transform: rotate(45deg);
  transform-origin: bottom left;
  animation: am2-arrow 4s ease-in-out infinite;
}
.scn-amphimedon-tells-bow-contest .target {
  position:absolute; top:30%; right:25%; width:24px; height:24px;
  border-radius: 50%;
  background: radial-gradient(circle, #8a6a4a 0%, #4a3020 50%, #1a1008 100%);
  box-shadow: 0 0 8px 2px #4a3020;
  animation: am2-target 8s ease-in-out infinite;
}
.scn-amphimedon-tells-bow-contest .suitor {
  position:absolute; bottom:20%; right:30%; width:22px; height:50px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: am2-suitor 6s ease-in-out infinite;
}
@keyframes am2-ulysses {
  0%,100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2px) rotate(1deg); }
}
@keyframes am2-bow {
  0% { transform: rotate(-30deg) scaleY(1); }
  50% { transform: rotate(-20deg) scaleY(1.1); }
  100% { transform: rotate(-30deg) scaleY(1); }
}
@keyframes am2-arrow {
  0%,100% { transform: rotate(45deg) translateX(0); }
  50% { transform: rotate(40deg) translateX(4px); }
}
@keyframes am2-target {
  0%,100% { transform: scale(1); opacity:.8; }
  50% { transform: scale(1.1); opacity:1; }
}
@keyframes am2-suitor {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

/* ---- scene 3 ---- */
.scn-amphimedon-tells-massacre {
  background:
    linear-gradient(180deg, #1a0e0a 0%, #2a1410 40%, #0e0806 100%),
    radial-gradient(ellipse at 40% 50%, #3a1a12 0%, transparent 70%);
}
.scn-amphimedon-tells-massacre .dark-bg {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 60% 30%, #2a1810 0%, transparent 100%);
}
.scn-amphimedon-tells-massacre .floor-blood {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #2a0e0a 0%, #1a0e0a 50%, #120a08 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-amphimedon-tells-massacre .ulysses-fig {
  position:absolute; bottom:25%; left:35%; width:34px; height:68px;
  background: linear-gradient(180deg, #0a0604 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: am3-ulysses 3s ease-in-out infinite;
}
.scn-amphimedon-tells-massacre .bow2 {
  position:absolute; bottom:38%; left:40%; width:6px; height:30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%);
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: am3-bow 2s ease-in-out infinite alternate;
}
.scn-amphimedon-tells-massacre .arrow-flying {
  position:absolute; bottom:45%; left:50%; width:3px; height:25px;
  background: #a08060;
  border-radius: 2px;
  transform: rotate(30deg);
  animation: am3-arrow-fly 0.6s linear infinite;
}
.scn-amphimedon-tells-massacre .suitor-fall {
  position:absolute; bottom:35%; right:30%; width:22px; height:50px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: am3-fall 3s ease-in-out infinite;
}
.scn-amphimedon-tells-massacre .suitor-down {
  position:absolute; bottom:10%; right:20%; width:28px; height:20px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-40deg);
  animation: am3-down 4s ease-in-out infinite;
}
@keyframes am3-ulysses {
  0%,100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(3px) rotate(1deg); }
}
@keyframes am3-bow {
  0% { transform: rotate(-20deg) scaleX(1); }
  50% { transform: rotate(-15deg) scaleX(1.1); }
  100% { transform: rotate(-20deg) scaleX(1); }
}
@keyframes am3-arrow-fly {
  0% { transform: translateX(0) translateY(0) rotate(30deg); opacity:1; }
  100% { transform: translateX(30px) translateY(-20px) rotate(35deg); opacity:0; }
}
@keyframes am3-fall {
  0% { transform: rotate(0) translateY(0); opacity:1; }
  50% { transform: rotate(15deg) translateY(10px); opacity:.8; }
  100% { transform: rotate(30deg) translateY(25px); opacity:0; }
}
@keyframes am3-down {
  0%,100% { transform: rotate(-40deg) scaleX(1); }
  50% { transform: rotate(-45deg) scaleX(0.8); }
}

/* ---- scene 4 ---- */
.scn-agamemnon-praises-penelope {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1c14 40%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 70%, #3a281c 0%, transparent 80%);
}
.scn-agamemnon-praises-penelope .dark-room {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #1a1410 0%, transparent 100%);
}
.scn-agamemnon-praises-penelope .hearth-glow {
  position:absolute; bottom:20%; left:15%; width:40px; height:30px;
  background: radial-gradient(ellipse at 50% 60%, #c87840 0%, #884428 50%, #1a0e08 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #884428, 0 0 60px 20px #442010;
  animation: ag1-hearth 4s ease-in-out infinite alternate;
}
.scn-agamemnon-praises-penelope .loom {
  position:absolute; bottom:15%; left:50%; width:80px; height:70px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius: 6px;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: ag1-loom 20s ease-in-out infinite;
}
.scn-agamemnon-praises-penelope .penelope {
  position:absolute; bottom:18%; left:48%; width:24px; height:50px;
  background: linear-gradient(180deg, #3a2218 0%, #2a1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag1-penelope 4s ease-in-out infinite;
}
.scn-agamemnon-praises-penelope .thread {
  position:absolute; bottom:40%; left:50%; width:2px; height:40px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 1px;
  transform-origin: top center;
  animation: ag1-thread 3s ease-in-out infinite alternate;
}
.scn-agamemnon-praises-penelope .fire-sparks {
  position:absolute; bottom:35%; left:18%; width:4px; height:4px;
  background: radial-gradient(circle, #ffaa55 0%, #cc6633 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #cc6633;
  animation: ag1-spark 2s linear infinite;
}
.scn-agamemnon-praises-penelope .shadow-fig {
  position:absolute; top:30%; right:10%; width:20px; height:50px;
  background: linear-gradient(180deg, #0e0a08 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: ag1-shadow 8s ease-in-out infinite;
}
@keyframes ag1-hearth {
  0% { transform: scale(1) translateY(0); opacity:.9; }
  50% { transform: scale(1.1) translateY(-2px); opacity:1; }
  100% { transform: scale(0.95) translateY(1px); opacity:.85; }
}
@keyframes ag1-loom {
  0%,100% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(0.5deg); }
}
@keyframes ag1-penelope {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(2px) rotate(1deg); }
}
@keyframes ag1-thread {
  0% { transform: translateY(0) rotate(2deg); }
  100% { transform: translateY(-5px) rotate(-2deg); }
}
@keyframes ag1-spark {
  0% { transform: translateY(0) scale(1); opacity:1; }
  100% { transform: translateY(-30px) scale(0.5); opacity:0; }
}
@keyframes ag1-shadow {
  0%,100% { transform: translateY(0) scaleX(1); opacity:.7; }
  50% { transform: translateY(-2px) scaleX(1.05); opacity:1; }
}

/* telemachus-asks-to-retire – calm bright-interior */
.scn-telemachus-asks-to-retire {
  background: linear-gradient(180deg, #f5e6c8 0%, #e8d5a8 50%, #d4b884 100%),
              radial-gradient(ellipse at 50% 70%, #fff5e0 0%, transparent 60%);
}
.scn-telemachus-asks-to-retire .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0dbb5 0%, #d9c08b 100%); animation: tr1-room 12s ease-in-out infinite alternate;
}
.scn-telemachus-asks-to-retire .window-fr {
  position: absolute; top: 10%; left: 60%; width: 28%; height: 40%; background: linear-gradient(135deg, #c7b08a 0%, #a88d6b 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.15); animation: tr1-window 8s ease-in-out infinite alternate;
}
.scn-telemachus-asks-to-retire .window-light {
  position: absolute; top: 12%; left: 62%; width: 24%; height: 36%; background: radial-gradient(circle at 30% 20%, #ffe8b0 0%, #f5d080 40%, transparent 70%); filter: blur(4px); animation: tr1-light 10s ease-in-out infinite alternate;
}
.scn-telemachus-asks-to-retire .bed {
  position: absolute; bottom: 10%; left: 20%; width: 35%; height: 18%; background: linear-gradient(180deg, #b89b78 0%, #8a6f4e 100%); border-radius: 8px 8px 0 0; box-shadow: 0 4px 10px rgba(0,0,0,0.3); animation: tr1-bed 15s ease-in-out infinite alternate;
}
.scn-telemachus-asks-to-retire .figure-tel {
  position: absolute; bottom: 12%; left: 45%; width: 12%; height: 26%; background: linear-gradient(180deg, #d4b080 0%, #8c6c48 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tr1-figure 6s ease-in-out infinite;
}
.scn-telemachus-asks-to-retire .rug {
  position: absolute; bottom: 8%; left: 15%; width: 70%; height: 4%; background: linear-gradient(90deg, #a06040 0%, #c08060 30%, #d09070 50%, #c08060 70%, #a06040 100%); border-radius: 4px; animation: tr1-rug 20s ease-in-out infinite alternate;
}
@keyframes tr1-room { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes tr1-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes tr1-light { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(0.98); } }
@keyframes tr1-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes tr1-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-1px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tr1-rug { 0% { background-position: 0% 0%; } 50% { background-position: 10% 0%; } 100% { background-position: 0% 0%; } }

/* guests-taken-to-bed – calm dim-interior */
.scn-guests-taken-to-bed {
  background: linear-gradient(180deg, #2c2a3a 0%, #1e1c2e 50%, #141220 100%),
              radial-gradient(ellipse at 40% 30%, #3b3545 0%, transparent 60%);
}
.scn-guests-taken-to-bed .room-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #252233 0%, #16131f 100%); animation: gtb-room 15s ease-in-out infinite alternate;
}
.scn-guests-taken-to-bed .torch {
  position: absolute; top: 5%; left: 75%; width: 6px; height: 30px; background: linear-gradient(180deg, #c08040 0%, #8a5a20 100%); border-radius: 2px; transform-origin: bottom center; animation: gtb-torch 1.5s ease-in-out infinite alternate;
}
.scn-guests-taken-to-bed .torch-glow {
  position: absolute; top: 2%; left: 70%; width: 20%; height: 40%; background: radial-gradient(circle at 50% 30%, #ffd070 0%, #f0a030 30%, transparent 70%); filter: blur(8px); animation: gtb-glow 2s ease-in-out infinite alternate;
}
.scn-guests-taken-to-bed .bed1 {
  position: absolute; bottom: 12%; left: 10%; width: 30%; height: 15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1c10 100%); border-radius: 6px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: gtb-bed 18s ease-in-out infinite alternate;
}
.scn-guests-taken-to-bed .bed2 {
  position: absolute; bottom: 12%; left: 55%; width: 30%; height: 15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 6px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: gtb-bed 18s ease-in-out infinite alternate-reverse;
}
.scn-guests-taken-to-bed .rug-red {
  position: absolute; bottom: 8%; left: 8%; width: 84%; height: 4%; background: linear-gradient(90deg, #7a2a20 0%, #a04030 30%, #b05040 50%, #a04030 70%, #7a2a20 100%); border-radius: 3px; animation: gtb-rug 22s ease-in-out infinite alternate;
}
.scn-guests-taken-to-bed .maid-figure {
  position: absolute; bottom: 15%; left: 50%; width: 8%; height: 22%; background: linear-gradient(180deg, #3a3028 0%, #221a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gtb-maid 5s ease-in-out infinite;
}
@keyframes gtb-room { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.82; } }
@keyframes gtb-torch { 0% { transform: rotate(-3deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes gtb-glow { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.75; transform: scale(0.98); } }
@keyframes gtb-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes gtb-rug { 0% { background-position: 0% 0%; } 50% { background-position: 8% 0%; } 100% { background-position: 0% 0%; } }
@keyframes gtb-maid { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* menelaus-asks-telemachus – calm dawn */
.scn-menelaus-asks-telemachus {
  background: linear-gradient(180deg, #e8d5b0 0%, #c8b58a 40%, #a89070 100%),
              radial-gradient(ellipse at 30% 20%, #ffe0a0 0%, transparent 60%);
}
.scn-menelaus-asks-telemachus .room-dawn {
  position: absolute; inset: 0; background: linear-gradient(180deg, #eddbb8 0%, #ccb48e 100%); animation: mat-room 10s ease-in-out infinite alternate;
}
.scn-menelaus-asks-telemachus .window-dawn {
  position: absolute; top: 8%; left: 55%; width: 35%; height: 45%; background: linear-gradient(135deg, #c8b090 0%, #a88a6a 100%); border-radius: 4px; box-shadow: inset 0 0 15px rgba(0,0,0,0.1); animation: mat-window 12s ease-in-out infinite alternate;
}
.scn-menelaus-asks-telemachus .sunrise-glow {
  position: absolute; top: 12%; left: 58%; width: 28%; height: 35%; background: radial-gradient(circle at 20% 30%, #ffe680 0%, #f0b040 40%, transparent 70%); filter: blur(6px); animation: mat-sunrise 8s ease-in-out infinite alternate;
}
.scn-menelaus-asks-telemachus .figure-men {
  position: absolute; bottom: 14%; left: 38%; width: 14%; height: 28%; background: linear-gradient(180deg, #b09070 0%, #7a6040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mat-men 9s ease-in-out infinite;
}
.scn-menelaus-asks-telemachus .figure-tel {
  position: absolute; bottom: 14%; left: 58%; width: 12%; height: 26%; background: linear-gradient(180deg, #c8a880 0%, #8c6c48 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mat-tel 7s ease-in-out infinite;
}
.scn-menelaus-asks-telemachus .table {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 12%; background: linear-gradient(180deg, #8a7050 0%, #5a4028 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: mat-table 14s ease-in-out infinite alternate;
}
.scn-menelaus-asks-telemachus .chair1 {
  position: absolute; bottom: 11%; left: 30%; width: 8%; height: 16%; background: linear-gradient(180deg, #705838 0%, #4a3220 100%); border-radius: 4px; animation: mat-chair 11s ease-in-out infinite alternate;
}
.scn-menelaus-asks-telemachus .chair2 {
  position: absolute; bottom: 11%; left: 62%; width: 8%; height: 16%; background: linear-gradient(180deg, #604828 0%, #3a2210 100%); border-radius: 4px; animation: mat-chair 11s ease-in-out infinite alternate-reverse;
}
@keyframes mat-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mat-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes mat-sunrise { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.04); } 100% { opacity: 0.75; transform: scale(0.98); } }
@keyframes mat-men { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(0.5deg); } 60% { transform: translateY(0) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mat-tel { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(1px) rotate(-0.5deg); } 50% { transform: translateY(0) rotate(0.5deg); } 75% { transform: translateY(-1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mat-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes mat-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* telemachus-explains-mission – tense dawn */
.scn-telemachus-explains-mission {
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 30% 20%, #e0c090 0%, transparent 60%);
}
.scn-telemachus-explains-mission .room-tense {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); animation: tem-room 6s ease-in-out infinite alternate;
}
.scn-telemachus-explains-mission .window-tense {
  position: absolute; top: 8%; left: 55%; width: 35%; height: 45%; background: linear-gradient(135deg, #a09070 0%, #7a6a50 100%); border-radius: 4px; filter: brightness(0.7); animation: tem-window 10s ease-in-out infinite alternate;
}
.scn-telemachus-explains-mission .dawn-sun {
  position: absolute; top: 10%; left: 58%; width: 28%; height: 35%; background: radial-gradient(circle at 20% 30%, #ffcc70 0%, #d09030 40%, transparent 70%); filter: blur(5px); animation: tem-sun 4s ease-in-out infinite alternate;
}
.scn-telemachus-explains-mission .figure-tel-agitated {
  position: absolute; bottom: 14%; left: 50%; width: 14%; height: 30%; background: linear-gradient(180deg, #c0a080 0%, #7a5a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tem-tel 2s ease-in-out infinite;
}
.scn-telemachus-explains-mission .figure-men-listening {
  position: absolute; bottom: 14%; left: 35%; width: 14%; height: 28%; background: linear-gradient(180deg, #a08060 0%, #604028 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tem-men 8s ease-in-out infinite;
}
.scn-telemachus-explains-mission .table-tense {
  position: absolute; bottom: 10%; left: 32%; width: 36%; height: 12%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1c10 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: tem-table 3s ease-in-out infinite alternate;
}
.scn-telemachus-explains-mission .shadow-sweep {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%; background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 100%); animation: tem-shadow 5s ease-in-out infinite alternate;
}
@keyframes tem-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes tem-window { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.02) scaleX(1.01); } 100% { transform: scaleY(1) scaleX(1); } }
@keyframes tem-sun { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes tem-tel { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-4px) translateY(0) rotate(-2deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes tem-men { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(1px) rotate(0.5deg); } 60% { transform: translateY(0) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tem-table { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes tem-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }

.scn-ulysses-distrusts {
  background: 
    linear-gradient(180deg, #4a7aa8 0%, #8bb2d9 30%, #e0c480 60%, #c89a4a 100%),
    radial-gradient(ellipse at 80% 20%, #ffd580 0%, transparent 50%);
}
.scn-ulysses-distrusts .sky {
  position:absolute; inset:0 0 60% 0;
  background: linear-gradient(180deg, #2b5a8a 0%, #6a9ec4 30%, transparent 100%);
  animation: ud-sky 6s ease-in-out infinite alternate;
}
.scn-ulysses-distrusts .sun {
  position:absolute; top:12%; left:70%;
  width:80px; height:80px;
  background: radial-gradient(circle, #ffe680 0%, #c8a040 60%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 80px 40px #ffd060;
  animation: ud-sun 4s ease-in-out infinite alternate;
}
.scn-ulysses-distrusts .cloud {
  position:absolute;
  width:100px; height:30px;
  background: rgba(255,255,240,0.6);
  border-radius:50%;
  filter: blur(8px);
}
.scn-ulysses-distrusts .cloud-a {
  top:20%; left:0;
  animation: ud-drift-a 40s linear infinite;
}
.scn-ulysses-distrusts .cloud-b {
  top:10%; right:0;
  width:70px; height:20px;
  animation: ud-drift-b 50s linear infinite reverse;
}
.scn-ulysses-distrusts .sea {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #2c647a 0%, #1a3e4e 100%);
  animation: ud-sea 8s ease-in-out infinite alternate;
}
.scn-ulysses-distrusts .cliff {
  position:absolute; bottom:30%; left:10%;
  width:30%; height:45%;
  background: linear-gradient(135deg, #6b5740 0%, #3d2b1a 100%);
  border-radius: 0 20% 0 40% / 0 30% 0 20%;
  box-shadow: -10px 10px 20px rgba(0,0,0,0.5);
}
.scn-ulysses-distrusts .figure {
  position:absolute; bottom:38%; left:18%;
  width:14px; height:32px;
  background: #1a2028;
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ud-figure 3s ease-in-out infinite;
}
.scn-ulysses-distrusts .wave {
  position:absolute; bottom:10%;
  width:100%; height:12px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  border-radius: 20%;
  filter: blur(4px);
}
.scn-ulysses-distrusts .wave-1 { animation: ud-wave 7s ease-in-out infinite; }
.scn-ulysses-distrusts .wave-2 { bottom:20%; animation: ud-wave 9s ease-in-out infinite reverse; }
@keyframes ud-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ud-sun { 0% { transform: scale(0.9); box-shadow: 0 0 60px 20px #ffd060 } 50% { transform: scale(1.05); box-shadow: 0 0 100px 50px #ffe680 } 100% { transform: scale(0.95); box-shadow: 0 0 70px 30px #c8a040 } }
@keyframes ud-drift-a { 0% { transform: translateX(-120px) } 50% { transform: translateX(40vw) } 100% { transform: translateX(120vw) } }
@keyframes ud-drift-b { 0% { transform: translateX(0) } 50% { transform: translateX(-30vw) } 100% { transform: translateX(-100vw) } }
@keyframes ud-sea { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes ud-figure { 0% { transform: translateX(0) rotate(2deg) } 30% { transform: translateX(5px) rotate(-1deg) } 60% { transform: translateX(10px) rotate(1deg) } 100% { transform: translateX(15px) rotate(-2deg) } }
@keyframes ud-wave { 0% { transform: translateX(-20px) scaleY(1) } 50% { transform: translateX(20px) scaleY(1.3) } 100% { transform: translateX(-20px) scaleY(1) } }

.scn-calypso-swears-oath {
  background: 
    linear-gradient(180deg, #b8d4e8 0%, #e8f0d8 40%, #a8c08a 100%),
    radial-gradient(ellipse at 50% 30%, #fffbe0 0%, transparent 60%);
}
.scn-calypso-swears-oath .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #8fbcd4 0%, #d8e8f0 50%, transparent 100%);
  animation: cs-sky 10s ease-in-out infinite alternate;
}
.scn-calypso-swears-oath .sun {
  position:absolute; top:15%; left:20%;
  width:50px; height:50px;
  background: radial-gradient(circle, #fff4c0 0%, #f0d070 60%, transparent 80%);
  border-radius:50%;
  box-shadow: 0 0 60px 30px #f0d070;
  animation: cs-sun 12s ease-in-out infinite alternate;
}
.scn-calypso-swears-oath .river {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #6a9ec4 0%, #4a7aa8 100%);
  animation: cs-river 8s ease-in-out infinite alternate;
}
.scn-calypso-swears-oath .bank-left {
  position:absolute; bottom:30%; left:5%;
  width:40%; height:20%;
  background: linear-gradient(180deg, #6b8a4a 0%, #3d5e2a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-calypso-swears-oath .bank-right {
  position:absolute; bottom:30%; right:5%;
  width:40%; height:20%;
  background: linear-gradient(180deg, #6b8a4a 0%, #3d5e2a 100%);
  border-radius: 70% 30% 0 0 / 50% 50% 0 0;
}
.scn-calypso-swears-oath .tree {
  position:absolute; bottom:50%; left:30%;
  width:20px; height:60px;
  background: #4a3a2a;
  border-radius: 10px;
  box-shadow: -5px 0 10px rgba(0,0,0,0.3);
  animation: cs-tree 15s ease-in-out infinite;
}
.scn-calypso-swears-oath .tree::before {
  content:''; position:absolute; top:-30px; left:-20px;
  width:60px; height:50px;
  background: radial-gradient(ellipse, #8ab06a 0%, #5a7a3a 100%);
  border-radius:50%;
}
.scn-calypso-swears-oath .figure {
  position:absolute; bottom:32%;
  width:14px; height:32px;
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  background: #2a1a1a;
  animation: cs-figure 4s ease-in-out infinite;
}
.scn-calypso-swears-oath .goddess { left:45%; background: #4a2a3a; }
.scn-calypso-swears-oath .ulysses { left:55%; background: #1a1a2a; animation-delay: 0.5s; }
.scn-calypso-swears-oath .flower {
  position:absolute; bottom:35%; left:35%;
  width:8px; height:8px;
  background: radial-gradient(circle, #e8a0a0 0%, #c07070 100%);
  border-radius:50%;
  box-shadow: 0 0 6px 2px rgba(200,100,100,0.5);
  animation: cs-flower 6s ease-in-out infinite alternate;
}
@keyframes cs-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cs-sun { 0% { transform: scale(1); box-shadow: 0 0 40px 20px #f0d070 } 50% { transform: scale(1.1); box-shadow: 0 0 70px 35px #fff4c0 } 100% { transform: scale(1); box-shadow: 0 0 40px 20px #f0d070 } }
@keyframes cs-river { 0% { transform: scaleY(0.95) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }
@keyframes cs-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes cs-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cs-flower { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.7; transform: scale(0.9) } }

.scn-calypso-leads-ulysses-to-cave {
  background: 
    linear-gradient(180deg, #b0c8d8 0%, #d4dcc0 40%, #8a9a6a 100%),
    radial-gradient(ellipse at 60% 30%, #e8f0c0 0%, transparent 60%);
}
.scn-calypso-leads-ulysses-to-cave .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #8aacce 0%, #b8d4e0 60%, transparent 100%);
  animation: cl-sky 12s ease-in-out infinite alternate;
}
.scn-calypso-leads-ulysses-to-cave .mountains {
  position:absolute; bottom:35%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #5a7a5a 0%, #3d5e3d 100%);
  border-radius: 30% 40% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: cl-mountains 18s ease-in-out infinite alternate;
}
.scn-calypso-leads-ulysses-to-cave .path {
  position:absolute; bottom:15%; left:30%; right:30%; height:25%;
  background: linear-gradient(180deg, #c8b880 0%, #a08a5a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 80% 100%, 20% 100%);
  animation: cl-path 8s ease-in-out infinite alternate;
}
.scn-calypso-leads-ulysses-to-cave .cave {
  position:absolute; bottom:25%; left:50%; transform:translateX(-50%);
  width:80px; height:60px;
  background: radial-gradient(ellipse at 50% 100%, #2a1a1a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-calypso-leads-ulysses-to-cave .figure {
  position:absolute; bottom:20%;
  width:14px; height:32px;
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  background: #1a1a2a;
  animation: cl-figure 3s ease-in-out infinite;
}
.scn-calypso-leads-ulysses-to-cave .leader { left:42%; background: #4a2a3a; }
.scn-calypso-leads-ulysses-to-cave .follower { left:50%; background: #2a1a1a; animation-delay: 0.3s; }
.scn-calypso-leads-ulysses-to-cave .bush {
  position:absolute; bottom:22%;
  width:40px; height:30px;
  background: radial-gradient(ellipse, #5a8a3a 0%, #2a5e1a 100%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-calypso-leads-ulysses-to-cave .left { left:20%; }
.scn-calypso-leads-ulysses-to-cave .right { right:20%; }
.scn-calypso-leads-ulysses-to-cave .rock {
  position:absolute; bottom:15%; left:15%;
  width:30px; height:20px;
  background: linear-gradient(135deg, #6b5a4a 0%, #3d2b1a 100%);
  border-radius: 30% 70% 20% 80%;
  box-shadow: 0 5px 10px rgba(0,0,0,0.4);
}
@keyframes cl-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cl-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cl-path { 0% { transform: scaleX(0.95) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }
@keyframes cl-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(4px) rotate(2deg) } 60% { transform: translateX(8px) rotate(-1deg) } 100% { transform: translateX(12px) rotate(0deg) } }

.scn-calypso-tempts-again {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #6a4a2a 40%, #c8a060 100%),
    radial-gradient(ellipse at 50% 30%, #e0b060 0%, transparent 70%);
}
.scn-calypso-tempts-again .wall-bg {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #6a4a2a 100%);
  animation: ct-wall 20s ease-in-out infinite alternate;
}
.scn-calypso-tempts-again .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-calypso-tempts-again .hearth {
  position:absolute; bottom:20%; left:50%; transform:translateX(-50%);
  width:60px; height:40px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.5);
}
.scn-calypso-tempts-again .fire {
  position:absolute; bottom:22%; left:50%; transform:translateX(-50%);
  width:24px; height:30px;
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #ff6a20 40%, #c03010 70%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 15px #ff6a20, 0 0 60px 30px rgba(255,106,32,0.4);
  animation: ct-fire 2s ease-in-out infinite alternate;
}
.scn-calypso-tempts-again .table {
  position:absolute; bottom:15%; left:40%;
  width:50px; height:6px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 10px 10px rgba(0,0,0,0.3);
}
.scn-calypso-tempts-again .food {
  position:absolute; bottom:20%; left:43%;
  width:12px; height:8px;
  background: radial-gradient(circle, #e8c080 0%, #c8a060 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: ct-food 5s ease-in-out infinite alternate;
}
.scn-calypso-tempts-again .figure {
  position:absolute; bottom:10%;
  width:16px; height:36px;
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  background: #1a1a2a; /* silhouette */
  animation: ct-figure 4s ease-in-out infinite;
}
.scn-calypso-tempts-again .calypso { left:35%; animation-delay: 0s; }
.scn-calypso-tempts-again .ulysses { left:55%; animation-delay: 0.5s; background: #2a1a1a; }
.scn-calypso-tempts-again .lantern {
  position:absolute; bottom:30%; left:70%;
  width:8px; height:12px;
  background: radial-gradient(circle, #f0c080 0%, #b08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 6px #c08040;
  animation: ct-lantern 3s ease-in-out infinite alternate;
}
@keyframes ct-wall { 0% { opacity:0.9 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes ct-fire { 0% { transform: scaleY(0.9) translateY(0); box-shadow: 0 0 20px 10px #ff6a20 } 50% { transform: scaleY(1.2) translateY(-2px); box-shadow: 0 0 40px 20px #ffa040 } 100% { transform: scaleY(0.95) translateY(0); box-shadow: 0 0 20px 10px #ff6a20 } }
@keyframes ct-food { 0% { transform: scale(0.9) } 50% { transform: scale(1.1) } 100% { transform: scale(0.9) } }
@keyframes ct-figure { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ct-lantern { 0% { opacity:0.7; box-shadow: 0 0 8px 4px #c08040 } 50% { opacity:1; box-shadow: 0 0 16px 8px #e0b060 } 100% { opacity:0.7; box-shadow: 0 0 8px 4px #c08040 } }

.scn-council-of-gods-again {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b88a 40%, #a88a60 100%), radial-gradient(ellipse at 70% 30%, #ffd700 0%, transparent 60%);
}
.scn-council-of-gods-again .hall-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,255,220,.4) 0%, rgba(200,170,130,.2) 100%);
  animation: cga-hallbg 20s ease-in-out infinite alternate;
}
.scn-council-of-gods-again .pillar {
  position: absolute; bottom: 0; width: 20px; height: 80%; background: linear-gradient(90deg, #c4a882 0%, #e8d5b0 50%, #c4a882 100%);
  border-radius: 4px; box-shadow: 0 0 10px rgba(0,0,0,.15);
}
.scn-council-of-gods-again .pillar-l { left: 8%; }
.scn-council-of-gods-again .pillar-r { right: 8%; }
.scn-council-of-gods-again .jove-throne {
  position: absolute; bottom: 18%; left: 38%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #b8956a 0%, #7a5c3a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.4);
  animation: cga-throne 12s ease-in-out infinite;
}
.scn-council-of-gods-again .jove-figure {
  position: absolute; bottom: 18%; left: 38%; width: 40px; height: 90px; margin-left: 10px;
  background: radial-gradient(ellipse 70% 50% at 50% 30%, #f5f0e0 0%, #d4c4a0 60%, #8a7a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cga-jove 8s ease-in-out infinite alternate;
}
.scn-council-of-gods-again .minerva-figure {
  position: absolute; bottom: 20%; right: 30%; width: 35px; height: 80px;
  background: radial-gradient(ellipse 60% 50% at 50% 30%, #e8ddd0 0%, #b0a090 60%, #706050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cga-minerva 10s ease-in-out infinite alternate;
}
.scn-council-of-gods-again .divine-glow {
  position: absolute; top: 10%; left: 35%; width: 120px; height: 120px;
  background: radial-gradient(circle, #ffd700 0%, transparent 70%);
  opacity: .6; filter: blur(20px);
  animation: cga-glow 6s ease-in-out infinite alternate;
}
@keyframes cga-hallbg { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes cga-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cga-jove { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cga-minerva { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes cga-glow { 0% { opacity: .5; transform: scale(.95); } 50% { opacity: .8; transform: scale(1.1); } 100% { opacity: .6; transform: scale(1.0); } }

.scn-minerva-complains-again {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 40%, #b8956a 100%), radial-gradient(ellipse at 30% 50%, #ffd700 0%, transparent 70%);
}
.scn-minerva-complains-again .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,235,200,.3) 0%, rgba(180,150,110,.1) 100%);
  animation: mca-roombg 25s ease-in-out infinite alternate;
}
.scn-minerva-complains-again .minerva-body {
  position: absolute; bottom: 15%; left: 35%; width: 55px; height: 100px;
  background: radial-gradient(ellipse 70% 60% at 50% 30%, #f0e8dc 0%, #b8a898 60%, #7a685a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  animation: mca-body 8s ease-in-out infinite alternate;
}
.scn-minerva-complains-again .minerva-head {
  position: absolute; bottom: 60%; left: 42%; width: 30px; height: 35px;
  background: radial-gradient(ellipse 60% 50% at 50% 40%, #f5f0e5 0%, #c0a890 80%, #8a7260 100%);
  border-radius: 50%;
  animation: mca-head 6s ease-in-out infinite alternate;
}
.scn-minerva-complains-again .minerva-arm {
  position: absolute; bottom: 35%; left: 20%; width: 40px; height: 12px;
  background: linear-gradient(90deg, #c0a898 0%, #e0d0b8 50%, #c0a898 100%);
  border-radius: 6px;
  transform-origin: right center;
  animation: mca-arm 4s ease-in-out infinite alternate;
}
.scn-minerva-complains-again .minerva-spear {
  position: absolute; bottom: 25%; left: 12%; width: 8px; height: 80px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 4px;
  transform: rotate(15deg);
  animation: mca-spear 5s ease-in-out infinite;
}
.scn-minerva-complains-again .aura {
  position: absolute; top: 20%; left: 30%; width: 150px; height: 150px;
  background: radial-gradient(circle, rgba(255,215,0,.4) 0%, transparent 70%);
  filter: blur(30px);
  animation: mca-aura 10s ease-in-out infinite alternate;
}
@keyframes mca-roombg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes mca-body { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mca-head { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes mca-arm { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(-20deg) scaleX(1.1); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes mca-spear { 0% { transform: rotate(12deg) translateX(0); } 50% { transform: rotate(18deg) translateX(2px); } 100% { transform: rotate(12deg) translateX(0); } }
@keyframes mca-aura { 0% { opacity: .4; transform: scale(.9); } 50% { opacity: .7; transform: scale(1.1); } 100% { opacity: .5; transform: scale(1.0); } }

.scn-jove-responds {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b08a 40%, #a08860 100%), radial-gradient(ellipse at 60% 40%, #ffd700 0%, transparent 60%);
}
.scn-jove-responds .chamber-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,240,210,.3) 0%, rgba(180,150,110,.2) 100%);
  animation: jr-chamberbg 18s ease-in-out infinite alternate;
}
.scn-jove-responds .jove-throne {
  position: absolute; bottom: 15%; left: 40%; width: 70px; height: 110px;
  background: linear-gradient(180deg, #c8a87a 0%, #8a6840 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.3);
  animation: jr-throne 14s ease-in-out infinite;
}
.scn-jove-responds .jove-profile {
  position: absolute; bottom: 30%; left: 42%; width: 30px; height: 60px;
  background: radial-gradient(ellipse 60% 50% at 50% 40%, #f0e8dc 0%, #c0a890 60%, #8a7260 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: jr-profile 6s ease-in-out infinite alternate;
}
.scn-jove-responds .jove-hand {
  position: absolute; bottom: 45%; left: 38%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #e0d0b8 0%, #b09880 100%);
  border-radius: 10px 10px 40% 40%;
  transform-origin: bottom center;
  animation: jr-hand 5s ease-in-out infinite alternate;
}
.scn-jove-responds .lightning-symbol {
  position: absolute; top: 10%; left: 55%; width: 40px; height: 60px;
  background: linear-gradient(135deg, #ffd700 0%, #ff8c00 100%);
  clip-path: polygon(50% 0%, 30% 40%, 60% 40%, 40% 100%, 70% 55%, 40% 55%);
  filter: blur(2px);
  animation: jr-lightning 3s ease-in-out infinite;
}
.scn-jove-responds .curtain {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(160,120,80,.5) 30%, rgba(120,90,60,.8) 100%);
  border-radius: 0 0 0 40%;
  animation: jr-curtain 30s ease-in-out infinite alternate;
}
@keyframes jr-chamberbg { 0% { opacity: .7; } 50% { opacity: .95; } 100% { opacity: .75; } }
@keyframes jr-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes jr-profile { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(-2px) rotate(1deg); } 100% { transform: scaleX(-1) translateX(0); } }
@keyframes jr-hand { 0% { transform: rotate(0deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(0deg); } }
@keyframes jr-lightning { 0% { opacity: .6; transform: scale(.9) rotate(-5deg); } 50% { opacity: 1; transform: scale(1.1) rotate(0deg); } 100% { opacity: .7; transform: scale(1) rotate(5deg); } }
@keyframes jr-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(0); } }

.scn-jove-sends-mercury-to-calypso {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b08a 40%, #a08860 100%), radial-gradient(ellipse at 80% 20%, #ffd700 0%, transparent 50%);
}
.scn-jove-sends-mercury-to-calypso .hallway-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, rgba(200,180,150,.3) 0%, rgba(150,120,90,.1) 100%);
  animation: jmc-hallbg 22s ease-in-out infinite alternate;
}
.scn-jove-sends-mercury-to-calypso .archway {
  position: absolute; top: 10%; left: 60%; width: 100px; height: 90%;
  background: linear-gradient(135deg, #d4b88a 0%, #a88a60 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0; clip-path: inset(0 0 0 0 round 0 0 0 0); /* keep rectangular bottom */
  box-shadow: -10px 0 20px rgba(0,0,0,.3);
  animation: jmc-archway 30s ease-in-out infinite alternate;
}
.scn-jove-sends-mercury-to-calypso .jove-pointing {
  position: absolute; bottom: 20%; left: 25%; width: 40px; height: 80px;
  background: radial-gradient(ellipse 60% 50% at 50% 30%, #f0e8dc 0%, #c0a890 60%, #8a7260 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jmc-jove 8s ease-in-out infinite alternate;
}
.scn-jove-sends-mercury-to-calypso .mercury-bowing {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 60px;
  background: radial-gradient(ellipse 60% 50% at 50% 30%, #e0d0b8 0%, #a89070 60%, #706050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: jmc-mercury 6s ease-in-out infinite alternate;
}
.scn-jove-sends-mercury-to-calypso .mercury-wings {
  position: absolute; bottom: 35%; left: 48%; width: 30px; height: 15px;
  background: linear-gradient(180deg, #f5f0e5 0%, #d0c0a0 100%);
  border-radius: 50% 50% 50% 0;
  transform: rotate(-30deg);
  animation: jmc-wings 4s ease-in-out infinite alternate;
}
.scn-jove-sends-mercury-to-calypso .light-trail {
  position: absolute; top: 25%; left: 50%; width: 200px; height: 20px;
  background: linear-gradient(90deg, rgba(255,215,0,.6) 0%, rgba(255,215,0,0) 100%);
  filter: blur(8px);
  animation: jmc-trail 3s ease-in-out infinite;
}
@keyframes jmc-hallbg { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes jmc-archway { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes jmc-jove { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes jmc-mercury { 0% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(12deg) translateY(0); } }
@keyframes jmc-wings { 0% { transform: rotate(-35deg) scaleY(1); } 50% { transform: rotate(-25deg) scaleY(1.2); } 100% { transform: rotate(-35deg) scaleY(1); } }
@keyframes jmc-trail { 0% { transform: translateX(0) scaleX(1); opacity: .5; } 50% { transform: translateX(30px) scaleX(1.1); opacity: .8; } 100% { transform: translateX(0) scaleX(1); opacity: .5; } }

.scn-minerva-visits-ulysses {
  background: linear-gradient(180deg, #f3e7d3 0%, #dac8a8 40%, #b59a7a 100%),
              radial-gradient(ellipse at 70% 20%, rgba(255,230,180,0.4) 0%, transparent 60%);
}
.scn-minerva-visits-ulysses .chamber-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d4bfa0 0%, #c2a882 50%, #b0946e 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: muv-wall 12s ease-in-out infinite alternate;
}
.scn-minerva-visits-ulysses .window-arch {
  position: absolute;
  top: 8%;
  left: 50%;
  width: 90px;
  height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #f9e8c0 0%, #decba6 50%, #b89d7a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.2), 0 0 30px rgba(255,200,100,0.2);
  animation: muv-arch 8s ease-in-out infinite alternate;
}
.scn-minerva-visits-ulysses .sunbeam {
  position: absolute;
  top: 15%;
  left: 42%;
  width: 60px;
  height: 200px;
  background: linear-gradient(180deg, rgba(255,230,150,0.6) 0%, rgba(255,200,100,0) 100%);
  filter: blur(12px);
  transform: rotate(-10deg);
  animation: muv-beam 6s ease-in-out infinite alternate;
}
.scn-minerva-visits-ulysses .figure-minerva {
  position: absolute;
  bottom: 25%;
  right: 30%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #4a5a7a 0%, #2d3a54 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: muv-minerva 5s ease-in-out infinite alternate;
}
.scn-minerva-visits-ulysses .figure-ulysses {
  position: absolute;
  bottom: 28%;
  left: 28%;
  width: 32px;
  height: 68px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: muv-ulysses 6s ease-in-out infinite alternate;
}
.scn-minerva-visits-ulysses .table-altar {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 80px;
  height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 5px 5px 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: muv-table 10s ease-in-out infinite alternate;
}
.scn-minerva-visits-ulysses .column-left {
  position: absolute;
  bottom: 18%;
  left: 18%;
  width: 16px;
  height: 200px;
  background: linear-gradient(180deg, #c4aa88 0%, #a68a68 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
  animation: muv-column 14s ease-in-out infinite alternate;
}
.scn-minerva-visits-ulysses .column-right {
  position: absolute;
  bottom: 18%;
  right: 18%;
  width: 16px;
  height: 200px;
  background: linear-gradient(180deg, #c4aa88 0%, #a68a68 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.2);
  animation: muv-column 14s ease-in-out infinite alternate-reverse;
}
.scn-minerva-visits-ulysses .dust-motes {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 20%, rgba(255,220,150,0.15) 0%, transparent 50%);
  animation: muv-dust 20s linear infinite;
}
@keyframes muv-wall {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(0.95); }
}
@keyframes muv-arch {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes muv-beam {
  0% { opacity: 0.4; transform: rotate(-10deg) translateX(0); }
  50% { opacity: 0.8; transform: rotate(-8deg) translateX(5px); }
  100% { opacity: 0.5; transform: rotate(-12deg) translateX(-3px); }
}
@keyframes muv-minerva {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes muv-ulysses {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(3px) rotate(-1deg) scaleY(0.97); }
  100% { transform: translateX(0) rotate(1deg) scaleY(1); }
}
@keyframes muv-table {
  0% { box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
  50% { box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
  100% { box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
}
@keyframes muv-column {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes muv-dust {
  0% { background-position: 0% 0%; opacity: 0.6; }
  50% { background-position: 20% 10%; opacity: 0.8; }
  100% { background-position: 0% 0%; opacity: 0.6; }
}

.scn-ghosts-journey-to-hades {
  background: linear-gradient(180deg, #12101e 0%, #1a1828 40%, #0f0d1a 100%),
              radial-gradient(ellipse at 50% 80%, #1c1a2e 0%, transparent 70%);
}
.scn-ghosts-journey-to-hades .cave-mouth {
  position: absolute;
  top: 0;
  left: 20%;
  right: 20%;
  height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #2a253a 0%, #0f0d1a 70%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  animation: gjh-cave 15s ease-in-out infinite alternate;
}
.scn-ghosts-journey-to-hades .styx-river {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1c1a2e 0%, #2a2a4a 50%, #1c1a2e 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  filter: blur(3px);
  animation: gjh-styx 20s ease-in-out infinite alternate;
}
.scn-ghosts-journey-to-hades .ghost-procession {
  position: absolute;
  bottom: 20%;
  left: 10%;
  right: 10%;
  height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,180,220,0.1) 0%, transparent 70%);
  animation: gjh-ghosts 12s linear infinite;
}
.scn-ghosts-journey-to-hades .mercury-figure {
  position: absolute;
  bottom: 35%;
  left: 50%;
  width: 28px;
  height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a5a7a 0%, #3a3a5a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: gjh-mercury 8s ease-in-out infinite alternate;
}
.scn-ghosts-journey-to-hades .wand-glow {
  position: absolute;
  bottom: 48%;
  left: 52%;
  width: 8px;
  height: 8px;
  background: #b8a060;
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #b8a060, 0 0 40px 12px rgba(184,160,96,0.4);
  animation: gjh-wand 3s ease-in-out infinite alternate;
}
.scn-ghosts-journey-to-hades .whisp-1,
.scn-ghosts-journey-to-hades .whisp-2,
.scn-ghosts-journey-to-hades .whisp-3 {
  position: absolute;
  bottom: 28%;
  width: 14px;
  height: 40px;
  background: linear-gradient(180deg, rgba(200,200,240,0.3) 0%, transparent 100%);
  border-radius: 60% 40% 40% 60% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: gjh-whisp 10s ease-in-out infinite;
}
.scn-ghosts-journey-to-hades .whisp-1 { left: 20%; animation-delay: -2s; }
.scn-ghosts-journey-to-hades .whisp-2 { left: 40%; animation-delay: -5s; }
.scn-ghosts-journey-to-hades .whisp-3 { left: 70%; animation-delay: -8s; }
@keyframes gjh-cave {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(1); }
  100% { filter: brightness(0.9); }
}
@keyframes gjh-styx {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes gjh-ghosts {
  0% { transform: translateX(-10px); opacity: 0.2; }
  50% { transform: translateX(10px); opacity: 0.4; }
  100% { transform: translateX(-10px); opacity: 0.2; }
}
@keyframes gjh-mercury {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-5px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes gjh-wand {
  0% { box-shadow: 0 0 20px 4px #b8a060, 0 0 40px 8px rgba(184,160,96,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 8px #c0a870, 0 0 60px 16px rgba(192,168,112,0.5); opacity: 1; }
  100% { box-shadow: 0 0 20px 4px #b8a060, 0 0 40px 8px rgba(184,160,96,0.3); opacity: 0.8; }
}
@keyframes gjh-whisp {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.2; }
  50% { transform: translateY(-15px) rotate(10deg); opacity: 0.5; }
  100% { transform: translateY(0) rotate(0deg); opacity: 0.2; }
}

.scn-achilles-ghost-in-hades {
  background: linear-gradient(180deg, #0e0c1a 0%, #16142b 40%, #0a0815 100%),
              radial-gradient(ellipse at 50% 60%, #2a2545 0%, transparent 70%);
}
.scn-achilles-ghost-in-hades .underworld-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #12101e 0%, #1a1828 50%, #0f0d1a 100%);
  animation: agh-bg 20s ease-in-out infinite alternate;
}
.scn-achilles-ghost-in-hades .asphodel-meadow {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #2a3040 0%, transparent 80%);
  border-radius: 70% 70% 0 0 / 40% 40% 0 0;
  animation: agh-meadow 25s ease-in-out infinite alternate;
}
.scn-achilles-ghost-in-hades .ghost-achilles {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 40px;
  height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a6a8a 0%, #4a4a6a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  opacity: 0.6;
  animation: agh-figure 8s ease-in-out infinite alternate;
}
.scn-achilles-ghost-in-hades .ghost-patrick {
  position: absolute;
  bottom: 34%;
  left: 36%;
  width: 32px;
  height: 75px;
  background: linear-gradient(180deg, #5a5a7a 0%, #3a3a5a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  opacity: 0.5;
  animation: agh-figure 10s ease-in-out infinite alternate-reverse;
}
.scn-achilles-ghost-in-hades .ghost-ajax {
  position: absolute;
  bottom: 32%;
  right: 38%;
  width: 36px;
  height: 80px;
  background: linear-gradient(180deg, #6a6a8a 0%, #4a4a6a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  opacity: 0.5;
  animation: agh-figure 9s ease-in-out infinite alternate;
}
.scn-achilles-ghost-in-hades .ghost-antilochus {
  position: absolute;
  bottom: 38%;
  right: 30%;
  width: 28px;
  height: 65px;
  background: linear-gradient(180deg, #5a5a7a 0%, #3a3a5a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  opacity: 0.4;
  animation: agh-figure 11s ease-in-out infinite alternate-reverse;
}
.scn-achilles-ghost-in-hades .faint-light {
  position: absolute;
  top: 20%;
  left: 50%;
  width: 60px;
  height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(200,200,220,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: agh-light 6s ease-in-out infinite alternate;
}
.scn-achilles-ghost-in-hades .shadow-veil {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: agh-veil 15s ease-in-out infinite alternate;
}
@keyframes agh-bg {
  0% { filter: brightness(0.9); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(0.95); }
}
@keyframes agh-meadow {
  0% { transform: scaleY(1); opacity: 0.3; }
  50% { transform: scaleY(1.03); opacity: 0.5; }
  100% { transform: scaleY(0.98); opacity: 0.3; }
}
@keyframes agh-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes agh-light {
  0% { transform: translateX(-50%) scale(1); opacity: 0.5; }
  50% { transform: translateX(-50%) scale(1.3); opacity: 0.8; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.5; }
}
@keyframes agh-veil {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

.scn-achilles-addresses-agamemnon {
  background: linear-gradient(180deg, #0e0c18 0%, #161430 40%, #0a0812 100%),
              radial-gradient(ellipse at 30% 50%, #1a1830 0%, transparent 60%);
}
.scn-achilles-addresses-agamemnon .darkness-deep {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 60% 40%, #0a0815 0%, #1c1a2e 100%);
  animation: aaa-deep 18s ease-in-out infinite alternate;
}
.scn-achilles-addresses-agamemnon .shade-achilles {
  position: absolute;
  bottom: 30%;
  left: 38%;
  width: 38px;
  height: 85px;
  background: linear-gradient(180deg, #5a5a7a 0%, #3a3a5a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  opacity: 0.7;
  animation: aaa-figure 4s ease-in-out infinite alternate;
}
.scn-achilles-addresses-agamemnon .shade-agamemnon {
  position: absolute;
  bottom: 28%;
  right: 40%;
  width: 40px;
  height: 90px;
  background: linear-gradient(180deg, #6a5a5a 0%, #4a3a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  opacity: 0.6;
  animation: aaa-figure 5s ease-in-out infinite alternate-reverse;
}
.scn-achilles-addresses-agamemnon .spear-shaft {
  position: absolute;
  bottom: 28%;
  left: 48%;
  width: 4px;
  height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: aaa-spear 3s ease-in-out infinite alternate;
}
.scn-achilles-addresses-agamemnon .ember-spark {
  position: absolute;
  bottom: 32%;
  left: 46%;
  width: 6px;
  height: 6px;
  background: #b05030;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(176,80,48,0.5), 0 0 24px 8px rgba(176,80,48,0.2);
  animation: aaa-ember 2s ease-in-out infinite alternate;
}
.scn-achilles-addresses-agamemnon .tension-lines {
  position: absolute;
  top: 10%;
  left: 10%;
  right: 10%;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(180,120,80,0.3), transparent);
  filter: blur(1px);
  animation: aaa-tension 3s ease-in-out infinite;
}
.scn-achilles-addresses-agamemnon .ground-crack {
  position: absolute;
  bottom: 15%;
  left: 30%;
  right: 30%;
  height: 4px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: aaa-crack 8s ease-in-out infinite alternate;
}
.scn-achilles-addresses-agamemnon .distant-wraith {
  position: absolute;
  bottom: 40%;
  right: 15%;
  width: 16px;
  height: 40px;
  background: rgba(100,100,120,0.15);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(4px);
  animation: aaa-wraith 12s ease-in-out infinite;
}
@keyframes aaa-deep {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.9); }
}
@keyframes aaa-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(-4px) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes aaa-spear {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes aaa-ember {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.5); opacity: 1; }
  100% { transform: scale(0.8); opacity: 0.4; }
}
@keyframes aaa-tension {
  0% { transform: scaleX(0.8); opacity: 0.2; }
  50% { transform: scaleX(1.2); opacity: 0.5; }
  100% { transform: scaleX(0.8); opacity: 0.2; }
}
@keyframes aaa-crack {
  0% { transform: scaleY(1); opacity: 0.3; }
  50% { transform: scaleY(2); opacity: 0.6; }
  100% { transform: scaleY(1); opacity: 0.3; }
}
@keyframes aaa-wraith {
  0% { transform: translateY(0) scale(1); opacity: 0.1; }
  50% { transform: translateY(-10px) scale(1.2); opacity: 0.3; }
  100% { transform: translateY(0) scale(1); opacity: 0.1; }
}

/* Scene 1: ulysses-pretends-to-be-eperitus – calm, sunlit */
.scn-ulysses-pretends-to-be-eperitus {
  background:
    linear-gradient(180deg, #87CEEB 0%, #f0d78c 60%, #e8b870 100%),
    radial-gradient(circle at 50% 20%, #fff7d0 0%, transparent 60%);
}
.scn-ulysses-pretends-to-be-eperitus .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b2dfee 0%, #87CEEB 40%, transparent 100%);
  animation: up1-sky 15s ease-in-out infinite alternate;
}
.scn-ulysses-pretends-to-be-eperitus .hills {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #5e8c5e 0%, #3a5a3a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 6px 14px rgba(0,0,0,0.3);
  animation: up1-hills 20s ease-in-out infinite alternate;
}
.scn-ulysses-pretends-to-be-eperitus .tree {
  position: absolute; bottom: 45%; left: 28%; width: 10px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: up1-tree 6s ease-in-out infinite;
}
.scn-ulysses-pretends-to-be-eperitus .tree::after {
  content: ''; position: absolute; top: -25px; left: -20px; width: 50px; height: 50px;
  background: radial-gradient(circle, #6a8a4a 0%, #4a6a2a 70%);
  border-radius: 50%;
}
.scn-ulysses-pretends-to-be-eperitus .figure-ulysses {
  position: absolute; bottom: 28%; left: 48%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: up1-walk 8s ease-in-out infinite;
}
.scn-ulysses-pretends-to-be-eperitus .figure-laertes {
  position: absolute; bottom: 28%; left: 58%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: up1-seat 6s ease-in-out infinite;
}
.scn-ulysses-pretends-to-be-eperitus .staff {
  position: absolute; bottom: 28%; left: 46%; width: 4px; height: 36px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%);
  border-radius: 20%;
  transform-origin: bottom center;
  animation: up1-staff 8s ease-in-out infinite;
}
.scn-ulysses-pretends-to-be-eperitus .sun {
  position: absolute; top: 12%; left: 72%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff7e0 0%, #f0d060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,208,96,0.4);
  animation: up1-sun 10s ease-in-out infinite alternate;
}
@keyframes up1-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes up1-hills { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.01); } 100% { transform: translateY(0); } }
@keyframes up1-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes up1-walk { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0); } }
@keyframes up1-seat { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0); } }
@keyframes up1-staff { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes up1-sun { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.85; } }

/* Scene 2: ulysses-reveals-himself – dark mood, sunlit */
.scn-ulysses-reveals-himself {
  background:
    linear-gradient(180deg, #f4d03f 0%, #e67e22 40%, #c0392b 100%),
    radial-gradient(circle at 30% 20%, #f7dc6f 0%, transparent 80%);
}
.scn-ulysses-reveals-himself .sky-bright {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f9e79f 0%, #f4d03f 40%, transparent 100%);
  animation: ur2-sky 12s ease-in-out infinite alternate;
}
.scn-ulysses-reveals-himself .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
  animation: ur2-ground 8s ease-in-out infinite;
}
.scn-ulysses-reveals-himself .figure-laertes-dark {
  position: absolute; bottom: 18%; left: 40%; width: 20px; height: 36px;
  background: #0a0000;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 12px 2px rgba(0,0,0,0.6);
  animation: ur2-laertes 14s ease-in-out infinite;
}
.scn-ulysses-reveals-himself .figure-ulysses {
  position: absolute; bottom: 18%; left: 50%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ur2-ulysses 8s ease-in-out infinite;
}
.scn-ulysses-reveals-himself .dust {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(80,60,40,0.4) 0%, transparent 70%);
  filter: blur(2px);
  animation: ur2-dust 6s ease-in-out infinite;
}
.scn-ulysses-reveals-himself .rays {
  position: absolute; top: 10%; left: 30%; width: 120px; height: 120px;
  background: radial-gradient(ellipse at center, rgba(255,240,180,0.15) 0%, transparent 70%);
  transform: rotate(20deg);
  animation: ur2-rays 20s linear infinite;
}
@keyframes ur2-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ur2-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ur2-laertes { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0); } }
@keyframes ur2-ulysses { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0); } }
@keyframes ur2-dust { 0% { transform: scale(1); opacity: 0.4; } 50% { transform: scale(1.2); opacity: 0.6; } 100% { transform: scale(0.9); opacity: 0.2; } }
@keyframes ur2-rays { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(25deg) scale(1.02); } 100% { transform: rotate(15deg) scale(1); } }

/* Scene 3: ulysses-shows-scar – warm, sunlit, intimate */
.scn-ulysses-shows-scar {
  background:
    linear-gradient(135deg, #e8c49a 0%, #d4a373 50%, #c0855a 100%),
    radial-gradient(circle at 60% 40%, #f5deb3 0%, transparent 60%);
}
.scn-ulysses-shows-scar .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8c49a 0%, #d4a373 50%, transparent 100%);
  animation: us3-bg 18s ease-in-out infinite alternate;
}
.scn-ulysses-shows-scar .figure-ulysses-arm {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #c0855a 0%, #a06b4a 100%);
  border-radius: 20% 20% 50% 50% / 30% 30% 60% 60%;
  transform-origin: 0% 50%;
  animation: us3-arm 8s ease-in-out infinite;
}
.scn-ulysses-shows-scar .figure-laertes-hand {
  position: absolute; bottom: 22%; left: 42%; width: 16px; height: 14px;
  background: linear-gradient(180deg, #a06b4a 0%, #805a3a 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: center;
  animation: us3-hand 9s ease-in-out infinite;
}
.scn-ulysses-shows-scar .scar-line {
  position: absolute; bottom: 28%; left: 48%; width: 18px; height: 2px;
  background: #8a4a2a;
  border-radius: 10%;
  transform: rotate(10deg);
  box-shadow: 0 0 2px 1px #c06040;
  animation: us3-scar 5s ease-in-out infinite;
}
.scn-ulysses-shows-scar .sun-glow {
  position: absolute; top: 15%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0d8a0 0%, #e8b870 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(232,184,112,0.4);
  animation: us3-glow 12s ease-in-out infinite alternate;
}
.scn-ulysses-shows-scar .shadow {
  position: absolute; top: 30%; left: 40%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, rgba(60,40,20,0.1) 0%, transparent 70%);
  filter: blur(8px);
  animation: us3-shadow 10s ease-in-out infinite alternate;
}
@keyframes us3-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes us3-arm { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes us3-hand { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(1); } }
@keyframes us3-scar { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes us3-glow { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.08); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.9; } }
@keyframes us3-shadow { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(-5px, -3px) scale(1.02); } 100% { transform: translate(0,0); } }

/* Scene 4: laertes-convinced – warm, sunlit, embrace */
.scn-laertes-convinced {
  background:
    linear-gradient(180deg, #f4d03f 0%, #e8b870 40%, #d4a373 100%),
    radial-gradient(circle at 40% 50%, #fff7d0 0%, transparent 70%);
}
.scn-laertes-convinced .sky-warm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f9e79f 0%, #f4d03f 40%, transparent 100%);
  animation: lc4-sky 20s ease-in-out infinite alternate;
}
.scn-laertes-convinced .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b8885a 0%, #8a6a3a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: lc4-ground 12s ease-in-out infinite;
}
.scn-laertes-convinced .figure-ulysses-back {
  position: absolute; bottom: 20%; left: 46%; width: 18px; height: 40px;
  background: #2a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lc4-ulysses 8s ease-in-out infinite;
}
.scn-laertes-convinced .figure-laertes-front {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 38px;
  background: #1a0a00;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lc4-laertes 8s ease-in-out infinite;
}
.scn-laertes-convinced .embrace-arm {
  position: absolute; bottom: 28%; left: 44%; width: 20px; height: 10px;
  background: #5a3a1a;
  border-radius: 30% 30% 20% 20%;
  transform-origin: 100% 50%;
  animation: lc4-arm 9s ease-in-out infinite;
}
.scn-laertes-convinced .sunbeam {
  position: absolute; top: 10%; left: 45%; width: 40px; height: 60px;
  background: linear-gradient(180deg, rgba(255,240,180,0.2) 0%, transparent 100%);
  transform: rotate(-10deg);
  filter: blur(4px);
  animation: lc4-beam 14s ease-in-out infinite alternate;
}
@keyframes lc4-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lc4-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lc4-ulysses { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0); } }
@keyframes lc4-laertes { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0); } }
@keyframes lc4-arm { 0% { transform: rotate(60deg) scaleX(1); } 50% { transform: rotate(70deg) scaleX(1.1); } 100% { transform: rotate(60deg); } }
@keyframes lc4-beam { 0% { opacity: 0.3; transform: rotate(-10deg) scaleY(1); } 50% { opacity: 0.6; transform: rotate(-8deg) scaleY(1.2); } 100% { opacity: 0.2; transform: rotate(-10deg); } }

/* menelaus-overhears */
.scn-menelaus-overhears {
  background: linear-gradient(135deg, #e8d5b0 0%, #c9a96e 30%, #b08040 70%, #7a5a30 100%),
              radial-gradient(ellipse at 50% 80%, #f5e6d0 0%, transparent 70%);
}
.scn-menelaus-overhears .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #d4b888 0%, #bd9e6a 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: inset 0 8px 20px rgba(60,40,20,0.3);
}
.scn-menelaus-overhears .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #a08050 0%, #7a5a30 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-menelaus-overhears .arch {
  position:absolute; bottom:30%; left:30%; width:40%; height:50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  transform: translateY(10%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.5);
  animation: mo-arch 8s ease-in-out infinite;
}
.scn-menelaus-overhears .figure-speaker {
  position:absolute; bottom:28%; left:20%; width:20px; height:40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mo-speak 3s ease-in-out infinite;
}
.scn-menelaus-overhears .figure-listener {
  position:absolute; bottom:28%; right:20%; width:22px; height:38px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mo-listen 4s ease-in-out infinite alternate;
}
.scn-menelaus-overhears .lamp-glow {
  position:absolute; top:38%; left:50%; width:20px; height:20px;
  background: radial-gradient(circle, #ffd080 0%, #e8a840 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.4), 0 0 60px 20px rgba(255,208,128,0.2);
  animation: mo-lamp 2s ease-in-out infinite alternate;
}
.scn-menelaus-overhears .shadow {
  position:absolute; bottom:16%; left:40%; width:30%; height:8%;
  background: rgba(30,20,10,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: mo-shadow 6s ease-in-out infinite;
}
@keyframes mo-arch {
  0% { transform: translateY(10%) scaleX(1); }
  50% { transform: translateY(8%) scaleX(0.98); }
  100% { transform: translateY(10%) scaleX(1); }
}
@keyframes mo-speak {
  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 mo-listen {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  50% { transform: translateX(-3px) rotate(-1deg) scale(0.98); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes mo-lamp {
  0% { box-shadow: 0 0 20px 8px rgba(255,208,128,0.3), 0 0 50px 15px rgba(255,208,128,0.15); transform: scale(1); }
  50% { box-shadow: 0 0 40px 15px rgba(255,208,128,0.5), 0 0 80px 30px rgba(255,208,128,0.25); transform: scale(1.1); }
  100% { box-shadow: 0 0 20px 8px rgba(255,208,128,0.3), 0 0 50px 15px rgba(255,208,128,0.15); transform: scale(1); }
}
@keyframes mo-shadow {
  0% { opacity: 0.4; transform: translateX(0) scaleX(1); }
  50% { opacity: 0.6; transform: translateX(10%) scaleX(1.2); }
  100% { opacity: 0.4; transform: translateX(0) scaleX(1); }
}

/* telemachus-weeps-at-mention */
.scn-telemachus-weeps-at-mention {
  background: linear-gradient(180deg, #e0cfb0 0%, #c8b080 40%, #a08050 100%),
              radial-gradient(ellipse at 50% 90%, #f5e6d0 0%, transparent 80%);
}
.scn-telemachus-weeps-at-mention .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #bfaf90 0%, #a99870 100%);
  box-shadow: inset 0 10px 30px rgba(40,30,15,0.3);
}
.scn-telemachus-weeps-at-mention .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #806040 0%, #4a3018 100%);
  border-radius: 10% 10% 0 0;
}
.scn-telemachus-weeps-at-mention .curtain {
  position:absolute; top:0; right:0; width:30%; height:100%;
  background: linear-gradient(180deg, #a04030 0%, #703028 100%);
  border-radius: 0 0 0 30%;
  transform-origin: right center;
  animation: tw-curtain 10s ease-in-out infinite;
}
.scn-telemachus-weeps-at-mention .chair {
  position:absolute; bottom:30%; left:50%; width:50px; height:40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7050 0%, #5a3a20 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: tw-chair 6s ease-in-out infinite;
}
.scn-telemachus-weeps-at-mention .figure-telemachus {
  position:absolute; bottom:35%; left:50%; width:24px; height:42px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tw-figure 2s ease-in-out infinite;
}
.scn-telemachus-weeps-at-mention .cloak {
  position:absolute; bottom:38%; left:46%; width:30px; height:20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 50% 50%;
  transform-origin: top left;
  animation: tw-cloak 3s ease-in-out infinite alternate;
}
.scn-telemachus-weeps-at-mention .tear-fall {
  position:absolute; bottom:50%; left:52%; width:4px; height:6px;
  background: radial-gradient(circle, #c0e0ff 0%, #80b0e0 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 6px 2px rgba(128,176,224,0.5);
  animation: tw-tear 1.5s ease-in infinite;
}
.scn-telemachus-weeps-at-mention .tear-splash {
  position:absolute; bottom:44%; left:52%; width:14px; height:4px;
  background: radial-gradient(ellipse, #c0e0ff 0%, transparent 100%);
  border-radius: 50%;
  opacity: 0.6;
  animation: tw-splash 1.5s ease-in infinite;
}
@keyframes tw-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1); }
}
@keyframes tw-chair {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-48%) rotate(-0.5deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes tw-figure {
  0% { transform: translateX(-50%) rotate(0deg) scale(1); }
  30% { transform: translateX(-50%) rotate(-1deg) scale(0.97); }
  60% { transform: translateX(-50%) rotate(1deg) scale(1); }
  100% { transform: translateX(-50%) rotate(0deg) scale(1); }
}
@keyframes tw-cloak {
  0% { transform: rotate(0deg) scaleY(1); }
  100% { transform: rotate(5deg) scaleY(1.05); }
}
@keyframes tw-tear {
  0% { transform: translateY(0) scale(1); opacity:1; }
  100% { transform: translateY(30px) scale(0.6); opacity:0; }
}
@keyframes tw-splash {
  0% { transform: scale(0); opacity:0; }
  80% { transform: scale(2); opacity:0.6; }
  100% { transform: scale(0); opacity:0; }
}

/* helen-enters */
.scn-helen-enters {
  background: linear-gradient(180deg, #eedbc0 0%, #d9c5a0 40%, #b8a080 100%),
              radial-gradient(ellipse at 50% 60%, #f5e6d0 0%, transparent 70%);
}
.scn-helen-enters .wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #d4bea0 0%, #bca080 100%);
  box-shadow: inset 0 6px 20px rgba(50,30,10,0.2);
}
.scn-helen-enters .staircase {
  position:absolute; bottom:25%; left:20%; width:60%; height:50%;
  background: linear-gradient(180deg, #9a7a5a 0%, #705030 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  transform: scaleY(0.6);
  transform-origin: bottom center;
  animation: he-stairs 12s ease-in-out infinite;
}
.scn-helen-enters .railing {
  position:absolute; bottom:30%; left:15%; width:70%; height:6px;
  background: #3a2a1a;
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: he-rail 8s ease-in-out infinite;
}
.scn-helen-enters .figure-helen {
  position:absolute; bottom:40%; left:40%; width:40px; height:50px;
  background: linear-gradient(180deg, #c06040 0%, #a04020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: he-helen 5s ease-in-out infinite;
}
.scn-helen-enters .maiden-adraste {
  position:absolute; bottom:28%; left:30%; width:16px; height:30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: he-maiden-a 6s ease-in-out infinite alternate;
}
.scn-helen-enters .maiden-alcippe {
  position:absolute; bottom:28%; left:50%; width:16px; height:30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: he-maiden-b 6s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-helen-enters .maiden-phylo {
  position:absolute; bottom:28%; right:30%; width:16px; height:30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: he-maiden-c 6s ease-in-out infinite alternate;
  animation-delay: -4s;
}
.scn-helen-enters .work-box {
  position:absolute; bottom:22%; right:10%; width:20px; height:14px;
  background: linear-gradient(180deg, #c8a880 0%, #a08050 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: he-box 9s ease-in-out infinite;
}
@keyframes he-stairs {
  0% { transform: scaleY(0.6) translateY(0); }
  50% { transform: scaleY(0.62) translateY(-2px); }
  100% { transform: scaleY(0.6) translateY(0); }
}
@keyframes he-rail {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes he-helen {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-0.5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(3px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes he-maiden-a {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes he-maiden-b {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes he-maiden-c {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes he-box {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}

/* helen-recognizes-telemachus */
.scn-helen-recognizes-telemachus {
  background: linear-gradient(180deg, #f0e0c8 0%, #d9c5a0 40%, #c0a880 100%),
              radial-gradient(ellipse at 50% 70%, #fff5e0 0%, transparent 70%);
}
.scn-helen-recognizes-telemachus .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #e0ccb0 0%, #c8b090 100%);
  box-shadow: inset 0 8px 20px rgba(40,20,5,0.2);
}
.scn-helen-recognizes-telemachus .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #907050 0%, #604020 100%);
  border-radius: 12% 12% 0 0;
}
.scn-helen-recognizes-telemachus .figure-menelaus {
  position:absolute; bottom:28%; left:16%; width:22px; height:44px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr-menelaus 6s ease-in-out infinite;
}
.scn-helen-recognizes-telemachus .figure-telemachus {
  position:absolute; bottom:28%; right:16%; width:20px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hr-telemachus 4s ease-in-out infinite alternate;
}
.scn-helen-recognizes-telemachus .figure-helen {
  position:absolute; bottom:28%; left:46%; width:24px; height:45px;
  background: linear-gradient(180deg, #c06040 0%, #a04020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr-helen 5s ease-in-out infinite;
}
.scn-helen-recognizes-telemachus .helen-hand {
  position:absolute; bottom:42%; left:48%; width:14px; height:20px;
  background: linear-gradient(180deg, #c06040 0%, #a04020 100%);
  border-radius: 30% 30% 40% 40%;
  transform-origin: left bottom;
  animation: hr-hand 3s ease-in-out infinite;
}
.scn-helen-recognizes-telemachus .lamp-glow {
  position:absolute; top:30%; left:50%; width:28px; height:28px;
  background: radial-gradient(circle, #ffd080 0%, #e8a840 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,208,128,0.4), 0 0 80px 30px rgba(255,208,128,0.2);
  animation: hr-lamp 3s ease-in-out infinite alternate;
}
.scn-helen-recognizes-telemachus .light-ray {
  position:absolute; top:35%; left:44%; width:14%; height:40%;
  background: linear-gradient(180deg, rgba(255,208,128,0.3) 0%, transparent 100%);
  transform: rotate(20deg);
  transform-origin: top left;
  filter: blur(4px);
  animation: hr-ray 7s ease-in-out infinite;
}
@keyframes hr-menelaus {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hr-telemachus {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  50% { transform: translateX(2px) rotate(1deg) scale(0.98); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes hr-helen {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-0.5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hr-hand {
  0% { transform: rotate(-10deg) scaleY(1); }
  50% { transform: rotate(10deg) scaleY(1.1); }
  100% { transform: rotate(-10deg) scaleY(1); }
}
@keyframes hr-lamp {
  0% { box-shadow: 0 0 30px 10px rgba(255,208,128,0.3), 0 0 60px 20px rgba(255,208,128,0.15); transform: scale(1); }
  50% { box-shadow: 0 0 50px 20px rgba(255,208,128,0.5), 0 0 100px 40px rgba(255,208,128,0.25); transform: scale(1.05); }
  100% { box-shadow: 0 0 30px 10px rgba(255,208,128,0.3), 0 0 60px 20px rgba(255,208,128,0.15); transform: scale(1); }
}
@keyframes hr-ray {
  0% { opacity: 0.3; transform: rotate(20deg) scaleY(1); }
  50% { opacity: 0.6; transform: rotate(22deg) scaleY(1.1); }
  100% { opacity: 0.3; transform: rotate(20deg) scaleY(1); }
}

/* footnote-lambs-in-yard - dim interior barn view */
.scn-footnote-lambs-in-yard {
  background: linear-gradient(180deg, #2a1f14 0%, #1e1610 40%, #36281b 100%),
              radial-gradient(ellipse at 50% 80%, #4a3422 0%, transparent 70%);
}
.scn-footnote-lambs-in-yard .barn-frame {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1f14 0%, #1e1610 50%, #3a2a1c 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7); border-radius: 4px;
}
.scn-footnote-lambs-in-yard .window {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #1a1410 0%, #2a1f14 100%);
  border: 4px solid #4a3422; border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: fly-window 12s ease-in-out infinite;
}
.scn-footnote-lambs-in-yard .yard-sky {
  position: absolute; top: 16%; left: 36%; width: 28%; height: 33%;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1e1610 80%);
  border-radius: 4px; animation: fly-sky 20s ease-in-out infinite alternate;
}
.scn-footnote-lambs-in-yard .fence {
  position: absolute; bottom: 28%; left: 36%; width: 28%; height: 8%;
  background: repeating-linear-gradient(90deg, #5a4030 0px, #5a4030 8px, transparent 8px, transparent 16px);
  border-top: 2px solid #4a3422; animation: fly-fence 15s ease-in-out infinite;
}
.scn-footnote-lambs-in-yard .lamb {
  position: absolute; bottom: 32%; width: 12%; height: 10%;
  background: radial-gradient(ellipse 70% 60% at 50% 40%, #7a6050 0%, #4a3422 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fly-lamb 4s ease-in-out infinite;
}
.scn-footnote-lambs-in-yard .lamb-a { left: 42%; animation-delay: 0s; }
.scn-footnote-lambs-in-yard .lamb-b { left: 52%; animation-delay: 1.5s; }
.scn-footnote-lambs-in-yard .hay {
  position: absolute; bottom: 26%; left: 38%; width: 24%; height: 4%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 40% 40% 0 0; filter: blur(2px);
}
.scn-footnote-lambs-in-yard .lantern-glow {
  position: absolute; bottom: 40%; left: 30%; width: 8%; height: 12%;
  background: radial-gradient(circle, #d0a060 0%, #a07030 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px #c08040; opacity: 0.7;
  animation: fly-lantern 3s ease-in-out infinite alternate;
}
@keyframes fly-window { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fly-sky { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.02); } 100% { opacity: 0.75; transform: scale(0.98); } }
@keyframes fly-fence { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fly-lamb { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes fly-lantern { 0% { opacity: 0.5; box-shadow: 0 0 30px 10px #b07040; } 50% { opacity: 0.8; box-shadow: 0 0 50px 20px #d09050; } 100% { opacity: 0.6; box-shadow: 0 0 35px 12px #b07040; } }

/* footnote-rudder-at-both-ends - dim harbor with two-rudder boat */
.scn-footnote-rudder-at-both-ends {
  background: linear-gradient(180deg, #141a1e 0%, #1a2228 40%, #0e1215 100%),
              radial-gradient(ellipse at 50% 60%, #1c2a30 0%, transparent 70%);
}
.scn-footnote-rudder-at-both-ends .harbor-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #181e22 0%, #101418 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-footnote-rudder-at-both-ends .boat-hull {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #3a2a1c 0%, #2a1e12 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: frudder-hull 6s ease-in-out infinite;
}
.scn-footnote-rudder-at-both-ends .rudder {
  position: absolute; bottom: 28%; width: 6%; height: 16%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 0 0 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: frudder-rudder 3s ease-in-out infinite;
}
.scn-footnote-rudder-at-both-ends .rudder-fore { left: 28%; transform-origin: top center; animation-delay: 0s; }
.scn-footnote-rudder-at-both-ends .rudder-aft { left: 66%; transform-origin: top center; animation-delay: 0.5s; }
.scn-footnote-rudder-at-both-ends .mast {
  position: absolute; bottom: 40%; left: 48%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1c 100%);
  border-radius: 2px; transform: rotate(-2deg); animation: frudder-mast 8s ease-in-out infinite;
}
.scn-footnote-rudder-at-both-ends .water {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #1a2a32 0%, #0e1a22 100%);
  border-radius: 50% 50% 0 0; animation: frudder-water 10s ease-in-out infinite alternate;
}
.scn-footnote-rudder-at-both-ends .dock-post {
  position: absolute; bottom: 28%; left: 18%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 4px; box-shadow: -4px 0 6px rgba(0,0,0,0.3); animation: frudder-post 5s ease-in-out infinite;
}
.scn-footnote-rudder-at-both-ends .ship-lantern {
  position: absolute; bottom: 42%; left: 45%; width: 6%; height: 6%;
  background: radial-gradient(circle, #d0a060 0%, #a07030 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #c08040; opacity: 0.7;
  animation: frudder-lantern 4s ease-in-out infinite alternate;
}
@keyframes frudder-hull { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes frudder-rudder { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes frudder-mast { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes frudder-water { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes frudder-post { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes frudder-lantern { 0% { opacity: 0.4; box-shadow: 0 0 20px 5px #b07040; } 50% { opacity: 0.8; box-shadow: 0 0 40px 15px #d09050; } 100% { opacity: 0.5; box-shadow: 0 0 25px 8px #b07040; } }

/* footnote-line-interpolated - dim study with manuscript */
.scn-footnote-line-interpolated {
  background: linear-gradient(180deg, #1e1a16 0%, #2a221c 40%, #16120e 100%),
              radial-gradient(ellipse at 50% 70%, #3a2e24 0%, transparent 70%);
}
.scn-footnote-line-interpolated .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2e24 0%, #2a1e14 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-footnote-line-interpolated .scroll {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #c8b890 0%, #a09070 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: fline-scroll 10s ease-in-out infinite;
}
.scn-footnote-line-interpolated .bracket {
  position: absolute; bottom: 28%; width: 4%; height: 16%;
  border: 2px solid #6a5a42; border-radius: 4px; opacity: 0.8;
  animation: fline-bracket 6s ease-in-out infinite;
}
.scn-footnote-line-interpolated .bracket-left { left: 30%; border-right: none; }
.scn-footnote-line-interpolated .bracket-right { right: 30%; border-left: none; }
.scn-footnote-line-interpolated .inkwell {
  position: absolute; bottom: 14%; left: 70%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 40%, #2a1e14 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 5px rgba(0,0,0,0.6); animation: fline-inkwell 8s ease-in-out infinite;
}
.scn-footnote-line-interpolated .candle {
  position: absolute; bottom: 18%; left: 20%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #e0d0b0 0%, #b0a080 100%);
  border-radius: 4px; box-shadow: 0 0 20px 6px #d0b080;
  animation: fline-candle 3s ease-in-out infinite alternate;
}
.scn-footnote-line-interpolated .flame {
  position: absolute; bottom: 35%; left: 20.5%; width: 3%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 8px #ffc060;
  animation: fline-flame 1.5s ease-in-out infinite alternate;
}
.scn-footnote-line-interpolated .paper-edge {
  position: absolute; bottom: 22%; left: 26%; width: 48%; height: 2%;
  background: linear-gradient(90deg, transparent, #8a7a60 50%, transparent);
  filter: blur(1px); animation: fline-edge 12s ease-in-out infinite;
}
@keyframes fline-scroll { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes fline-bracket { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes fline-inkwell { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fline-candle { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fline-flame { 0% { transform: scale(1) rotate(-5deg); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(0.95) rotate(-3deg); } }
@keyframes fline-edge { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* footnote-floating-island - dim night sea with floating island */
.scn-footnote-floating-island {
  background: linear-gradient(180deg, #0a0e14 0%, #141c24 40%, #0a0e14 100%),
              radial-gradient(ellipse at 50% 20%, #1c2a34 0%, transparent 70%);
}
.scn-footnote-floating-island .night-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0e14 0%, #141c24 60%, #1a2630 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.5);
}
.scn-footnote-floating-island .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #141c24 0%, #0e141c 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0; animation: ffloat-sea 15s ease-in-out infinite alternate;
}
.scn-footnote-floating-island .island {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 60% 60% 40% 40% / 80% 80% 20% 20%; box-shadow: 0 6px 20px rgba(0,0,0,0.5);
  animation: ffloat-island 20s ease-in-out infinite;
}
.scn-footnote-floating-island .cave-mouth {
  position: absolute; bottom: 36%; left: 45%; width: 10%; height: 8%;
  background: radial-gradient(ellipse at 50% 60%, #0e0a06 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.8); animation: ffloat-cave 8s ease-in-out infinite;
}
.scn-footnote-floating-island .bag-of-winds {
  position: absolute; bottom: 38%; left: 52%; width: 8%; height: 10%;
  background: radial-gradient(ellipse at 50% 40%, #6a5a4a 0%, #3a2e22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: ffloat-bag 6s ease-in-out infinite;
}
.scn-footnote-floating-island .moon {
  position: absolute; top: 10%; left: 70%; width: 10%; height: 10%;
  background: radial-gradient(circle, #a0b0c0 0%, #6a7a8a 80%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px #8a9aaa;
  animation: ffloat-moon 30s linear infinite;
}
.scn-footnote-floating-island .cloud-slow {
  position: absolute; width: 20%; height: 6%;
  background: linear-gradient(180deg, rgba(160,180,200,0.3) 0%, rgba(160,180,200,0.05) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: ffloat-cloud 40s linear infinite;
}
.scn-footnote-floating-island .cloud-a { top: 15%; left: 10%; animation-duration: 40s; }
.scn-footnote-floating-island .cloud-b { top: 25%; right: 10%; animation-duration: 50s; animation-direction: reverse; }
@keyframes ffloat-sea { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.02); } 100% { opacity: 0.7; transform: scaleY(0.98); } }
@keyframes ffloat-island { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ffloat-cave { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes ffloat-bag { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ffloat-moon { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }
@keyframes ffloat-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

/* Scene 1: ulysses-asks-about-ithaca */
.scn-ulysses-asks-about-ithaca {
  background: linear-gradient(180deg, #f9e8d2 0%, #d4b896 40%, #a88c6a 100%),
              radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 60%);
}
.scn-ulysses-asks-about-ithaca .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #c7d9e0 0%, transparent 80%);
  animation: ui-sky 15s ease-in-out infinite alternate;
}
.scn-ulysses-asks-about-ithaca .garden-wall {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(0deg, #b59a7a 0%, #9c8262 100%);
  border-radius: 2% 2% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,0.3);
  animation: ui-wall 8s ease-in-out infinite alternate;
}
.scn-ulysses-asks-about-ithaca .tree {
  position: absolute; bottom: 35%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 30% 30% 10% 10%; transform-origin: bottom center;
  animation: ui-tree 10s ease-in-out infinite;
}
.scn-ulysses-asks-about-ithaca .figure-worker {
  position: absolute; bottom: 15%; left: 25%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: ui-worker 4s ease-in-out infinite;
}
.scn-ulysses-asks-about-ithaca .figure-ulysses {
  position: absolute; bottom: 15%; right: 30%; width: 9%; height: 30%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a0a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  animation: ui-ulysses 6s ease-in-out infinite;
}
.scn-ulysses-asks-about-ithaca .basket {
  position: absolute; bottom: 12%; left: 40%; width: 7%; height: 10%;
  background: linear-gradient(180deg, #b08030 0%, #8a6020 100%);
  border-radius: 20% 20% 10% 10%;
  animation: ui-basket 3s ease-in-out infinite alternate;
}
.scn-ulysses-asks-about-ithaca .flower {
  position: absolute; bottom: 28%; left: 55%; width: 3%; height: 8%;
  background: radial-gradient(circle, #d4a070 0%, #a07030 100%);
  border-radius: 50% 50% 30% 30%;
  animation: ui-flower 5s ease-in-out infinite;
}
@keyframes ui-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ui-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ui-tree { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes ui-worker { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes ui-ulysses { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ui-basket { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes ui-flower { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(5deg) scale(1.1) } 100% { transform: rotate(-5deg) scale(1) } }

/* Scene 2: ulysses-fabricates-story */
.scn-ulysses-fabricates-story {
  background: linear-gradient(180deg, #e5d5c0 0%, #c8b090 40%, #a08870 100%),
              radial-gradient(ellipse at 50% 30%, #f5e5d0 0%, transparent 70%);
}
.scn-ulysses-fabricates-story .room-wall {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #bca88a 100%);
  animation: uf-wall 12s ease-in-out infinite alternate;
}
.scn-ulysses-fabricates-story .window {
  position: absolute; top: 20%; left: 50%; width: 20%; height: 25%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0c8d0 0%, #8aa0b0 100%);
  border: 3px solid #6a5a4a; border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(255,230,180,0.5);
  animation: uf-window 9s ease-in-out infinite;
}
.scn-ulysses-fabricates-story .table {
  position: absolute; bottom: 12%; left: 15%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 5px 10px rgba(0,0,0,0.3);
  animation: uf-table 6s ease-in-out infinite alternate;
}
.scn-ulysses-fabricates-story .lamp {
  position: absolute; bottom: 20%; left: 35%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #d0b050 0%, #b08020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 15px 5px rgba(200,160,80,0.6);
  animation: uf-lamp 3s ease-in-out infinite alternate;
}
.scn-ulysses-fabricates-story .figure-host {
  position: absolute; bottom: 10%; left: 20%; width: 9%; height: 32%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  animation: uf-host 5s ease-in-out infinite;
}
.scn-ulysses-fabricates-story .figure-guest {
  position: absolute; bottom: 10%; right: 20%; width: 9%; height: 32%;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  animation: uf-guest 5s ease-in-out infinite reverse;
}
.scn-ulysses-fabricates-story .goblet {
  position: absolute; bottom: 20%; left: 50%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #b08030 0%, #8a6020 100%);
  border-radius: 20% 20% 10% 10%;
  animation: uf-goblet 4s ease-in-out infinite alternate;
}
@keyframes uf-wall { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(1) } }
@keyframes uf-window { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes uf-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes uf-lamp { 0% { box-shadow: 0 0 12px 3px rgba(200,160,80,0.5) } 50% { box-shadow: 0 0 20px 8px rgba(200,160,80,0.8) } 100% { box-shadow: 0 0 12px 3px rgba(200,160,80,0.5) } }
@keyframes uf-host { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes uf-guest { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes uf-goblet { 0% { transform: translateX(0) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) } }

/* Scene 3: laertes-weeps */
.scn-laertes-weeps {
  background: linear-gradient(180deg, #d4c0a8 0%, #a08870 40%, #705848 100%),
              radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 50%);
}
.scn-laertes-weeps .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  animation: lw-ground 20s ease-in-out infinite alternate;
}
.scn-laertes-weeps .tree-trunk {
  position: absolute; bottom: 20%; left: 30%; width: 6%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: lw-trunk 8s ease-in-out infinite;
}
.scn-laertes-weeps .tree-canopy {
  position: absolute; bottom: 55%; left: 18%; width: 30%; height: 30%;
  background: radial-gradient(ellipse, #3a5a3a 0%, #1a2a1a 70%, transparent 100%);
  border-radius: 50%;
  animation: lw-canopy 12s ease-in-out infinite alternate;
}
.scn-laertes-weeps .figure-laertes {
  position: absolute; bottom: 8%; left: 40%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lw-figure 7s ease-in-out infinite;
}
.scn-laertes-weeps .tears {
  position: absolute; bottom: 20%; left: 45%; width: 2%; height: 20%;
  background: radial-gradient(circle, #80a0b0 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: lw-tears 4s ease-in-out infinite;
}
.scn-laertes-weeps .shadow {
  position: absolute; bottom: 5%; left: 35%; width: 20%; height: 8%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  animation: lw-shadow 10s ease-in-out infinite alternate;
}
@keyframes lw-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes lw-trunk { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }
@keyframes lw-canopy { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes lw-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-5px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lw-tears { 0% { opacity: 0; transform: translateY(-10px) } 50% { opacity: 0.8; transform: translateY(0) } 100% { opacity: 0; transform: translateY(10px) } }
@keyframes lw-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } 100% { transform: scaleX(1) } }

/* Scene 4: laertes-asks-identity */
.scn-laertes-asks-identity {
  background: linear-gradient(180deg, #c8b8a0 0%, #a89878 40%, #887858 100%),
              radial-gradient(ellipse at 50% 20%, #e0d0b0 0%, transparent 60%);
}
.scn-laertes-asks-identity .shroud {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #a89878 0%, #887868 100%);
  border-radius: 10% 10% 5% 5%;
  animation: li-shroud 15s ease-in-out infinite alternate;
}
.scn-laertes-asks-identity .bed {
  position: absolute; bottom: 5%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 5%;
  animation: li-bed 8s ease-in-out infinite alternate;
}
.scn-laertes-asks-identity .lamp-dim {
  position: absolute; bottom: 20%; left: 10%; width: 4%; height: 12%;
  background: linear-gradient(0deg, #807050 0%, #605030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 8px 2px rgba(160,130,80,0.4);
  animation: li-lamp 4s ease-in-out infinite alternate;
}
.scn-laertes-asks-identity .figure-laertes {
  position: absolute; bottom: 15%; left: 30%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: li-figure1 6s ease-in-out infinite;
}
.scn-laertes-asks-identity .figure-penelope {
  position: absolute; bottom: 15%; right: 30%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a000a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: li-figure2 6s ease-in-out infinite reverse;
}
.scn-laertes-asks-identity .pillow {
  position: absolute; bottom: 20%; left: 50%; width: 8%; height: 5%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #c8b8a0 0%, #a89878 100%);
  border-radius: 50%;
  animation: li-pillow 7s ease-in-out infinite;
}
@keyframes li-shroud { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes li-bed { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(1) } }
@keyframes li-lamp { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes li-figure1 { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes li-figure2 { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes li-pillow { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(1) } }

/* ---------- Scene: nestor-tells-of-agamemnons-death (natk) ---------- */
.scn-nestor-tells-of-agamemnons-death {
  background: linear-gradient(180deg, #b8d8ea 0%, #f5deb3 40%, #e8c89a 70%, #c49a6c 100%),
              radial-gradient(circle at 20% 0%, #ffeeb0 0%, transparent 60%);
}
.scn-nestor-tells-of-agamemnons-death .sky {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c6e0f2 0%, #ffeab0 80%);
  animation: natk-sky 12s ease-in-out infinite alternate;
}
.scn-nestor-tells-of-agamemnons-death .sun {
  position:absolute; top:12%; left:25%; width:60px; height:60px; background: radial-gradient(circle, #fff2c0 0%, #ffcc66 50%, transparent 70%);
  border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,200,80,0.5); animation: natk-sun 15s ease-in-out infinite;
}
.scn-nestor-tells-of-agamemnons-death .hill-left {
  position:absolute; bottom:45%; left:-10%; width:60%; height:30%; background: linear-gradient(180deg, #7a8a5a 0%, #4a5a3a 100%);
  border-radius: 0 60% 0 0 / 0 80% 0 0; transform: skewX(10deg); animation: natk-hill 20s ease-in-out infinite alternate;
}
.scn-nestor-tells-of-agamemnons-death .hill-right {
  position:absolute; bottom:45%; right:-10%; width:60%; height:30%; background: linear-gradient(180deg, #7a8a5a 0%, #4a5a3a 100%);
  border-radius: 60% 0 0 0 / 80% 0 0 0; transform: skewX(-10deg); animation: natk-hill 20s ease-in-out infinite alternate-reverse;
}
.scn-nestor-tells-of-agamemnons-death .pillar-left {
  position:absolute; bottom:15%; left:18%; width:16px; height:60%; background: linear-gradient(180deg, #d4c4a4 0%, #a08868 100%);
  border-radius:4px; box-shadow: 6px 0 10px rgba(0,0,0,.3); transform: perspective(400px) rotateY(5deg);
  animation: natk-pillar 8s ease-in-out infinite;
}
.scn-nestor-tells-of-agamemnons-death .pillar-right {
  position:absolute; bottom:15%; right:18%; width:16px; height:60%; background: linear-gradient(180deg, #d4c4a4 0%, #a08868 100%);
  border-radius:4px; box-shadow: -6px 0 10px rgba(0,0,0,.3); transform: perspective(400px) rotateY(-5deg);
  animation: natk-pillar 8s ease-in-out infinite reverse;
}
.scn-nestor-tells-of-agamemnons-death .floor {
  position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #b89870 0%, #7a5a3a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.4);
}
.scn-nestor-tells-of-agamemnons-death .figure-nestor {
  position:absolute; bottom:14%; left:45%; width:20px; height:46px; background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  box-shadow: 2px 0 6px rgba(0,0,0,.5); animation: natk-figure 4s ease-in-out infinite;
}
.scn-nestor-tells-of-agamemnons-death .blood-pool {
  position:absolute; bottom:4%; left:43%; width:30px; height:8px; background: radial-gradient(ellipse, #8a3a2a 0%, #4a1a0a 80%);
  border-radius:50%; filter: blur(2px); opacity:0.8; animation: natk-blood 6s ease-in-out infinite alternate;
}
@keyframes natk-sky   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes natk-sun   { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.06) translateX(4px) } 100% { transform: scale(0.98) translateX(-2px) } }
@keyframes natk-hill  { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes natk-pillar{ 0% { transform: rotateY(5deg) } 50% { transform: rotateY(-3deg) } 100% { transform: rotateY(5deg) } }
@keyframes natk-figure{ 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(4px) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes natk-blood { 0% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.9; transform: scaleX(1.1) } 100% { opacity:0.6; transform: scaleX(0.95) } }

/* ---------- Scene: nestor-continues-story (ncs) ---------- */
.scn-nestor-continues-story {
  background: linear-gradient(180deg, #b0d4e8 0%, #c8e0f6 30%, #7a9aba 60%, #3a5a7a 100%),
              radial-gradient(ellipse at 50% 80%, #9ab8d8 0%, transparent 70%);
}
.scn-nestor-continues-story .sky-sea {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d0e6f2 0%, #c0d8ec 70%, transparent 100%);
  animation: ncs-sky 10s ease-in-out infinite alternate;
}
.scn-nestor-continues-story .sea {
  position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a6a8a 0%, #1a3a5a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
}
.scn-nestor-continues-story .ship-hull {
  position:absolute; bottom:25%; left:50%; width:140px; height:30px; transform:translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 0 0 40% 40% / 0 0 80% 80%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: ncs-ship 8s ease-in-out infinite;
}
.scn-nestor-continues-story .sail {
  position:absolute; bottom:35%; left:50%; width:60px; height:45px; transform:translateX(-50%);
  background: linear-gradient(135deg, #f0e8d8 0%, #d0c8b0 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); box-shadow: 2px 2px 8px rgba(0,0,0,.2);
  animation: ncs-sail 12s ease-in-out infinite alternate;
}
.scn-nestor-continues-story .mast {
  position:absolute; bottom:30%; left:50%; width:6px; height:80px; transform:translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius:2px;
  animation: ncs-mast 8s ease-in-out infinite;
}
.scn-nestor-continues-story .steersman {
  position:absolute; bottom:26%; left:42%; width:16px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: ncs-fall 3s ease-in-out infinite;
}
.scn-nestor-continues-story .wave {
  position:absolute; bottom:30%; width:100%; height:20px; background: radial-gradient(ellipse at 50% 100%, #5a9aba 0%, transparent 80%);
  border-radius:50%; filter: blur(4px);
}
.scn-nestor-continues-story .wave1 {
  left:-10%; animation: ncs-wave1 6s ease-in-out infinite;
}
.scn-nestor-continues-story .wave2 {
  left:30%; animation: ncs-wave2 8s ease-in-out infinite 2s;
}
@keyframes ncs-sky   { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ncs-ship  { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform: translateX(-48%) translateY(-3px) rotate(1deg) } 100% { transform: translateX(-52%) translateY(0) rotate(-1deg) } }
@keyframes ncs-sail  { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.05) } 100% { transform: translateX(-50%) scaleX(0.95) } }
@keyframes ncs-mast  { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes ncs-fall  { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(-4px) rotate(10deg) } 40% { transform: translateX(2px) rotate(-8deg) } 60% { transform: translateX(-6px) rotate(15deg) } 80% { transform: translateX(0) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ncs-wave1 { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(20px) scaleY(1.2) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes ncs-wave2 { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-30px) scaleY(1.3) } 100% { transform: translateX(0) scaleY(1) } }

/* ---------- Scene: sunset-sacrifice (ss) ---------- */
.scn-sunset-sacrifice {
  background: linear-gradient(180deg, #4a3a6a 0%, #6a4a7a 20%, #a06050 45%, #d08050 70%, #e0a060 90%, #f0c080 100%),
              radial-gradient(ellipse at 50% 100%, #e0a050 0%, transparent 60%);
}
.scn-sunset-sacrifice .sky-dusk {
  position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #4a3a6a 0%, #8a4a5a 40%, #c07050 80%, transparent 100%);
  animation: ss-sky 15s ease-in-out infinite alternate;
}
.scn-sunset-sacrifice .sun-dusk {
  position:absolute; bottom:50%; left:40%; width:70px; height:70px; background: radial-gradient(circle, #ffcc66 0%, #e08030 60%, transparent 80%);
  border-radius:50%; box-shadow: 0 0 90px 40px rgba(224,128,48,0.6); animation: ss-sun 18s ease-in-out infinite;
}
.scn-sunset-sacrifice .ground {
  position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-sunset-sacrifice .altar {
  position:absolute; bottom:28%; left:50%; width:70px; height:32px; transform:translateX(-50%);
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: ss-altar 20s ease-in-out infinite alternate;
}
.scn-sunset-sacrifice .fire-glow {
  position:absolute; bottom:34%; left:46%; width:20px; height:20px; background: radial-gradient(circle, #ffa040 0%, #ff8040 40%, transparent 70%);
  border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,128,64,0.5); animation: ss-fire 4s ease-in-out infinite alternate;
}
.scn-sunset-sacrifice .wine-bowl {
  position:absolute; bottom:30%; left:55%; width:30px; height:10px; background: radial-gradient(ellipse, #6a4a3a 0%, #3a2a1a 100%);
  border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: ss-bowl 10s ease-in-out infinite;
}
.scn-sunset-sacrifice .priest {
  position:absolute; bottom:18%; left:50%; width:22px; height:48px; transform:translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; box-shadow: 2px 0 8px rgba(0,0,0,.6); animation: ss-priest 6s ease-in-out infinite;
}
@keyframes ss-sky   { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ss-sun   { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.04) translateY(-3px) } 100% { transform: scale(0.96) translateY(0) } }
@keyframes ss-altar { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.03) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes ss-fire  { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(1) } }
@keyframes ss-bowl  { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes ss-priest{ 0% { transform: translateX(-50%) rotate(-1deg) } 30% { transform: translateX(-48%) rotate(1deg) } 60% { transform: translateX(-52%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(0) } }

/* ---------- Scene: drink-offerings-made (dom) ---------- */
.scn-drink-offerings-made {
  background: linear-gradient(180deg, #3a2a4a 0%, #5a3a5a 20%, #8a4a4a 45%, #b06050 70%, #d08050 100%),
              radial-gradient(ellipse at 50% 0%, #a06050 0%, transparent 60%);
}
.scn-drink-offerings-made .wall-bg {
  position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #6a4a5a 0%, #b07060 40%, #d09060 70%, transparent 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%; animation: dom-wall 12s ease-in-out infinite alternate;
}
.scn-drink-offerings-made .floor-int {
  position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 15px 25px rgba(0,0,0,.5);
}
.scn-drink-offerings-made .table {
  position:absolute; bottom:25%; left:50%; width:120px; height:12px; transform:translateX(-50%);
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a0a 100%); border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: dom-table 18s ease-in-out infinite;
}
.scn-drink-offerings-made .bowl-left {
  position:absolute; bottom:28%; left:38%; width:24px; height:10px; background: radial-gradient(ellipse, #6a4a3a 0%, #2a1a0a 100%);
  border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: dom-bowl 10s ease-in-out infinite;
}
.scn-drink-offerings-made .bowl-right {
  position:absolute; bottom:28%; right:38%; width:24px; height:10px; background: radial-gradient(ellipse, #6a4a3a 0%, #2a1a0a 100%);
  border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: dom-bowl 10s ease-in-out infinite 3s;
}
.scn-drink-offerings-made .water-pour {
  position:absolute; bottom:33%; left:45%; width:8px; height:20px; background: linear-gradient(180deg, #b0d0e0 0%, transparent 100%);
  border-radius: 2px; filter: blur(1px); animation: dom-pour 4s ease-in-out infinite alternate;
}
.scn-drink-offerings-made .figure-left {
  position:absolute; bottom:15%; left:30%; width:18px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  box-shadow: 1px 0 6px rgba(0,0,0,.5); animation: dom-fig 8s ease-in-out infinite;
}
.scn-drink-offerings-made .figure-right {
  position:absolute; bottom:15%; right:30%; width:18px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  box-shadow: -1px 0 6px rgba(0,0,0,.5); animation: dom-fig 8s ease-in-out infinite 4s;
}
@keyframes dom-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes dom-table{ 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes dom-bowl { 0% { transform: rotate(0) } 50% { transform: rotate(4deg) } 100% { transform: rotate(-4deg) } }
@keyframes dom-pour { 0% { opacity:0.4; transform: scaleY(0.8) } 50% { opacity:0.8; transform: scaleY(1.2) } 100% { opacity:0.5; transform: scaleY(0.9) } }
@keyframes dom-fig  { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }

/* Scene: nausicaa-asks-for-wagon */
.scn-nausicaa-asks-for-wagon {
  background: linear-gradient(180deg, #f4d9c0 0%, #e8b894 40%, #c28a6c 100%), radial-gradient(ellipse at 50% 0%, #fff3e0 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-nausicaa-asks-for-wagon .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d6b59a 0%, #b6896c 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: nw-wall 6s ease-in-out infinite alternate;
}
.scn-nausicaa-asks-for-wagon .window {
  position: absolute; top: 12%; left: 50%; width: 70px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ffddb0 0%, #ffc28a 50%, #e69966 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: inset 0 0 20px rgba(255,200,150,0.6);
  animation: nw-window 8s ease-in-out infinite;
}
.scn-nausicaa-asks-for-wagon .light-beam {
  position: absolute; top: 10%; left: 30%; width: 120px; height: 100%;
  background: linear-gradient(135deg, rgba(255,235,200,0.4) 0%, transparent 70%);
  transform: skewX(-15deg);
  filter: blur(8px);
  animation: nw-beam 12s ease-in-out infinite alternate;
}
.scn-nausicaa-asks-for-wagon .figure-father {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #4a3b30 0%, #2a1f18 100%);
  border-radius: 40% 40% 30% 30% / 60% 55% 40% 40%;
  transform-origin: bottom center;
  animation: nw-father 5s ease-in-out infinite;
}
.scn-nausicaa-asks-for-wagon .figure-daughter {
  position: absolute; bottom: 22%; left: 55%; width: 36px; height: 82px;
  background: linear-gradient(180deg, #6a4e3c 0%, #3a2a1e 100%);
  border-radius: 50% 50% 40% 40% / 65% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nw-daughter 4s ease-in-out infinite;
}
.scn-nausicaa-asks-for-wagon .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #8a6f56 0%, #5c4330 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-nausicaa-asks-for-wagon .shadow {
  position: absolute; bottom: 20%; left: 25%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: nw-shadow 12s ease-in-out infinite alternate;
}
@keyframes nw-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes nw-window { 0% { box-shadow: inset 0 0 15px rgba(255,200,150,0.4); } 50% { box-shadow: inset 0 0 30px rgba(255,220,180,0.8); } 100% { box-shadow: inset 0 0 20px rgba(255,200,150,0.5); } }
@keyframes nw-beam { 0% { opacity:0.3; transform: skewX(-15deg) translateX(-5px); } 50% { opacity:0.6; transform: skewX(-15deg) translateX(5px); } 100% { opacity:0.4; transform: skewX(-15deg) translateX(0px); } }
@keyframes nw-father { 0% { transform: scaleY(1) rotate(0deg); } 33% { transform: scaleY(1.01) rotate(-1deg); } 66% { transform: scaleY(0.99) rotate(1deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes nw-daughter { 0% { transform: scaleY(1) translateY(0); } 25% { transform: scaleY(0.99) translateY(-1px); } 50% { transform: scaleY(1.01) translateY(-2px); } 75% { transform: scaleY(1) translateY(0); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes nw-shadow { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(0.95); } }

/* Scene: alcinous-grants-request */
.scn-alcinous-grants-request {
  background: linear-gradient(180deg, #f5d6b0 0%, #dbb188 40%, #b88b6a 100%), radial-gradient(ellipse at 50% 100%, #fff0d0 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-alcinous-grants-request .dawn-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #ffe6c0 0%, #f5c999 40%, #deb488 100%);
  animation: agr-sky 20s ease-in-out infinite alternate;
}
.scn-alcinous-grants-request .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-alcinous-grants-request .pillar {
  position: absolute; bottom: 30%; left: 20%; width: 24px; height: 120px;
  background: linear-gradient(180deg, #d4b898 0%, #b0967a 100%);
  border-radius: 4px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.2);
  animation: agr-pillar 15s ease-in-out infinite;
}
.scn-alcinous-grants-request .throne {
  position: absolute; bottom: 32%; left: 40%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #a67c4e 0%, #7a5a34 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: agr-throne 6s ease-in-out infinite alternate;
}
.scn-alcinous-grants-request .king {
  position: absolute; bottom: 37%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1c 0%, #1f140c 100%);
  border-radius: 40% 40% 30% 30% / 55% 50% 35% 35%;
  transform-origin: bottom center;
  animation: agr-king 5s ease-in-out infinite;
}
.scn-alcinous-grants-request .nausicaa {
  position: absolute; bottom: 34%; left: 55%; width: 34px; height: 78px;
  background: linear-gradient(180deg, #5c4230 0%, #2e1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 55% 40% 40%;
  animation: agr-nausicaa 4s ease-in-out infinite;
}
.scn-alcinous-grants-request .wagon-shape {
  position: absolute; bottom: 38%; left: 70%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3420 100%);
  border-radius: 20% 20% 10% 10%;
  opacity: 0.6;
  animation: agr-wagon 10s ease-in-out infinite alternate;
}
@keyframes agr-sky { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.8; transform: scaleY(0.98); } }
@keyframes agr-pillar { 0% { box-shadow: 4px 0 6px rgba(0,0,0,0.1); } 50% { box-shadow: 6px 0 12px rgba(0,0,0,0.3); } 100% { box-shadow: 2px 0 8px rgba(0,0,0,0.15); } }
@keyframes agr-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes agr-king { 0% { transform: rotate(0deg) scaleY(1); } 33% { transform: rotate(2deg) scaleY(1.02); } 66% { transform: rotate(-1deg) scaleY(0.98); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes agr-nausicaa { 0% { transform: translateY(0); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes agr-wagon { 0% { transform: translateX(-2px) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }

/* Scene: preparations-for-washing */
.scn-preparations-for-washing {
  background: linear-gradient(180deg, #e8cfb0 0%, #cdae8c 40%, #b08b6a 100%), radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 50%);
  background-blend-mode: overlay;
}
.scn-preparations-for-washing .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fcdfc0 0%, #e8bea0 40%, #d4a080 100%);
  animation: pw-sky 12s ease-in-out infinite alternate;
}
.scn-preparations-for-washing .ground-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #a0805a 0%, #6a4e32 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
.scn-preparations-for-washing .wagon {
  position: absolute; bottom: 32%; left: 25%; width: 70px; height: 40px;
  background: linear-gradient(180deg, #7a5a3c 0%, #4a3420 100%);
  border-radius: 15% 15% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pw-wagon 8s ease-in-out infinite alternate;
}
.scn-preparations-for-washing .mule-left {
  position: absolute; bottom: 36%; left: 18%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e12 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  animation: pw-mule 5s ease-in-out infinite;
}
.scn-preparations-for-washing .mule-right {
  position: absolute; bottom: 36%; left: 42%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e12 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  animation: pw-mule 5s ease-in-out infinite reverse;
  animation-delay: 0.5s;
}
.scn-preparations-for-washing .servant {
  position: absolute; bottom: 30%; left: 55%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #48362a 0%, #1f120c 100%);
  border-radius: 40% 40% 30% 30% / 55% 50% 35% 35%;
  transform-origin: bottom center;
  animation: pw-servant 6s ease-in-out infinite;
}
.scn-preparations-for-washing .linen-pile {
  position: absolute; bottom: 34%; left: 48%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #f0d8b8 0%, #d4b890 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: pw-linen 9s ease-in-out infinite alternate;
}
@keyframes pw-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes pw-wagon { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-0.5deg); } }
@keyframes pw-mule { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pw-servant { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(1deg); } 66% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0); } }
@keyframes pw-linen { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(0.95) translateY(1px); } }

/* Scene: washing-by-the-river */
.scn-washing-by-the-river {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4e8 40%, #d0e8f0 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-washing-by-the-river .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3a7a9a 0%, #2a5a7a 40%, #1a3a5a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: wr-river 10s ease-in-out infinite alternate;
}
.scn-washing-by-the-river .bank {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
}
.scn-washing-by-the-river .cistern {
  position: absolute; bottom: 45%; left: 45%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4);
  animation: wr-cistern 8s ease-in-out infinite alternate;
}
.scn-washing-by-the-river .reeds {
  position: absolute; bottom: 38%; left: 15%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 10% 10%;
  transform-origin: bottom center;
  animation: wr-reeds 4s ease-in-out infinite;
}
.scn-washing-by-the-river .figure {
  position: absolute; bottom: 42%; left: 50%; width: 32px; height: 75px;
  background: linear-gradient(180deg, #3a2a1c 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 55% 40% 40%;
  transform-origin: bottom center;
  animation: wr-figure 6s ease-in-out infinite;
}
.scn-washing-by-the-river .wash-basket {
  position: absolute; bottom: 40%; left: 58%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #a0805a 0%, #705040 100%);
  border-radius: 30% 30% 20% 20%;
  animation: wr-basket 7s ease-in-out infinite alternate;
}
.scn-washing-by-the-river .sunlight {
  position: absolute; top: 10%; left: 30%; width: 80px; height: 60px;
  background: radial-gradient(circle, rgba(255,240,200,0.5) 0%, transparent 70%);
  filter: blur(12px);
  animation: wr-sunlight 14s ease-in-out infinite alternate;
}
.scn-washing-by-the-river .ripple1 {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 4px;
  background: rgba(255,255,255,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: wr-ripple 6s linear infinite;
}
.scn-washing-by-the-river .ripple2 {
  position: absolute; bottom: 28%; right: 25%; width: 30px; height: 3px;
  background: rgba(255,255,255,0.2);
  border-radius: 50%;
  filter: blur(2px);
  animation: wr-ripple 8s linear infinite reverse;
  animation-delay: 2s;
}
@keyframes wr-river { 0% { opacity:0.8; transform: translateY(0); } 50% { opacity:1; transform: translateY(-1px); } 100% { opacity:0.9; transform: translateY(1px); } }
@keyframes wr-cistern { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes wr-reeds { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(-5deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes wr-figure { 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); } }
@keyframes wr-basket { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.03); } 100% { transform: translateY(1px) scaleX(0.97); } }
@keyframes wr-sunlight { 0% { opacity:0.4; transform: translateX(-10px); } 50% { opacity:0.7; transform: translateX(10px); } 100% { opacity:0.5; transform: translateX(0); } }
@keyframes wr-ripple { 0% { transform: scale(0.5); opacity:0.8; } 50% { transform: scale(1.5); opacity:0.2; } 100% { transform: scale(2.5); opacity:0; } }

.scn-ulysses-begs-for-aid {
  background: linear-gradient(180deg, #ffdbb8 0%, #b8d4e8 40%, #78a0b0 60%, #c2a17a 80%, #d4b896 100%), 
              radial-gradient(ellipse at 50% 0%, #ffe8c8 0%, transparent 60%);
}
.scn-ulysses-begs-for-aid .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffe6c0 0%, #b8d4e8 100%); animation: uba-sky 20s ease-in-out infinite alternate; }
.scn-ulysses-begs-for-aid .sea { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #78a0b0 0%, #4a7890 100%); border-radius:0 0 20% 20%; animation: uba-sea 12s ease-in-out infinite alternate; }
.scn-ulysses-begs-for-aid .sand { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #d4b896 0%, #c2a17a 100%); border-radius:40% 30% 0 0; }
.scn-ulysses-begs-for-aid .sun-ray-1 { position:absolute; top:8%; left:20%; width:4px; height:40%; background: linear-gradient(180deg, rgba(255,220,150,.6) 0%, transparent 100%); transform:rotate(-15deg); border-radius:2px; animation: uba-ray1 6s ease-in-out infinite alternate; }
.scn-ulysses-begs-for-aid .sun-ray-2 { position:absolute; top:5%; right:30%; width:3px; height:35%; background: linear-gradient(180deg, rgba(255,220,150,.4) 0%, transparent 100%); transform:rotate(10deg); border-radius:2px; animation: uba-ray2 8s ease-in-out infinite alternate; }
.scn-ulysses-begs-for-aid .figure-ulysses { position:absolute; bottom:20%; left:18%; width:24px; height:40px; background: linear-gradient(180deg, #8a6e4e 0%, #5a3e2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: uba-ulysses 5s ease-in-out infinite; }
.scn-ulysses-begs-for-aid .figure-nausicaa { position:absolute; bottom:22%; right:22%; width:28px; height:48px; background: linear-gradient(180deg, #f0d0b0 0%, #d4a880 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: uba-nausicaa 5s ease-in-out infinite 2s; }
.scn-ulysses-begs-for-aid .cloud { position:absolute; top:12%; left:10%; width:60px; height:14px; background: linear-gradient(180deg, rgba(255,255,240,.5) 0%, transparent 100%); border-radius:50%; filter:blur(4px); animation: uba-cloud 35s linear infinite; }
@keyframes uba-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes uba-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes uba-ray1 { 0% { opacity:.2; transform:rotate(-15deg) scaleY(1) } 50% { opacity:.6; transform:rotate(-10deg) scaleY(1.1) } 100% { opacity:.3; transform:rotate(-15deg) scaleY(1) } }
@keyframes uba-ray2 { 0% { opacity:.3; transform:rotate(10deg) scaleY(1) } 50% { opacity:.7; transform:rotate(15deg) scaleY(1.2) } 100% { opacity:.4; transform:rotate(10deg) scaleY(1) } }
@keyframes uba-ulysses { 0% { transform: translate(0,0) rotate(-2deg) scaleY(1) } 50% { transform: translate(2px,-2px) rotate(2deg) scaleY(1.02) } 100% { transform: translate(0,0) rotate(-2deg) scaleY(1) } }
@keyframes uba-nausicaa { 0% { transform: translate(0,0) rotate(1deg) } 50% { transform: translate(-2px,-2px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(1deg) } }
@keyframes uba-cloud { 0% { transform: translateX(-80px) } 100% { transform: translateX(110vw) } }

.scn-nausicaa-responds {
  background: linear-gradient(180deg, #ffdbb8 0%, #b8d4e8 40%, #78a0b0 60%, #c2a17a 80%, #d4b896 100%), 
              radial-gradient(ellipse at 50% 0%, #ffe8c8 0%, transparent 60%);
}
.scn-nausicaa-responds .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffe6c0 0%, #b8d4e8 100%); animation: nau-sky 20s ease-in-out infinite alternate; }
.scn-nausicaa-responds .sea { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #78a0b0 0%, #4a7890 100%); border-radius:0 0 20% 20%; animation: nau-sea 12s ease-in-out infinite alternate; }
.scn-nausicaa-responds .sand { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #d4b896 0%, #c2a17a 100%); border-radius:40% 30% 0 0; }
.scn-nausicaa-responds .figure-nausicaa-big { position:absolute; bottom:18%; left:38%; width:36px; height:60px; background: linear-gradient(180deg, #f0d0b0 0%, #d4a880 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: nau-nau 6s ease-in-out infinite; }
.scn-nausicaa-responds .figure-ulysses-small { position:absolute; bottom:15%; left:15%; width:20px; height:34px; background: linear-gradient(180deg, #8a6e4e 0%, #5a3e2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: nau-ulysses 4s ease-in-out infinite; }
.scn-nausicaa-responds .drape { position:absolute; bottom:30%; left:45%; width:14px; height:22px; background: linear-gradient(180deg, #f8e8d0 0%, #d4c0a0 100%); border-radius:50% 50% 0 0; transform-origin:top center; animation: nau-drape 7s ease-in-out infinite alternate; }
.scn-nausicaa-responds .light-sparkle { position:absolute; top:20%; left:50%; width:8px; height:8px; background: radial-gradient(circle, #fff8e0 0%, transparent 70%); border-radius:50%; box-shadow:0 0 20px 6px rgba(255,240,200,.5); animation: nau-spark 3s ease-in-out infinite; }
.scn-nausicaa-responds .cloud { position:absolute; top:10%; right:20%; width:70px; height:16px; background: linear-gradient(180deg, rgba(255,255,240,.5) 0%, transparent 100%); border-radius:50%; filter:blur(5px); animation: nau-cloud 40s linear infinite; }
@keyframes nau-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes nau-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes nau-nau { 0% { transform: translate(0,0) rotate(0deg) scaleY(1) } 50% { transform: translate(2px,-2px) rotate(2deg) scaleY(1.03) } 100% { transform: translate(0,0) rotate(0deg) scaleY(1) } }
@keyframes nau-ulysses { 0% { transform: translate(0,0) rotate(-1deg) } 50% { transform: translate(1px,-1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(-1deg) } }
@keyframes nau-drape { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(3deg) scaleX(1.05) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes nau-spark { 0%,100% { opacity:.3; transform: scale(.8) } 50% { opacity:1; transform: scale(1.2) } }
@keyframes nau-cloud { 0% { transform: translateX(80px) } 100% { transform: translateX(-110vw) } }

.scn-nausicaa-calls-her-maids {
  background: linear-gradient(180deg, #ffdbb8 0%, #b8d4e8 40%, #78a0b0 60%, #c2a17a 80%, #d4b896 100%), 
              radial-gradient(ellipse at 50% 0%, #ffe8c8 0%, transparent 60%);
}
.scn-nausicaa-calls-her-maids .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffe6c0 0%, #b8d4e8 100%); animation: ncm-sky 20s ease-in-out infinite alternate; }
.scn-nausicaa-calls-her-maids .sea { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #78a0b0 0%, #4a7890 100%); border-radius:0 0 20% 20%; animation: ncm-sea 12s ease-in-out infinite alternate; }
.scn-nausicaa-calls-her-maids .sand { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #d4b896 0%, #c2a17a 100%); border-radius:40% 30% 0 0; }
.scn-nausicaa-calls-her-maids .figure-nausicaa { position:absolute; bottom:22%; left:20%; width:28px; height:48px; background: linear-gradient(180deg, #f0d0b0 0%, #d4a880 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ncm-nau 5s ease-in-out infinite; }
.scn-nausicaa-calls-her-maids .maid-1 { position:absolute; bottom:20%; left:55%; width:20px; height:36px; background: linear-gradient(180deg, #d4c0a0 0%, #b89878 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ncm-maid1 4s ease-in-out infinite; }
.scn-nausicaa-calls-her-maids .maid-2 { position:absolute; bottom:18%; left:72%; width:20px; height:34px; background: linear-gradient(180deg, #c8b090 0%, #a88868 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ncm-maid2 4.5s ease-in-out infinite 0.5s; }
.scn-nausicaa-calls-her-maids .dust { position:absolute; bottom:15%; left:60%; width:40px; height:8px; background: radial-gradient(ellipse, rgba(210,190,160,.4) 0%, transparent 100%); border-radius:50%; filter:blur(3px); animation: ncm-dust 3s ease-in-out infinite; }
@keyframes ncm-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ncm-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ncm-nau { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(2px,-2px) rotate(2deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes ncm-maid1 { 0% { transform: translate(0,0) rotate(-1deg) } 50% { transform: translate(-3px,0) rotate(1deg) } 100% { transform: translate(0,0) rotate(-1deg) } }
@keyframes ncm-maid2 { 0% { transform: translate(0,0) rotate(1deg) } 50% { transform: translate(-4px,-1px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(1deg) } }
@keyframes ncm-dust { 0%,100% { opacity:.2; transform: scale(.8) translateY(0) } 50% { opacity:.6; transform: scale(1.2) translateY(-4px) } }

.scn-maids-tend-ulysses {
  background: linear-gradient(180deg, #ffdbb8 0%, #b8d4e8 40%, #78a0b0 60%, #c2a17a 80%, #d4b896 100%), 
              radial-gradient(ellipse at 50% 50%, #ffe8c8 0%, transparent 70%);
}
.scn-maids-tend-ulysses .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe6c0 0%, #b8d4e8 100%); animation: mtu-sky 20s ease-in-out infinite alternate; }
.scn-maids-tend-ulysses .sand { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #d4b896 0%, #c2a17a 100%); border-radius:30% 20% 0 0; }
.scn-maids-tend-ulysses .shelter { position:absolute; bottom:20%; left:15%; width:70px; height:50px; background: linear-gradient(180deg, #b09878 0%, #8a7050 100%); border-radius:40% 60% 20% 20% / 60% 50% 30% 30%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.2); animation: mtu-shelter 8s ease-in-out infinite; }
.scn-maids-tend-ulysses .figure-ulysses { position:absolute; bottom:18%; left:22%; width:22px; height:36px; background: linear-gradient(180deg, #8a6e4e 0%, #5a3e2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: mtu-ulysses 5s ease-in-out infinite; }
.scn-maids-tend-ulysses .maid-1 { position:absolute; bottom:22%; left:45%; width:18px; height:30px; background: linear-gradient(180deg, #d4c0a0 0%, #b89878 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: mtu-maid1 4s ease-in-out infinite; }
.scn-maids-tend-ulysses .maid-2 { position:absolute; bottom:20%; left:65%; width:18px; height:30px; background: linear-gradient(180deg, #c8b090 0%, #a88868 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: mtu-maid2 4.2s ease-in-out infinite 0.3s; }
.scn-maids-tend-ulysses .item-cloak { position:absolute; bottom:28%; left:55%; width:16px; height:10px; background: linear-gradient(180deg, #e0c8a8 0%, #c8a888 100%); border-radius:30% 30% 10% 10%; transform:rotate(10deg); animation: mtu-cloak 6s ease-in-out infinite alternate; }
.scn-maids-tend-ulysses .item-oil { position:absolute; bottom:25%; left:68%; width:12px; height:14px; background: radial-gradient(circle, #f0d8b0 0%, #c8a060 100%); border-radius:40% 40% 20% 20%; box-shadow:0 2px 6px rgba(0,0,0,.2); animation: mtu-oil 5s ease-in-out infinite; }
@keyframes mtu-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mtu-shelter { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes mtu-ulysses { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(1px,-1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes mtu-maid1 { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(-2px,0) rotate(1deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes mtu-maid2 { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(-3px,0) rotate(-1deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes mtu-cloak { 0% { transform: rotate(10deg) scaleX(1) } 50% { transform: rotate(15deg) scaleX(1.05) } 100% { transform: rotate(10deg) scaleX(1) } }
@keyframes mtu-oil { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } }

/* false-phoenician-story */
.scn-false-phoenician-story {
  background: linear-gradient(180deg, #7ec8e3 0%, #f9d77e 50%, #e0a63a 100%), radial-gradient(ellipse at 50% 100%, #f0c060 0%, transparent 70%);
}
.scn-false-phoenician-story .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #f5e6b8 100%);
  animation: fs1-sky 20s ease-in-out infinite alternate;
}
.scn-false-phoenician-story .sun {
  position: absolute; top: 12%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff4d0 0%, #f9d77e 70%);
  border-radius: 50%; box-shadow: 0 0 80px 20px #f9d77e;
  animation: fs1-sun 10s ease-in-out infinite;
}
.scn-false-phoenician-story .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a6496 0%, #1a3c5e 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
  animation: fs1-sea 5s ease-in-out infinite alternate;
}
.scn-false-phoenician-story .ship {
  position: absolute; bottom: 20%; left: 30%; width: 160px; height: 50px;
  background: linear-gradient(90deg, #6b3a1a 0%, #8b5a3a 50%, #5a2a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 100% 100%;
  transform: rotate(-2deg);
  animation: fs1-ship 6s ease-in-out infinite;
}
.scn-false-phoenician-story .sail {
  position: absolute; bottom: 35%; left: 35%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
  clip-path: polygon(0 0, 100% 10%, 100% 90%, 0 100%);
  transform-origin: bottom center;
  animation: fs1-sail 8s ease-in-out infinite;
}
.scn-false-phoenician-story .figure-merchant {
  position: absolute; bottom: 24%; left: 50%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fs1-figure 5s ease-in-out infinite;
}
.scn-false-phoenician-story .figure-traveler {
  position: absolute; bottom: 24%; left: 62%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fs1-figure 5s ease-in-out infinite 2.5s;
}
.scn-false-phoenician-story .cargo {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #8b6b3a 0%, #4a2a0a 100%);
  border-radius: 8%;
  transform: skewX(-10deg);
  animation: fs1-cargo 10s linear infinite;
}
.scn-false-phoenician-story .cloud {
  position: absolute; top: 14%; width: 120px; height: 20px;
  background: rgba(255,255,240,0.6);
  border-radius: 50%; filter: blur(8px);
  animation: fs1-drift 40s linear infinite;
}
.scn-false-phoenician-story .fs1-cloud-a { left: -10%; }
.scn-false-phoenician-story .fs1-cloud-b { top: 18%; left: 30%; width: 90px; height: 16px; animation-duration: 55s; animation-delay: -10s; }

@keyframes fs1-sky    { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes fs1-sun    { 0%,100% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.05) rotate(5deg) } }
@keyframes fs1-sea    { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes fs1-ship   { 0%,100% { transform: rotate(-2deg) translateX(0) } 25% { transform: rotate(0deg) translateX(2px) } 50% { transform: rotate(2deg) translateX(0) } 75% { transform: rotate(0deg) translateX(-2px) } }
@keyframes fs1-sail   { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(3deg) scaleX(0.95) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes fs1-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(0deg) } 50% { transform: translateX(6px) translateY(0) rotate(1deg) } 75% { transform: translateX(3px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes fs1-cargo  { 0% { transform: skewX(-10deg) translateY(0) } 50% { transform: skewX(5deg) translateY(-3px) } 100% { transform: skewX(-10deg) translateY(0) } }
@keyframes fs1-drift  { 0% { transform: translateX(-150px) } 100% { transform: translateX(100vw) } }

/* false-shipwreck */
.scn-false-shipwreck {
  background: linear-gradient(180deg, #0a0a1e 0%, #141430 30%, #2a2a4e 100%), radial-gradient(ellipse at 50% 100%, #1a1a3e 0%, transparent 70%);
}
.scn-false-shipwreck .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  animation: fs2-sky 15s ease-in-out infinite alternate;
}
.scn-false-shipwreck .storm-cloud {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 50%, transparent 100%);
  filter: blur(5px);
  animation: fs2-cloud 8s ease-in-out infinite alternate;
}
.scn-false-shipwreck .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #0e1e2e 0%, #051018 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: fs2-sea 4s ease-in-out infinite alternate;
}
.scn-false-shipwreck .ship-wreck {
  position: absolute; bottom: 22%; left: 40%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform: rotate(15deg) translateY(10px);
  animation: fs2-wreck 5s ease-in-out infinite;
}
.scn-false-shipwreck .mast {
  position: absolute; bottom: 32%; left: 46%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 10%;
  transform: rotate(25deg);
  animation: fs2-mast 5s ease-in-out infinite;
}
.scn-false-shipwreck .wave {
  position: absolute; bottom: 10%; width: 200px; height: 40px;
  background: rgba(20,40,60,0.6);
  border-radius: 50%;
  filter: blur(6px);
  animation: fs2-wave 6s ease-in-out infinite;
}
.scn-false-shipwreck .fs2-wave-1 { left: -20%; animation-delay: -2s; }
.scn-false-shipwreck .fs2-wave-2 { right: -10%; bottom: 15%; width: 150px; height: 30px; animation-delay: -4s; }
.scn-false-shipwreck .lightning-flash {
  position: absolute; top: 8%; left: 30%; width: 4px; height: 50px;
  background: #fff;
  box-shadow: 0 0 20px 10px rgba(200,200,255,.5);
  transform: rotate(-10deg);
  animation: fs2-lightning 4s steps(2, end) infinite;
}
.scn-false-shipwreck .rain {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.1) 50%, transparent 100%);
  background-size: 5px 100px;
  animation: fs2-rain 0.5s linear infinite;
}

@keyframes fs2-sky       { 0% { opacity: .9 } 50% { opacity: .6 } 100% { opacity: .9 } }
@keyframes fs2-cloud     { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-5px) scaleX(1.1) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes fs2-sea       { 0% { transform: translateY(0) } 50% { transform: translateY(-6px) } 100% { transform: translateY(0) } }
@keyframes fs2-wreck     { 0% { transform: rotate(15deg) translateY(10px) } 50% { transform: rotate(20deg) translateY(15px) } 100% { transform: rotate(15deg) translateY(10px) } }
@keyframes fs2-mast      { 0% { transform: rotate(25deg) translateY(0) } 50% { transform: rotate(30deg) translateY(-2px) } 100% { transform: rotate(25deg) translateY(0) } }
@keyframes fs2-wave      { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-20px) translateY(-5px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes fs2-lightning { 0% { opacity: 1 } 25% { opacity: 0 } 50% { opacity: 1 } 100% { opacity: 0 } }
@keyframes fs2-rain      { 0% { background-position: 0 0 } 100% { background-position: 0 100px } }

/* false-news-of-ulysses */
.scn-false-news-of-ulysses {
  background: linear-gradient(180deg, #d4b878 0%, #c8a868 30%, #a08050 100%), radial-gradient(ellipse at 50% 0%, #f0d090 0%, transparent 70%);
}
.scn-false-news-of-ulysses .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8a868 0%, #b89050 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.2);
}
.scn-false-news-of-ulysses .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08040 0%, #806030 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,.3);
}
.scn-false-news-of-ulysses .window {
  position: absolute; top: 15%; left: 70%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #f0e0b0 0%, #d0c090 100%);
  border: 8px solid #705030;
  border-radius: 4%;
  box-shadow: inset 0 0 40px rgba(255,200,100,0.3);
}
.scn-false-news-of-ulysses .sunbeam {
  position: absolute; top: 15%; left: 70%; width: 80px; height: 200px;
  background: linear-gradient(180deg, rgba(255,230,150,0.4) 0%, transparent 100%);
  transform: skewX(15deg);
  animation: fs3-beam 10s ease-in-out infinite alternate;
}
.scn-false-news-of-ulysses .throne {
  position: absolute; bottom: 30%; left: 40%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #a08050 0%, #806030 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
  transform: perspective(200px) rotateX(10deg);
}
.scn-false-news-of-ulysses .king {
  position: absolute; bottom: 32%; left: 43%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fs3-king 12s ease-in-out infinite;
}
.scn-false-news-of-ulysses .chest {
  position: absolute; bottom: 30%; left: 25%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #b09060 0%, #806030 100%);
  border-radius: 8%;
  box-shadow: 0 0 20px 5px rgba(200,160,80,0.5);
  animation: fs3-chest 6s ease-in-out infinite;
}
.scn-false-news-of-ulysses .statue {
  position: absolute; bottom: 30%; left: 60%; width: 16px; height: 70px;
  background: linear-gradient(180deg, #c0b090 0%, #a09080 100%);
  border-radius: 20% 20% 10% 10%;
  transform: perspective(200px) rotateX(5deg);
  animation: fs3-statue 15s ease-in-out infinite;
}

@keyframes fs3-beam   { 0% { opacity: 0.3; transform: skewX(15deg) scaleY(1) } 50% { opacity: 0.6; transform: skewX(18deg) scaleY(1.1) } 100% { opacity: 0.3; transform: skewX(15deg) scaleY(1) } }
@keyframes fs3-king   { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes fs3-chest  { 0% { box-shadow: 0 0 20px 5px rgba(200,160,80,0.5); } 50% { box-shadow: 0 0 40px 10px rgba(200,160,80,0.8); } 100% { box-shadow: 0 0 20px 5px rgba(200,160,80,0.5); } }
@keyframes fs3-statue { 0%,100% { transform: perspective(200px) rotateX(5deg) translateY(0) } 50% { transform: perspective(200px) rotateX(8deg) translateY(-2px) } }

/* false-sailors-betray */
.scn-false-sailors-betray {
  background: linear-gradient(180deg, #05050f 0%, #0f0f2a 40%, #1a1a3e 100%), radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, transparent 70%);
}
.scn-false-sailors-betray .night-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #141430 100%);
  animation: fs4-sky 18s ease-in-out infinite alternate;
}
.scn-false-sailors-betray .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  transform: perspective(400px) rotateX(15deg);
}
.scn-false-sailors-betray .mast {
  position: absolute; bottom: 45%; left: 50%; width: 8px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 10%;
  transform: translateX(-50%) rotate(5deg);
  animation: fs4-mast 12s ease-in-out infinite;
}
.scn-false-sailors-betray .figure-bound {
  position: absolute; bottom: 15%; left: 35%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fs4-bound 6s ease-in-out infinite;
}
.scn-false-sailors-betray .sailor-left {
  position: absolute; bottom: 15%; left: 22%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: fs4-sailor 8s ease-in-out infinite alternate;
}
.scn-false-sailors-betray .sailor-right {
  position: absolute; bottom: 15%; left: 55%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: fs4-sailor 8s ease-in-out infinite alternate 4s;
}
.scn-false-sailors-betray .rope {
  position: absolute; bottom: 28%; left: 35%; width: 30px; height: 4px;
  background: #8b6b3a;
  border-radius: 20%;
  transform: rotate(-30deg);
  animation: fs4-rope 5s ease-in-out infinite;
}
.scn-false-sailors-betray .cloak-torn {
  position: absolute; bottom: 10%; left: 38%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0 0, 80% 10%, 100% 60%, 60% 100%, 20% 80%);
  animation: fs4-cloak 7s ease-in-out infinite;
}
.scn-false-sailors-betray .cloud {
  position: absolute; top: 12%; right: 0; width: 200px; height: 30px;
  background: rgba(20,20,40,0.6);
  border-radius: 50%; filter: blur(10px);
  animation: fs4-drift 45s linear infinite;
}

@keyframes fs4-sky    { 0% { opacity: .8 } 50% { opacity: .5 } 100% { opacity: .8 } }
@keyframes fs4-mast   { 0%,100% { transform: translateX(-50%) rotate(5deg) } 50% { transform: translateX(-50%) rotate(8deg) } }
@keyframes fs4-bound  { 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 fs4-sailor { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes fs4-rope   { 0% { transform: rotate(-30deg) scaleX(1) } 50% { transform: rotate(-20deg) scaleX(1.1) } 100% { transform: rotate(-30deg) scaleX(1) } }
@keyframes fs4-cloak  { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fs4-drift  { 0% { transform: translateX(100vw) } 100% { transform: translateX(-200px) } }

/* calypso-protests */
.scn-calypso-protests {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 30%, #5a3a1a 0%, transparent 70%);
}
.scn-calypso-protests .cave-wall {
  position:absolute; inset:0; background: linear-gradient(135deg, #5a4a3a 0%, #2a1a0a 100%); opacity:0.4;
  animation: cp-wall 12s ease-in-out infinite alternate;
}
.scn-calypso-protests .cave-floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #1a1008 0%, #3a2a1a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-calypso-protests .fire {
  position:absolute; bottom:30%; left:45%; width:30px; height:50px;
  background: radial-gradient(circle at 50% 80%, #ffcc44 0%, #ff8822 40%, #cc4400 70%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 60px 20px #ff8822, 0 0 120px 40px rgba(255,80,0,0.3);
  animation: cp-fire 0.8s ease-in-out infinite alternate;
}
.scn-calypso-protests .figure-cp {
  position:absolute; bottom:25%; left:50%; width:40px; height:80px; transform:translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: cp-figure 4s ease-in-out infinite;
}
.scn-calypso-protests .arm-cp {
  position:absolute; bottom:48%; left:52%; width:20px; height:40px; transform-origin: bottom left;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: cp-arm 1.5s ease-in-out infinite alternate;
}
.scn-calypso-protests .shadow-cp {
  position:absolute; bottom:25%; left:40%; width:80px; height:20px;
  background: rgba(0,0,0,0.6); border-radius: 50%; filter: blur(6px);
  animation: cp-shadow 6s ease-in-out infinite;
}
@keyframes cp-wall { 0% { opacity:0.3; transform:scale(1); } 50% { opacity:0.5; transform:scale(1.02); } 100% { opacity:0.4; transform:scale(1); } }
@keyframes cp-fire { 0% { transform: scale(1) rotate(-2deg); opacity:0.8; box-shadow: 0 0 40px 15px #ff8822; } 50% { transform: scale(1.15) rotate(2deg); opacity:1; box-shadow: 0 0 80px 30px #ffaa33; } 100% { transform: scale(0.9) rotate(-1deg); opacity:0.9; box-shadow: 0 0 60px 20px #ff8822; } }
@keyframes cp-figure { 0% { transform:translateX(-50%) translateY(0) rotate(0deg); } 50% { transform:translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform:translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes cp-arm { 0% { transform: rotate(-30deg) translate(0,0); } 50% { transform: rotate(-10deg) translate(-5px,-5px); } 100% { transform: rotate(-30deg) translate(0,0); } }
@keyframes cp-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.3); opacity:0.7; } 100% { transform: scaleX(1); opacity:0.5; } }

/* mercury-leaves */
.scn-mercury-leaves {
  background: linear-gradient(180deg, #c8d8e8 0%, #e8f0f8 50%, #f0f0f0 100%),
              radial-gradient(ellipse at 50% 20%, #ffffff 0%, transparent 60%);
}
.scn-mercury-leaves .doorway {
  position:absolute; left:20%; top:10%; width:40%; height:85%;
  background: linear-gradient(180deg, #d0d8e0 0%, #a0b0c0 100%);
  border-radius: 50% 50% 10% 10% / 20% 20% 80% 80%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
}
.scn-mercury-leaves .figure-ml {
  position:absolute; bottom:25%; left:30%; width:30px; height:70px;
  background: linear-gradient(180deg, #607080 0%, #405060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ml-figure 8s ease-in-out infinite;
}
.scn-mercury-leaves .figure-calypso-watch {
  position:absolute; bottom:20%; left:60%; width:35px; height:75px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: ml-calypso 10s ease-in-out infinite;
}
.scn-mercury-leaves .light-fill {
  position:absolute; inset:0; background: radial-gradient(ellipse at 30% 30%, rgba(255,255,255,0.3) 0%, transparent 50%);
  animation: ml-light 15s ease-in-out infinite alternate;
}
.scn-mercury-leaves .floor-ml {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(0deg, #b0b8c0 0%, #c8d0d8 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
}
.scn-mercury-leaves .shadow-left {
  position:absolute; bottom:25%; left:20%; width:40px; height:10px;
  background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(5px);
  animation: ml-shadow 12s ease-in-out infinite;
}
.scn-mercury-leaves .shadow-right {
  position:absolute; bottom:20%; right:20%; width:50px; height:12px;
  background: rgba(0,0,0,0.1); border-radius: 50%; filter: blur(6px);
  animation: ml-shadow 14s ease-in-out infinite reverse;
}
@keyframes ml-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-10px) translateY(-2px) rotate(-5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ml-calypso { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(5px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ml-light { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ml-shadow { 0% { transform: scaleX(1); opacity:0.4; } 50% { transform: scaleX(1.5); opacity:0.7; } 100% { transform: scaleX(1); opacity:0.4; } }

/* calypso-finds-ulysses */
.scn-calypso-finds-ulysses {
  background: linear-gradient(180deg, #ffeedd 0%, #ffbb88 40%, #88bbdd 70%, #336699 100%),
              radial-gradient(ellipse at 50% 30%, #ffccaa 0%, transparent 60%);
}
.scn-calypso-finds-ulysses .sky-cfu {
  position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffddcc 0%, #ffccaa 40%, #aaccee 70%, #6699cc 100%);
  animation: cfu-sky 20s ease-in-out infinite alternate;
}
.scn-calypso-finds-ulysses .ocean {
  position:absolute; bottom:20%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #88bbdd 0%, #4477aa 100%);
  border-radius: 70% 30% 0 0 / 40% 60% 0 0;
  animation: cfu-ocean 12s ease-in-out infinite alternate;
}
.scn-calypso-finds-ulysses .sand {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #eeddbb 0%, #ccaa88 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-calypso-finds-ulysses .figure-ulysses {
  position:absolute; bottom:15%; left:40%; width:35px; height:65px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cfu-ulysses 8s ease-in-out infinite;
}
.scn-calypso-finds-ulysses .tear-puddle {
  position:absolute; bottom:15%; left:42%; width:12px; height:4px;
  background: rgba(100,150,200,0.5); border-radius: 50%; filter: blur(2px);
  animation: cfu-tear 6s ease-in-out infinite;
}
.scn-calypso-finds-ulysses .cloud-cfu-a {
  position:absolute; top:12%; left:10%; width:100px; height:20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.3) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: cfu-drift-a 40s linear infinite;
}
.scn-calypso-finds-ulysses .cloud-cfu-b {
  position:absolute; top:18%; right:5%; width:70px; height:15px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: cfu-drift-b 55s linear infinite reverse;
}
@keyframes cfu-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes cfu-ocean { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cfu-ulysses { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cfu-tear { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.5); opacity:0.7; } 100% { transform: scaleX(1); opacity:0.3; } }
@keyframes cfu-drift-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes cfu-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* calypso-tells-ulysses-he-can-go */
.scn-calypso-tells-ulysses-he-can-go {
  background: linear-gradient(180deg, #ffdd99 0%, #ffcc77 30%, #ffccaa 60%, #ffeecc 100%),
              radial-gradient(ellipse at 50% 30%, #ffffff 0%, transparent 50%);
}
.scn-calypso-tells-ulysses-he-can-go .sky-ctg {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffddbb 0%, #ffccee 40%, #aaccee 70%, #6699cc 100%);
  animation: ctg-sky 18s ease-in-out infinite alternate;
}
.scn-calypso-tells-ulysses-he-can-go .ground-ctg {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #ccaa77 0%, #aa8855 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-calypso-tells-ulysses-he-can-go .figure-calypso-speak {
  position:absolute; bottom:25%; left:45%; width:35px; height:70px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ctg-calypso 5s ease-in-out infinite;
}
.scn-calypso-tells-ulysses-he-can-go .figure-ulysses-listen {
  position:absolute; bottom:28%; left:55%; width:30px; height:65px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: ctg-ulysses 7s ease-in-out infinite;
}
.scn-calypso-tells-ulysses-he-can-go .gesture-arm {
  position:absolute; bottom:48%; left:48%; width:15px; height:35px; transform-origin: bottom left;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: ctg-arm 3s ease-in-out infinite alternate;
}
.scn-calypso-tells-ulysses-he-can-go .warm-glow {
  position:absolute; bottom:30%; left:40%; width:100px; height:100px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: ctg-glow 8s ease-in-out infinite alternate;
}
.scn-calypso-tells-ulysses-he-can-go .sparkle-a {
  position:absolute; bottom:45%; left:30%; width:4px; height:4px;
  background: #ffddaa; border-radius: 50%; box-shadow: 0 0 6px 2px #ffdd99;
  animation: ctg-sparkle 4s ease-in-out infinite;
}
.scn-calypso-tells-ulysses-he-can-go .sparkle-b {
  position:absolute; bottom:35%; left:60%; width:3px; height:3px;
  background: #ffeecc; border-radius: 50%; box-shadow: 0 0 4px 1px #ffeedd;
  animation: ctg-sparkle 5s ease-in-out infinite 2s;
}
@keyframes ctg-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ctg-calypso { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ctg-ulysses { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ctg-arm { 0% { transform: rotate(-40deg) translate(0,0); } 50% { transform: rotate(-15deg) translate(-5px,-3px); } 100% { transform: rotate(-40deg) translate(0,0); } }
@keyframes ctg-glow { 0% { transform: scale(1); opacity:0.5; } 50% { transform: scale(1.2); opacity:0.8; } 100% { transform: scale(1); opacity:0.6; } }
@keyframes ctg-sparkle { 0% { opacity:0; transform: translateY(0) scale(0.5); } 50% { opacity:1; transform: translateY(-10px) scale(1.5); } 100% { opacity:0; transform: translateY(-20px) scale(0.5); } }

.scn-vision-reassures { background: linear-gradient(170deg, #3a2a1a 0%, #2a1a0e 40%, #1a0f08 100%), radial-gradient(ellipse at 30% 60%, #4a3020 0%, transparent 60%); }
.scn-vision-reassures .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0e 0%, #1a0f08 100%); }
.scn-vision-reassures .wall { position:absolute; inset:10% 5% 25% 5%; border-radius:4%; background: linear-gradient(135deg, #4a3020 0%, #2a1a0e 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.7); animation: vr-wall 18s ease-in-out infinite; }
.scn-vision-reassures .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #1a0f08 0%, #2a1a0e 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; }
.scn-vision-reassures .bed { position:absolute; bottom:15%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #5e3a2a 0%, #3a1f10 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: vr-bed 6s ease-in-out infinite alternate; }
.scn-vision-reassures .figure { position:absolute; bottom:22%; left:50%; width:20px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a878 0%, #a08050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.8; animation: vr-figure 5s ease-in-out infinite; }
.scn-vision-reassures .aura { position:absolute; bottom:15%; left:46%; width:40px; height:60px; background: radial-gradient(circle, #d4b040 0%, #a08030 40%, transparent 70%); border-radius:50%; filter:blur(6px); animation: vr-aura 4s ease-in-out infinite alternate; }
.scn-vision-reassures .mote { position:absolute; top:30%; left:20%; width:4px; height:4px; background:#e0c060; border-radius:50%; box-shadow: 0 0 8px 2px #c09040; animation: vr-mote 9s ease-in-out infinite; }
@keyframes vr-wall { 0%{ opacity:.7 } 50%{ opacity:.9 } 100%{ opacity:.7 } }
@keyframes vr-bed { 0%{ transform: translateY(0) } 100%{ transform: translateY(-2px) } }
@keyframes vr-figure { 0%{ transform: translateX(-50%) translateY(0) rotate(-1deg) } 50%{ transform: translateX(-50%) translateY(-3px) rotate(1deg) } 100%{ transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes vr-aura { 0%{ opacity:.4; transform: scale(.9) } 100%{ opacity:.8; transform: scale(1.1) } }
@keyframes vr-mote { 0%{ transform: translate(0,0) scale(.8); opacity:.3 } 50%{ transform: translate(20px,-10px) scale(1.2); opacity:1 } 100%{ transform: translate(40px,-20px) scale(.8); opacity:.3 } }

.scn-penelope-asks-about-ulysses { background: linear-gradient(170deg, #2a1a1a 0%, #1a0f0e 40%, #0e0807 100%), radial-gradient(ellipse at 50% 80%, #3a2020 0%, transparent 70%); }
.scn-penelope-asks-about-ulysses .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a0f0e 0%, #0e0807 100%); }
.scn-penelope-asks-about-ulysses .wall { position:absolute; inset:8% 3% 30% 3%; border-radius:6%; background: linear-gradient(135deg, #3a2020 0%, #1a0f0e 100%); box-shadow: inset 0 0 50px rgba(0,0,0,.8); animation: pa-wall 15s ease-in-out infinite alternate; }
.scn-penelope-asks-about-ulysses .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #0e0807 0%, #1a0f0e 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-penelope-asks-about-ulysses .fireplace { position:absolute; bottom:18%; left:50%; width:50px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #2a1408 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-penelope-asks-about-ulysses .fire { position:absolute; bottom:22%; left:50%; width:16px; height:24px; transform:translateX(-50%); background: radial-gradient(ellipse, #d47828 0%, #a85820 50%, #4a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; filter:blur(3px); animation: pa-fire 1.5s ease-in-out infinite alternate; }
.scn-penelope-asks-about-ulysses .penelope { position:absolute; bottom:20%; left:25%; width:18px; height:48px; background: linear-gradient(180deg, #1a0f0e 0%, #0e0807 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-penelope 3s ease-in-out infinite; }
.scn-penelope-asks-about-ulysses .table { position:absolute; bottom:16%; left:60%; width:30px; height:10px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1408 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,.5); animation: pa-table 8s ease-in-out infinite; }
@keyframes pa-wall { 0%{ opacity:.6 } 50%{ opacity:.95 } 100%{ opacity:.7 } }
@keyframes pa-fire { 0%{ transform: translateX(-50%) scaleY(1); opacity:.8 } 50%{ transform: translateX(-50%) scaleY(1.2); opacity:1 } 100%{ transform: translateX(-50%) scaleY(.9); opacity:.7 } }
@keyframes pa-penelope { 0%{ transform: translateX(0) rotate(-2deg) } 50%{ transform: translateX(-4px) rotate(2deg) } 100%{ transform: translateX(0) rotate(-1deg) } }
@keyframes pa-table { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-1px) } }

.scn-vision-vanishes { background: linear-gradient(170deg, #3a2a1a 0%, #2a1a0e 40%, #1a0f08 100%), radial-gradient(ellipse at 70% 40%, #5a4028 0%, transparent 60%); }
.scn-vision-vanishes .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0e 0%, #1a0f08 100%); }
.scn-vision-vanishes .window { position:absolute; top:12%; left:40%; width:60px; height:50px; background: linear-gradient(180deg, #a09060 0%, #6a5a30 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: vv-window 25s ease-in-out infinite; }
.scn-vision-vanishes .bed { position:absolute; bottom:15%; left:25%; width:50%; height:14%; background: linear-gradient(180deg, #5e3a2a 0%, #3a1f10 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: vv-bed 8s ease-in-out infinite alternate; }
.scn-vision-vanishes .penelope { position:absolute; bottom:18%; left:40%; width:18px; height:46px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vv-penelope 6s ease-in-out infinite; }
.scn-vision-vanishes .vision-glow { position:absolute; top:20%; left:50%; width:30px; height:40px; background: radial-gradient(circle, #d4b040 0%, #a08030 40%, transparent 70%); border-radius:50%; filter:blur(8px); opacity:.6; animation: vv-glow 5s ease-in-out infinite; }
.scn-vision-vanishes .sparkle-a { position:absolute; top:30%; left:35%; width:3px; height:3px; background:#e0c060; border-radius:50%; box-shadow: 0 0 6px 1px #c09040; animation: vv-sparkle 12s linear infinite; }
.scn-vision-vanishes .sparkle-b { position:absolute; top:25%; left:55%; width:4px; height:4px; background:#e0c060; border-radius:50%; box-shadow: 0 0 8px 2px #c09040; animation: vv-sparkle 15s linear infinite reverse; }
@keyframes vv-window { 0%{ opacity:.3 } 50%{ opacity:.7 } 100%{ opacity:.4 } }
@keyframes vv-bed { 0%{ transform: translateY(0) } 100%{ transform: translateY(-2px) } }
@keyframes vv-penelope { 0%{ transform: translateY(0) rotate(-1deg) } 50%{ transform: translateY(-4px) rotate(2deg) } 100%{ transform: translateY(0) rotate(0) } }
@keyframes vv-glow { 0%{ opacity:.2; transform: scale(.8) } 50%{ opacity:.6; transform: scale(1.3) } 100%{ opacity:.3; transform: scale(1) } }
@keyframes vv-sparkle { 0%{ transform: translate(0,0) scale(.8); opacity:0 } 30%{ opacity:1 } 70%{ opacity:1 } 100%{ transform: translate(60px,-20px) scale(1.2); opacity:0 } }

.scn-suitors-ambush-at-asteris { background: linear-gradient(0deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4e 100%), radial-gradient(ellipse at 50% 100%, #2a2a4e 0%, transparent 70%); }
.scn-suitors-ambush-at-asteris .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a3a 0%, #0e0e2a 100%); animation: sa-sky 12s ease-in-out infinite alternate; }
.scn-suitors-ambush-at-asteris .sea { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #0a0a1a 0%, #0e1a2a 100%); border-radius: 60% 40% 0 0 / 50% 30% 0 0; box-shadow: inset 0 8px 20px #000; animation: sa-sea 20s ease-in-out infinite; }
.scn-suitors-ambush-at-asteris .island { position:absolute; bottom:30%; left:45%; width:80px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%); border-radius: 60% 40% 10% 10% / 80% 60% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: sa-island 30s ease-in-out infinite; }
.scn-suitors-ambush-at-asteris .ship { position:absolute; bottom:32%; left:20%; width:50px; height:16px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; transform:rotate(3deg); animation: sa-ship 8s ease-in-out infinite; }
.scn-suitors-ambush-at-asteris .rock-1 { position:absolute; bottom:30%; left:10%; width:20px; height:25px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%); border-radius: 40% 60% 20% 20% / 60% 80% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,.6); animation: sa-rock 14s ease-in-out infinite; }
.scn-suitors-ambush-at-asteris .rock-2 { position:absolute; bottom:28%; left:70%; width:15px; height:20px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%); border-radius: 50% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,.6); animation: sa-rock 18s ease-in-out infinite reverse; }
.scn-suitors-ambush-at-asteris .moon { position:absolute; top:8%; right:20%; width:20px; height:20px; background: radial-gradient(circle, #e0d8b0 0%, #c0b888 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(240,230,180,.3); animation: sa-moon 30s ease-in-out infinite alternate; }
@keyframes sa-sky { 0%{ opacity:.6 } 50%{ opacity:.9 } 100%{ opacity:.7 } }
@keyframes sa-sea { 0%{ transform: translateY(0) } 50%{ transform: translateY(-4px) } 100%{ transform: translateY(0) } }
@keyframes sa-island { 0%{ transform: translateX(-50%) scaleY(1) } 50%{ transform: translateX(-50%) scaleY(.95) } 100%{ transform: translateX(-50%) scaleY(1) } }
@keyframes sa-ship { 0%{ transform: rotate(2deg) translateX(0) } 50%{ transform: rotate(-2deg) translateX(-5px) } 100%{ transform: rotate(3deg) translateX(0) } }
@keyframes sa-rock { 0%{ transform: translateY(0) } 50%{ transform: translateY(-2px) } 100%{ transform: translateY(0) } }
@keyframes sa-moon { 0%{ opacity:.7; transform: scale(.95) } 100%{ opacity:1; transform: scale(1.05) } }

/* presents-from-menelaus */
.scn-presents-from-menelaus {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #8a6a3a 60%, #b08a5a 100%),
    radial-gradient(ellipse at 50% 30%, #d0a060 0%, transparent 70%);
}
.scn-presents-from-menelaus .interior-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 50%, #6a4a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  animation: pr1-ambient 20s ease-in-out infinite alternate;
}
.scn-presents-from-menelaus .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  transform: perspective(800px) rotateX(10deg);
}
.scn-presents-from-menelaus .cup-gold {
  position: absolute; bottom: 38%; left: 30%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #f0c040 0%, #c08020 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(240,192,64,0.5);
  animation: pr1-cup 6s ease-in-out infinite;
}
.scn-presents-from-menelaus .bowl-silver {
  position: absolute; bottom: 36%; left: 50%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #e0e0e0 0%, #909090 80%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 10px 4px rgba(200,200,200,0.3);
  animation: pr1-bowl 8s ease-in-out infinite alternate;
}
.scn-presents-from-menelaus .robe {
  position: absolute; bottom: 38%; left: 60%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #b87878 0%, #7a4a4a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px 2px rgba(184,120,120,0.4);
  animation: pr1-robe 5s ease-in-out infinite;
}
.scn-presents-from-menelaus .figure-menelaus {
  position: absolute; bottom: 24%; left: 20%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr1-figure1 4s ease-in-out infinite;
}
.scn-presents-from-menelaus .figure-helen {
  position: absolute; bottom: 24%; left: 65%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr1-figure2 4.5s ease-in-out infinite;
}
.scn-presents-from-menelaus .figure-telemachus {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr1-figure3 3.8s ease-in-out infinite;
}
.scn-presents-from-menelaus .light-source {
  position: absolute; top: 8%; left: 45%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, #ffd080 0%, #e0a040 40%, transparent 70%);
  filter: blur(8px);
  animation: pr1-light 12s ease-in-out infinite alternate;
}
@keyframes pr1-ambient { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes pr1-cup { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pr1-bowl { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes pr1-robe { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(1px) } 75% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes pr1-figure1 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(2px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes pr1-figure2 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 33% { transform: translateX(-1px) translateY(-1px) rotate(1deg) } 66% { transform: translateX(1px) translateY(0) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes pr1-figure3 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(-2px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes pr1-light { 0% { opacity: 0.6; transform: scale(0.95) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.8; transform: scale(1) } }

/* omen-of-eagle */
.scn-omen-of-eagle {
  background:
    linear-gradient(180deg, #6a9ac0 0%, #8ab8d8 40%, #b8d8e8 70%, #d8e8f0 100%),
    radial-gradient(ellipse at 50% 20%, #ffe080 0%, transparent 60%);
}
.scn-omen-of-eagle .sky-wide {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a7aa0 0%, #8ab8d8 100%);
  animation: om2-sky 15s ease-in-out infinite alternate;
}
.scn-omen-of-eagle .sun-glow {
  position: absolute; top: 8%; left: 50%; width: 100px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe080 0%, #e0b040 50%, transparent 80%);
  filter: blur(12px);
  animation: om2-sun 12s ease-in-out infinite alternate;
}
.scn-omen-of-eagle .mountain-range {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a6a5a 0%, #2a4a3a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: om2-mountains 25s ease-in-out infinite alternate;
}
.scn-omen-of-eagle .eagle {
  position: absolute; top: 12%; left: 40%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 20% 50% 20% / 60% 40% 60% 40%;
  transform: rotate(-10deg);
  filter: blur(1px);
  animation: om2-eagle 8s ease-in-out infinite;
}
.scn-omen-of-eagle .eagle-shadow {
  position: absolute; top: 18%; left: 38%; width: 40px; height: 20px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: om2-shadow 8s ease-in-out infinite;
}
.scn-omen-of-eagle .cloud-omen1 {
  position: absolute; top: 22%; left: 10%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: om2-cloud1 40s linear infinite;
}
.scn-omen-of-eagle .cloud-omen2 {
  position: absolute; top: 28%; right: 15%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: om2-cloud2 55s linear infinite reverse;
}
@keyframes om2-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes om2-sun { 0% { transform: translateX(-50%) scale(0.95); opacity: 0.7 } 50% { transform: translateX(-50%) scale(1.05); opacity: 1 } 100% { transform: translateX(-50%) scale(1); opacity: 0.8 } }
@keyframes om2-mountains { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes om2-eagle { 0% { transform: rotate(-10deg) translateX(0) } 25% { transform: rotate(-8deg) translateX(10px) translateY(-5px) } 50% { transform: rotate(-12deg) translateX(20px) translateY(2px) } 75% { transform: rotate(-9deg) translateX(30px) translateY(-3px) } 100% { transform: rotate(-10deg) translateX(40px) translateY(0) } }
@keyframes om2-shadow { 0% { transform: translateX(0) scale(1); opacity: 0.3 } 50% { transform: translateX(10px) scale(1.1); opacity: 0.5 } 100% { transform: translateX(20px) scale(1); opacity: 0.3 } }
@keyframes om2-cloud1 { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes om2-cloud2 { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* telemachus-embarks */
.scn-telemachus-embarks {
  background:
    linear-gradient(180deg, #a0c8e0 0%, #c8e0f0 40%, #f0e8c0 70%, #e0c888 100%),
    radial-gradient(ellipse at 50% 80%, #d0c080 0%, transparent 70%);
}
.scn-telemachus-embarks .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a6a8a 0%, #2a4a6a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  animation: te3-sea 10s ease-in-out infinite alternate;
}
.scn-telemachus-embarks .sky-dawn {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #c8a060 0%, #e0c080 30%, #f0e0a0 60%, #d8e8f0 100%);
  animation: te3-sky 20s ease-in-out infinite alternate;
}
.scn-telemachus-embarks .ship-hull {
  position: absolute; bottom: 38%; left: 30%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 30% 50% 50% / 20% 20% 60% 60%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: te3-hull 6s ease-in-out infinite;
}
.scn-telemachus-embarks .ship-mast {
  position: absolute; bottom: 52%; left: 52%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10%;
  animation: te3-mast 6s ease-in-out infinite;
}
.scn-telemachus-embarks .presents-chest {
  position: absolute; bottom: 40%; left: 42%; width: 24px; height: 16px;
  background: linear-gradient(180deg, #b08040 0%, #8a6020 100%);
  border-radius: 10%;
  box-shadow: 0 0 10px 2px rgba(176,128,64,0.5);
  animation: te3-chest 4s ease-in-out infinite;
}
.scn-telemachus-embarks .figure-pisistratus {
  position: absolute; bottom: 34%; left: 55%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: te3-fig1 4.2s ease-in-out infinite;
}
.scn-telemachus-embarks .figure-telemachus2 {
  position: absolute; bottom: 34%; left: 65%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: te3-fig2 4.8s ease-in-out infinite;
}
.scn-telemachus-embarks .horses {
  position: absolute; bottom: 18%; left: 10%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 30% 40% / 60% 40% 50% 50%;
  filter: blur(2px);
  animation: te3-horses 7s ease-in-out infinite;
}
@keyframes te3-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes te3-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes te3-hull { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes te3-mast { 0% { transform: rotate(0deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes te3-chest { 0% { transform: translateY(0) } 30% { transform: translateY(-2px) } 60% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes te3-fig1 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(3px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes te3-fig2 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 33% { transform: translateX(-2px) translateY(1px) rotate(1deg) } 66% { transform: translateX(1px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes te3-horses { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }

/* theoclymenus-arrives */
.scn-theoclymenus-arrives {
  background:
    linear-gradient(180deg, #b8d8e8 0%, #d8e8f0 40%, #e8f0f8 70%, #f0e8d0 100%),
    radial-gradient(ellipse at 50% 20%, #ffe0a0 0%, transparent 60%);
}
.scn-theoclymenus-arrives .shore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8b890 0%, #a08860 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-theoclymenus-arrives .sea-calm {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a8aaa 0%, #3a6a8a 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  animation: th4-sea 12s ease-in-out infinite alternate;
}
.scn-theoclymenus-arrives .ship-stern {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform: perspective(600px) rotateY(-10deg);
  animation: th4-stern 8s ease-in-out infinite;
}
.scn-theoclymenus-arrives .altar-fire {
  position: absolute; bottom: 32%; left: 52%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 60%, #ffa040 0%, #e06020 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  animation: th4-fire 3s ease-in-out infinite alternate;
}
.scn-theoclymenus-arrives .figure-telemachus3 {
  position: absolute; bottom: 26%; left: 48%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: th4-fig1 5s ease-in-out infinite;
}
.scn-theoclymenus-arrives .figure-theoclymenus {
  position: absolute; bottom: 26%; left: 60%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: th4-fig2 5.5s ease-in-out infinite;
}
.scn-theoclymenus-arrives .seer-staff {
  position: absolute; bottom: 30%; left: 63%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20%;
  transform: rotate(8deg);
  animation: th4-staff 4s ease-in-out infinite;
}
.scn-theoclymenus-arrives .sacrificial-smoke {
  position: absolute; bottom: 40%; left: 52%; width: 30px; height: 50px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.3) 0%, transparent 80%);
  filter: blur(10px);
  animation: th4-smoke 6s ease-in-out infinite alternate;
}
@keyframes th4-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(1px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes th4-stern { 0% { transform: perspective(600px) rotateY(-10deg) } 50% { transform: perspective(600px) rotateY(-8deg) translateY(2px) } 100% { transform: perspective(600px) rotateY(-10deg) } }
@keyframes th4-fire { 0% { transform: scale(0.9); opacity: 0.7 } 50% { transform: scale(1.1); opacity: 1 } 100% { transform: scale(0.95); opacity: 0.8 } }
@keyframes th4-fig1 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(2px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes th4-fig2 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 33% { transform: translateX(-2px) translateY(1px) rotate(1deg) } 66% { transform: translateX(1px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes th4-staff { 0% { transform: rotate(8deg) } 50% { transform: rotate(6deg) translateY(-1px) } 100% { transform: rotate(8deg) } }
@keyframes th4-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.3 } 50% { transform: translateY(-8px) scale(1.1); opacity: 0.5 } 100% { transform: translateY(-4px) scale(0.95); opacity: 0.4 } }

/* laestrygonians-attack */
.scn-laestrygonians-attack {
  background: linear-gradient(180deg, #c8d4e0 0%, #a0b8c8 30%, #6a8090 60%, #4a5a6a 100%), 
              radial-gradient(ellipse at 30% 20%, #e8f0f8 0%, transparent 60%);
  overflow: hidden;
}
.scn-laestrygonians-attack .sky-la { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #d0dce8 0%, #a8bcc8 40%, #889aa8 100%); animation: la-sky 14s ease-in-out infinite alternate; }
.scn-laestrygonians-attack .sea-la { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.3); }
.scn-laestrygonians-attack .cliffs-la { position:absolute; bottom:30%; left:0; right:60%; height:40%; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #6a5a4a 100%); border-radius: 20% 0 0 0 / 40% 0 0 0; box-shadow: inset -10px 0 30px rgba(0,0,0,.4); }
.scn-laestrygonians-attack .giant-la { position:absolute; bottom:25%; left:10%; width:70px; height:130px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 0 20px 40px rgba(0,0,0,.5); animation: la-giant 6s ease-in-out infinite; }
.scn-laestrygonians-attack .figure-flee1 { position:absolute; bottom:28%; left:60%; width:12px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: la-flee1 4s ease-in-out infinite; }
.scn-laestrygonians-attack .figure-flee2 { position:absolute; bottom:28%; left:70%; width:12px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: la-flee2 4.5s ease-in-out infinite 0.3s; }
.scn-laestrygonians-attack .ship-sink { position:absolute; bottom:40%; left:75%; width:50px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 0 0; transform: rotate(-10deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: la-ship 8s ease-in-out infinite; }
.scn-laestrygonians-attack .blood-splash { position:absolute; bottom:38%; left:52%; width:20px; height:16px; background: radial-gradient(circle, #7a2222 0%, #4a1010 60%, transparent 80%); border-radius: 50%; filter: blur(2px); animation: la-blood 9s ease-in-out infinite; }
.scn-laestrygonians-attack .cloud-la-a { position:absolute; top:10%; left:-10%; width:120px; height:30px; background: linear-gradient(180deg, rgba(200,210,220,.5) 0%, rgba(200,210,220,.05) 100%); border-radius: 50%; filter: blur(8px); animation: la-drift-a 40s linear infinite; }
.scn-laestrygonians-attack .cloud-la-b { position:absolute; top:18%; right:-10%; width:90px; height:22px; background: linear-gradient(180deg, rgba(200,210,220,.4) 0%, rgba(200,210,220,.02) 100%); border-radius: 50%; filter: blur(6px); animation: la-drift-b 55s linear infinite reverse; }
@keyframes la-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes la-giant { 0% { transform: translateX(0) translateY(0) rotate(-1deg) scale(1) } 25% { transform: translateX(8px) translateY(-4px) rotate(1deg) scale(1.02) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) scale(1) } 75% { transform: translateX(8px) translateY(-2px) rotate(0) scale(1.01) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) scale(1) } }
@keyframes la-flee1 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-12px) rotate(-5deg) } 50% { transform: translateX(-24px) rotate(3deg) } 75% { transform: translateX(-36px) rotate(-2deg) } 100% { transform: translateX(-48px) rotate(0) } }
@keyframes la-flee2 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-10px) rotate(-4deg) } 50% { transform: translateX(-20px) rotate(2deg) } 75% { transform: translateX(-30px) rotate(-1deg) } 100% { transform: translateX(-40px) rotate(0) } }
@keyframes la-ship { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(8px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes la-blood { 0% { opacity:0; transform: scale(.5); } 10% { opacity:.6; transform: scale(1); } 90% { opacity:.6; transform: scale(1); } 100% { opacity:0; transform: scale(.5); } }
@keyframes la-drift-a { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }
@keyframes la-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* circe-island-arrival */
.scn-circe-island-arrival {
  background: linear-gradient(180deg, #a8c8e0 0%, #78a0c0 30%, #5880a0 50%, #4a7088 70%, #3a5a70 100%),
              radial-gradient(ellipse at 70% 20%, #d0e8f8 0%, transparent 60%);
  overflow: hidden;
}
.scn-circe-island-arrival .sky-ci { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c0d8e8 0%, #8ab0c8 40%, #6a90a8 100%); animation: ci-sky 16s ease-in-out infinite alternate; }
.scn-circe-island-arrival .sea-ci { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4a7088 0%, #2a4a60 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-circe-island-arrival .island-ci { position:absolute; bottom:30%; left:60%; width:120px; height:60px; background: linear-gradient(180deg, #7a8a5a 0%, #5a6a3a 50%, #4a5a2a 100%); border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%; box-shadow: 0 4px 20px rgba(0,0,0,.3); animation: ci-island 20s ease-in-out infinite; }
.scn-circe-island-arrival .palace-ci { position:absolute; bottom:42%; left:66%; width:40px; height:30px; background: linear-gradient(180deg, #d0c8a0 0%, #b0a880 50%, #908068 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.4); transform-origin: bottom center; animation: ci-palace 10s ease-in-out infinite; }
.scn-circe-island-arrival .figure-ci { position:absolute; bottom:32%; left:50%; width:16px; height:32px; background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ci-figure 6s ease-in-out infinite; }
.scn-circe-island-arrival .boat-ci { position:absolute; bottom:36%; left:35%; width:40px; height:14px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 40% 40% 0; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: ci-boat 12s ease-in-out infinite; }
.scn-circe-island-arrival .mist-ci-a { position:absolute; bottom:40%; left:20%; width:100px; height:40px; background: linear-gradient(90deg, rgba(180,200,220,.4) 0%, rgba(180,200,220,.1) 100%); border-radius: 50%; filter: blur(12px); animation: ci-mist-a 30s ease-in-out infinite; }
.scn-circe-island-arrival .mist-ci-b { position:absolute; bottom:35%; right:10%; width:80px; height:30px; background: linear-gradient(270deg, rgba(180,200,220,.35) 0%, rgba(180,200,220,.08) 100%); border-radius: 50%; filter: blur(10px); animation: ci-mist-b 40s ease-in-out infinite reverse; }
@keyframes ci-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ci-island { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ci-palace { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes ci-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes ci-boat { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(10px) translateY(-2px) rotate(0) } 50% { transform: translateX(20px) translateY(0) rotate(3deg) } 75% { transform: translateX(10px) translateY(-1px) rotate(0) } 100% { transform: translateX(0) translateY(0) rotate(-3deg) } }
@keyframes ci-mist-a { 0% { opacity:.3; transform: translateX(0); } 50% { opacity:.6; transform: translateX(30px); } 100% { opacity:.3; transform: translateX(0); } }
@keyframes ci-mist-b { 0% { opacity:.4; transform: translateX(0); } 50% { opacity:.7; transform: translateX(-20px); } 100% { opacity:.4; transform: translateX(0); } }

/* ulysses-kills-stag */
.scn-ulysses-kills-stag {
  background: linear-gradient(180deg, #8aaa78 0%, #6a8a5a 30%, #4a6a3a 60%, #2a4a1a 100%),
              radial-gradient(ellipse at 80% 30%, #c0d8a8 0%, transparent 60%);
  overflow: hidden;
}
.scn-ulysses-kills-stag .forest-bg { position:absolute; inset:0; background: linear-gradient(90deg, #4a6a3a 0%, #6a8a5a 30%, #8aaa78 60%, #6a8a5a 100%); }
.scn-ulysses-kills-stag .river-us { position:absolute; bottom:20%; left:0; right:0; height:25%; background: linear-gradient(180deg, #6a9a8a 0%, #4a7a6a 50%, #3a6a5a 100%); border-radius: 30% 40% 0 0 / 60% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-ulysses-kills-stag .figure-us { position:absolute; bottom:32%; left:25%; width:18px; height:36px; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: us-figure 8s ease-in-out infinite; }
.scn-ulysses-kills-stag .stag-us { position:absolute; bottom:36%; left:55%; width:30px; height:40px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: us-stag 12s ease-in-out infinite; }
.scn-ulysses-kills-stag .bow-us { position:absolute; bottom:35%; left:30%; width:20px; height:4px; background: #5a3a1a; border-radius: 50%; transform: rotate(-30deg); box-shadow: 0 1px 4px rgba(0,0,0,.3); animation: us-bow 6s ease-in-out infinite; }
.scn-ulysses-kills-stag .spear-us { position:absolute; bottom:30%; left:28%; width:2px; height:20px; background: #4a3a2a; transform: rotate(-20deg); box-shadow: 0 0 2px rgba(0,0,0,.4); animation: us-spear 6s ease-in-out infinite 0.2s; }
.scn-ulysses-kills-stag .leaf-drift { position:absolute; top:20%; left:10%; width:8px; height:8px; background: #7a9a4a; border-radius: 50% 0 50% 0; animation: us-leaf 15s linear infinite; }
.scn-ulysses-kills-stag .light-ray { position:absolute; top:5%; left:60%; width:80px; height:120px; background: linear-gradient(180deg, rgba(200,220,180,.25) 0%, rgba(200,220,180,.05) 100%); transform: rotate(20deg); filter: blur(6px); animation: us-ray 9s ease-in-out infinite alternate; }
@keyframes us-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes us-stag { 0% { transform: translateX(0) translateY(0) rotate(0) scale(1) } 25% { transform: translateX(-6px) translateY(-3px) rotate(-3deg) scale(1.02) } 50% { transform: translateX(-12px) translateY(0) rotate(0) scale(1) } 75% { transform: translateX(-18px) translateY(-2px) rotate(3deg) scale(1.01) } 100% { transform: translateX(-24px) translateY(0) rotate(0) scale(1) } }
@keyframes us-bow { 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-40deg) translateY(-4px) } 100% { transform: rotate(-30deg) translateY(0) } }
@keyframes us-spear { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-30deg) translateY(-6px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes us-leaf { 0% { transform: translateY(0) rotate(0) opacity: .7; } 50% { transform: translateY(40vh) rotate(180deg) opacity: .4; } 100% { transform: translateY(80vh) rotate(360deg) opacity: 0; } }
@keyframes us-ray { 0% { opacity:.2; transform: rotate(20deg) scale(1); } 100% { opacity:.5; transform: rotate(25deg) scale(1.1); } }

/* men-go-to-circe */
.scn-men-go-to-circe {
  background: linear-gradient(180deg, #c8a070 0%, #a88050 30%, #8a6a40 50%, #6a4a28 70%, #4a2a10 100%),
              radial-gradient(ellipse at 50% 20%, #e0c8a0 0%, transparent 60%);
  overflow: hidden;
}
.scn-men-go-to-circe .dawn-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #e8c888 0%, #c8a060 40%, #a08040 100%); animation: mg-dawn 14s ease-in-out infinite alternate; }
.scn-men-go-to-circe .shore-mg { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5a4a28 0%, #3a2a10 50%, #2a1a08 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-men-go-to-circe .fire-mg { position:absolute; bottom:22%; left:40%; width:24px; height:28px; background: radial-gradient(circle, #ffa040 0%, #c06020 40%, #4a2010 70%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,160,64,.4), 0 0 60px 20px rgba(255,160,64,.2); animation: mg-fire 4s ease-in-out infinite; }
.scn-men-go-to-circe .tent-l { position:absolute; bottom:30%; left:20%; width:40px; height:30px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transform-origin: bottom center; animation: mg-tent-l 8s ease-in-out infinite; }
.scn-men-go-to-circe .tent-r { position:absolute; bottom:28%; left:60%; width:45px; height:32px; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transform-origin: bottom center; animation: mg-tent-r 9s ease-in-out infinite 0.5s; }
.scn-men-go-to-circe .figure-a { position:absolute; bottom:25%; left:35%; width:14px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mg-figure-a 6s ease-in-out infinite; }
.scn-men-go-to-circe .figure-b { position:absolute; bottom:25%; left:48%; width:14px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mg-figure-b 6.5s ease-in-out infinite 0.3s; }
.scn-men-go-to-circe .figure-c { position:absolute; bottom:25%; left:55%; width:14px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mg-figure-c 7s ease-in-out infinite 0.6s; }
.scn-men-go-to-circe .driftwood { position:absolute; bottom:36%; left:70%; width:20px; height:6px; background: #4a3a1a; border-radius: 20% 60% 40% 20%; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: mg-wood 12s ease-in-out infinite; }
@keyframes mg-dawn { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mg-fire { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 30px 10px rgba(255,160,64,.4), 0 0 60px 20px rgba(255,160,64,.2); } 50% { transform: scale(1.08) translateY(-4px); box-shadow: 0 0 40px 14px rgba(255,180,80,.5), 0 0 80px 28px rgba(255,180,80,.3); } 100% { transform: scale(1) translateY(0); box-shadow: 0 0 30px 10px rgba(255,160,64,.4), 0 0 60px 20px rgba(255,160,64,.2); } }
@keyframes mg-tent-l { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes mg-tent-r { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.03) translateY(-3px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes mg-figure-a { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes mg-figure-b { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-3px) rotate(-1deg) } 50% { transform: translateX(-6px) rotate(1deg) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes mg-figure-c { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(8px) translateY(0) rotate(0) } 75% { transform: translateX(4px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes mg-wood { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(20deg) translateX(6px) } 100% { transform: rotate(15deg) translateX(0) } }

/* ulysses-lying-story – overcast calm */
.scn-ulysses-lying-story {
  background:
    linear-gradient(180deg, #8596a8 0%, #b0bcc8 40%, #a0aab5 100%),
    radial-gradient(ellipse at 50% 100%, #7a8a9a 0%, transparent 70%);
}
.scn-ulysses-lying-story .sky     { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #9aacbe 0%, #b8c4d0 80%); animation: sky-us1 16s ease-in-out infinite alternate; }
.scn-ulysses-lying-story .ground  { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #5a6a5a 0%, #7a8a7a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-ulysses-lying-story .rock    { position:absolute; bottom:30%; left:30%; width:70px; height:30px; background: linear-gradient(135deg, #7a7a6a 0%, #5a5a4a 100%); border-radius: 40% 60% 30% 70%; box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: rock-us1 22s ease-in-out infinite; }
.scn-ulysses-lying-story .figure  { position:absolute; bottom:25%; left:40%; width:50px; height:30px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: figure-us1 9s ease-in-out infinite; }
.scn-ulysses-lying-story .arm     { position:absolute; bottom:32%; left:32%; width:40px; height:8px; background: linear-gradient(90deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 40% 40% 40% 40%; transform-origin: left center; animation: arm-us1 6s ease-in-out infinite; }
.scn-ulysses-lying-story .cloud   { position:absolute; top:12%; left:60%; width:80px; height:20px; background: linear-gradient(90deg, rgba(200,210,220,.6) 0%, rgba(200,210,220,.1) 100%); border-radius:50%; filter:blur(8px); animation: cloud-us1 50s linear infinite; }

@keyframes sky-us1   { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rock-us1  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes figure-us1{ 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes arm-us1   { 0% { transform: rotate(-20deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-20deg) } }
@keyframes cloud-us1 { 0% { transform: translateX(-80px) } 100% { transform: translateX(120vw) } }

/* minerva-smiles – overcast funny */
.scn-minerva-smiles {
  background:
    linear-gradient(180deg, #8a9aa0 0%, #b8c0c8 40%, #a0b0b8 100%),
    radial-gradient(ellipse at 50% 30%, #c0d0d8 0%, transparent 70%);
}
.scn-minerva-smiles .sky     { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0c0c8 0%, #d0d8e0 80%); animation: sky-ms1 14s ease-in-out infinite alternate; }
.scn-minerva-smiles .figure  { position:absolute; bottom:22%; left:38%; width:50px; height:70px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: figure-ms1 5s ease-in-out infinite; }
.scn-minerva-smiles .halo    { position:absolute; bottom:28%; left:38%; width:80px; height:80px; margin-left:-15px; background: radial-gradient(circle, rgba(220,230,240,.3) 0%, transparent 70%); border-radius:50%; animation: halo-ms1 4s ease-in-out infinite; }
.scn-minerva-smiles .smile   { position:absolute; bottom:27%; left:43%; width:24px; height:12px; border-bottom: 3px solid #d0a080; border-radius: 0 0 50% 50%; filter:blur(0.5px); animation: smile-ms1 3s ease-in-out infinite; }
.scn-minerva-smiles .hand    { position:absolute; bottom:26%; left:50%; width:18px; height:22px; background: radial-gradient(circle, #4a4a5a 0%, #3a3a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(15deg); animation: hand-ms1 4s ease-in-out infinite; }
.scn-minerva-smiles .sparkle { position:absolute; width:8px; height:8px; background: #f0e8c0; border-radius:50%; box-shadow: 0 0 12px 4px rgba(240,232,192,.6); animation: sparkle-ms1 3s ease-in-out infinite; }
.scn-minerva-smiles .s1  { top:15%; left:25%; animation-delay:0s; }
.scn-minerva-smiles .s2  { top:20%; left:55%; animation-delay:1.5s; }

@keyframes sky-ms1   { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes figure-ms1{ 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes halo-ms1  { 0% { transform: scale(1); opacity:.4 } 50% { transform: scale(1.1); opacity:.7 } 100% { transform: scale(1); opacity:.4 } }
@keyframes smile-ms1 { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.3) } 100% { transform: scaleY(1) } }
@keyframes hand-ms1  { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(5deg) translateX(4px) } 100% { transform: rotate(15deg) translateX(0) } }
@keyframes sparkle-ms1{ 0% { transform: scale(0) rotate(0deg); opacity:0 } 50% { transform: scale(1) rotate(180deg); opacity:1 } 100% { transform: scale(0) rotate(360deg); opacity:0 } }

/* ulysses-questions-minerva – overcast calm */
.scn-ulysses-questions-minerva {
  background:
    linear-gradient(180deg, #7a8a98 0%, #a0b0c0 40%, #8898a8 100%),
    radial-gradient(ellipse at 50% 100%, #7a8a98 0%, transparent 60%);
}
.scn-ulysses-questions-minerva .sky      { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a8b8c8 0%, #c0d0d8 80%); animation: sky-uq1 18s ease-in-out infinite alternate; }
.scn-ulysses-questions-minerva .hills    { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(0deg, #5a6a5a 0%, #7a8a7a 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; animation: hills-uq1 24s ease-in-out infinite; }
.scn-ulysses-questions-minerva .ulysses { position:absolute; bottom:22%; left:28%; width:40px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: figure-uq1 8s ease-in-out infinite; }
.scn-ulysses-questions-minerva .minerva { position:absolute; bottom:22%; left:55%; width:44px; height:68px; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: figure-uq1 9s ease-in-out infinite reverse; }
.scn-ulysses-questions-minerva .aura    { position:absolute; bottom:20%; left:50%; width:70px; height:90px; background: radial-gradient(circle, rgba(200,220,240,.2) 0%, transparent 70%); border-radius:50%; opacity:.5; animation: aura-uq1 6s ease-in-out infinite; }
.scn-ulysses-questions-minerva .tree    { position:absolute; bottom:30%; left:10%; width:40px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 90% 10% 90% / 50% 50% 50% 50%; transform: scaleX(0.5); animation: tree-uq1 30s linear infinite; }

@keyframes sky-uq1   { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hills-uq1 { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes figure-uq1{ 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes aura-uq1  { 0% { transform: scale(1); opacity:.4 } 50% { transform: scale(1.15); opacity:.7 } 100% { transform: scale(1); opacity:.4 } }
@keyframes tree-uq1  { 0% { transform: scaleX(0.5) rotate(0deg) } 50% { transform: scaleX(0.5) rotate(2deg) } 100% { transform: scaleX(0.5) rotate(0deg) } }

/* minerva-reassures – overcast calm */
.scn-minerva-reassures {
  background:
    linear-gradient(180deg, #6a7a88 0%, #90a0b0 40%, #7a8a9a 100%),
    radial-gradient(ellipse at 50% 100%, #6a7a88 0%, transparent 65%);
}
.scn-minerva-reassures .sky     { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #9aacbe 0%, #b8c4d0 80%); animation: sky-mr1 20s ease-in-out infinite alternate; }
.scn-minerva-reassures .ground  { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #4a5a4a 0%, #6a7a6a 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; }
.scn-minerva-reassures .ulysses{ position:absolute; bottom:20%; left:32%; width:42px; height:62px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: figure-mr1 10s ease-in-out infinite; }
.scn-minerva-reassures .minerva{ position:absolute; bottom:20%; left:50%; width:46px; height:66px; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: figure-mr1 11s ease-in-out infinite reverse; }
.scn-minerva-reassures .hand   { position:absolute; bottom:30%; left:48%; width:18px; height:14px; background: radial-gradient(circle at 50% 50%, #4a4a5a 0%, #3a3a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-10deg); animation: hand-mr1 7s ease-in-out infinite; }
.scn-minerva-reassures .glow   { position:absolute; bottom:15%; left:30%; width:120px; height:120px; background: radial-gradient(circle, rgba(220,230,240,.15) 0%, transparent 70%); border-radius:50%; animation: glow-mr1 9s ease-in-out infinite; }
.scn-minerva-reassures .cloud  { position:absolute; top:18%; right:10%; width:70px; height:18px; background: linear-gradient(90deg, rgba(200,210,220,.4) 0%, transparent 100%); border-radius:50%; filter:blur(6px); animation: cloud-mr1 60s linear infinite; }

@keyframes sky-mr1   { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes figure-mr1{ 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes hand-mr1  { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(2px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes glow-mr1  { 0% { transform: scale(1); opacity:.3 } 50% { transform: scale(1.05); opacity:.6 } 100% { transform: scale(1); opacity:.3 } }
@keyframes cloud-mr1 { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-dawn-departure-from-pylos {
  background: linear-gradient(180deg, #ffd6a8 0%, #f7b87a 25%, #d9a06f 50%, #b8845c 75%, #8f6440 100%),
              radial-gradient(ellipse at 70% 10%, #ffe6cc 0%, transparent 60%);
}
.scn-dawn-departure-from-pylos .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #ffc9a0 0%, #f0a070 80%);
  animation: ddp-sky 12s ease-in-out infinite alternate;
}
.scn-dawn-departure-from-pylos .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a5e3e 0%, #4d3722 100%);
  border-radius: 30% 20% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: ddp-ground 18s ease-in-out infinite alternate;
}
.scn-dawn-departure-from-pylos .house {
  position: absolute; bottom: 28%; left: 20%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #b88c6a 0%, #7a553a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: ddp-house 9s ease-in-out infinite;
}
.scn-dawn-departure-from-pylos .bench {
  position: absolute; bottom: 26%; left: 40%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #f0e6d0 0%, #d0c0a0 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: ddp-bench 6s ease-in-out infinite alternate;
}
.scn-dawn-departure-from-pylos .figure {
  position: absolute; bottom: 26%; left: 44%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ddp-figure 5s ease-in-out infinite;
}
.scn-dawn-departure-from-pylos .cloud-1 {
  position: absolute; top: 15%; left: 10%; width: 70px; height: 20px;
  background: linear-gradient(180deg, rgba(255,220,200,0.6) 0%, rgba(255,200,180,0.2) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: ddp-cloud-drift 45s linear infinite;
}
.scn-dawn-departure-from-pylos .cloud-2 {
  position: absolute; top: 22%; right: 10%; width: 50px; height: 14px;
  background: linear-gradient(180deg, rgba(255,220,200,0.5) 0%, rgba(255,200,180,0.1) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: ddp-cloud-drift-rev 55s linear infinite;
}
@keyframes ddp-sky {
  0% { opacity: 0.7; filter: brightness(1); }
  50% { opacity: 0.9; filter: brightness(1.1); }
  100% { opacity: 0.75; filter: brightness(0.95); }
}
@keyframes ddp-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ddp-house {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes ddp-bench {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}
@keyframes ddp-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-2deg); }
  50% { transform: translateX(8px) rotate(0deg); }
  75% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ddp-cloud-drift {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}
@keyframes ddp-cloud-drift-rev {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

.scn-nestor-gives-instructions {
  background: linear-gradient(180deg, #ffdbb5 0%, #f5c49a 30%, #d9a87a 60%, #b88a5e 100%),
              radial-gradient(ellipse at 50% 0%, #ffeacc 0%, transparent 70%);
}
.scn-nestor-gives-instructions .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f5c49a 0%, #e0ae80 80%);
  animation: ngi-sky 14s ease-in-out infinite alternate;
}
.scn-nestor-gives-instructions .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7d6a4a 0%, #4d3a22 100%);
  border-radius: 25% 35% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-nestor-gives-instructions .figure-a {
  position: absolute; bottom: 25%; left: 35%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #2e2218 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ngi-fig-speak 6s ease-in-out infinite;
}
.scn-nestor-gives-instructions .figure-b {
  position: absolute; bottom: 27%; left: 50%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #1a2228 0%, #0e141a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ngi-fig-listen 7s ease-in-out infinite alternate;
}
.scn-nestor-gives-instructions .pillar {
  position: absolute; bottom: 20%; left: 60%; width: 8px; height: 70px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b094 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: ngi-pillar 12s ease-in-out infinite alternate;
}
.scn-nestor-gives-instructions .tree {
  position: absolute; bottom: 30%; right: 10%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #6a7a4a 0%, #3a4a2a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: ngi-tree-sway 8s ease-in-out infinite;
}
.scn-nestor-gives-instructions .bird {
  position: absolute; top: 18%; left: 20%; width: 10px; height: 6px;
  background: #3a2a1a;
  border-radius: 50% 50% 0 0;
  animation: ngi-bird 20s linear infinite;
}
@keyframes ngi-sky {
  0% { opacity: 0.8; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.05); }
  100% { opacity: 0.85; filter: brightness(0.95); }
}
@keyframes ngi-fig-speak {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ngi-fig-listen {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes ngi-pillar {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.95; }
}
@keyframes ngi-tree-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes ngi-bird {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(20vw) translateY(-8px); }
  50% { transform: translateX(40vw) translateY(0); }
  75% { transform: translateX(60vw) translateY(-4px); }
  100% { transform: translateX(80vw) translateY(0); }
}

.scn-preparations-for-sacrifice {
  background: linear-gradient(180deg, #f0c89a 0%, #d9a87a 30%, #b88a5e 60%, #8f6440 100%),
              radial-gradient(circle at 30% 20%, #ffe0b0 0%, transparent 60%);
}
.scn-preparations-for-sacrifice .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f0c89a 0%, #d9a87a 80%);
  animation: pfs-sky 10s ease-in-out infinite alternate;
}
.scn-preparations-for-sacrifice .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7d5a3a 0%, #4d3222 100%);
  border-radius: 40% 20% 0 0 / 60% 30% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.5);
}
.scn-preparations-for-sacrifice .altar {
  position: absolute; bottom: 25%; left: 55%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #c8b098 0%, #a08068 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: pfs-altar 8s ease-in-out infinite alternate;
}
.scn-preparations-for-sacrifice .anvil {
  position: absolute; bottom: 28%; left: 20%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: pfs-anvil 12s ease-in-out infinite;
}
.scn-preparations-for-sacrifice .hammer {
  position: absolute; bottom: 32%; left: 22%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  transform-origin: bottom center;
  animation: pfs-hammer 4s ease-in-out infinite alternate;
}
.scn-preparations-for-sacrifice .heifer {
  position: absolute; bottom: 22%; left: 40%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: pfs-heifer 6s ease-in-out infinite alternate;
}
.scn-preparations-for-sacrifice .gold-glow {
  position: absolute; bottom: 30%; left: 15%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd070 0%, #c09040 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ffd070, 0 0 40px 15px rgba(255,208,112,0.4);
  animation: pfs-gold-glow 3s ease-in-out infinite alternate;
}
.scn-preparations-for-sacrifice .smoke {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at center, rgba(200,160,120,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: pfs-smoke 10s ease-in-out infinite;
}
@keyframes pfs-sky {
  0% { opacity: 0.7; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.8; filter: brightness(0.9); }
}
@keyframes pfs-altar {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes pfs-anvil {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1); }
}
@keyframes pfs-hammer {
  0% { transform: rotate(30deg); }
  50% { transform: rotate(-30deg); }
  100% { transform: rotate(30deg); }
}
@keyframes pfs-heifer {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes pfs-gold-glow {
  0% { opacity: 0.6; box-shadow: 0 0 12px 4px #ffd070; }
  50% { opacity: 1; box-shadow: 0 0 28px 10px #ffd070; }
  100% { opacity: 0.7; box-shadow: 0 0 16px 6px #ffd070; }
}
@keyframes pfs-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-20px) scale(1.5); opacity: 0.3; }
  100% { transform: translateY(0) scale(1); opacity: 0.6; }
}

.scn-sacrifice-completed {
  background: linear-gradient(180deg, #f0c89a 0%, #d9a87a 30%, #b88a5e 60%, #8f6440 100%),
              radial-gradient(ellipse at 50% 20%, #ffeedd 0%, transparent 60%);
}
.scn-sacrifice-completed .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0c89a 0%, #d9a87a 70%);
  animation: scc-sky 12s ease-in-out infinite alternate;
}
.scn-sacrifice-completed .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7d5a3a 0%, #4d3222 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 25px rgba(0,0,0,0.5);
}
.scn-sacrifice-completed .altar-stone {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #b09880 0%, #907060 100%);
  border-radius: 10% 10% 5% 5%;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: scc-altar 10s ease-in-out infinite alternate;
}
.scn-sacrifice-completed .heifer-fallen {
  position: absolute; bottom: 14%; left: 35%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: scc-heifer 8s ease-in-out infinite alternate;
}
.scn-sacrifice-completed .figure-slayer {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scc-slayer 6s ease-in-out infinite;
}
.scn-sacrifice-completed .woman-1 {
  position: absolute; bottom: 22%; left: 25%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1414 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scc-woman 7s ease-in-out infinite alternate;
}
.scn-sacrifice-completed .woman-2 {
  position: absolute; bottom: 20%; right: 25%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1414 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scc-woman 7s ease-in-out infinite alternate-reverse;
}
.scn-sacrifice-completed .sunray {
  position: absolute; top: 10%; left: 80%; width: 30px; height: 4px;
  background: linear-gradient(90deg, rgba(255,220,180,0) 0%, rgba(255,220,180,0.8) 100%);
  transform: rotate(-45deg);
  filter: blur(2px);
  animation: scc-sunray 5s ease-in-out infinite;
}
@keyframes scc-sky {
  0% { opacity: 0.7; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.05); }
  100% { opacity: 0.8; filter: brightness(0.95); }
}
@keyframes scc-altar {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes scc-heifer {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px); }
  100% { transform: rotate(-5deg) translateX(-2px); }
}
@keyframes scc-slayer {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes scc-woman {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(3px) translateY(-2px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes scc-sunray {
  0% { opacity: 0; transform: rotate(-45deg) scale(0.5); }
  50% { opacity: 1; transform: rotate(-45deg) scale(1); }
  100% { opacity: 0; transform: rotate(-45deg) scale(0.5); }
}

.scn-ulysses-fears-for-life { background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 100%), radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 70%); }
.scn-ulysses-fears-for-life .sky   { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 60%, transparent 100%); animation: ufl-sky 8s ease-in-out infinite alternate; }
.scn-ulysses-fears-for-life .ocean { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius:50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.3); animation: ufl-ocean 12s ease-in-out infinite alternate; }
.scn-ulysses-fears-for-life .rocks { position:absolute; bottom:40%; left:30%; width:40%; height:30%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:60% 40% 20% 80% / 40% 70% 30% 60%; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: ufl-rocks 14s ease-in-out infinite; }
.scn-ulysses-fears-for-life .figure{ position:absolute; bottom:42%; left:15%; width:16px; height:24px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ufl-figure 4s ease-in-out infinite; }
.scn-ulysses-fears-for-life .wave  { position:absolute; bottom:30%; left:60%; width:120px; height:40px; background: radial-gradient(ellipse at 60% 50%, rgba(60,80,100,.6) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: ufl-wave 6s ease-in-out infinite; }
.scn-ulysses-fears-for-life .mist  { position:absolute; bottom:45%; left:0; right:0; height:20%; background: linear-gradient(90deg, rgba(200,210,220,.1) 0%, rgba(200,210,220,.3) 50%, rgba(200,210,220,.1) 100%); filter: blur(8px); animation: ufl-mist 20s linear infinite; }
.scn-ulysses-fears-for-life .cloud { position:absolute; top:12%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(180,190,200,.4) 0%, rgba(180,190,200,.1) 100%); border-radius:50%; filter: blur(5px); animation: ufl-cloud 30s linear infinite; }
@keyframes ufl-sky   { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ufl-ocean  { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ufl-rocks  { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(1deg) translateX(2px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes ufl-figure { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 25% { transform: translateX(10px) translateY(-8px) rotate(5deg) } 50% { transform: translateX(20px) translateY(-4px) rotate(-3deg) } 75% { transform: translateX(10px) translateY(-10px) rotate(3deg) } 100% { transform: translateX(0) translateY(0) rotate(-5deg) } }
@keyframes ufl-wave  { 0% { transform: scaleX(1) scaleY(1); opacity:.6 } 50% { transform: scaleX(1.3) scaleY(1.8); opacity:1 } 100% { transform: scaleX(1) scaleY(1); opacity:.6 } }
@keyframes ufl-mist  { 0% { transform: translateX(-30px); opacity:.3 } 50% { transform: translateX(30px); opacity:.5 } 100% { transform: translateX(-30px); opacity:.3 } }
@keyframes ufl-cloud { 0% { transform: translateX(-40px) } 50% { transform: translateX(20px) } 100% { transform: translateX(80vw) } }

.scn-wave-crashes-against-rocks { background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%), radial-gradient(ellipse at 50% 120%, #2a3a4a 0%, transparent 80%); }
.scn-wave-crashes-against-rocks .sky      { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 60%, transparent 100%); animation: wcr-sky 9s ease-in-out infinite alternate; }
.scn-wave-crashes-against-rocks .ocean    { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,.4); animation: wcr-ocean 13s ease-in-out infinite alternate; }
.scn-wave-crashes-against-rocks .rocks    { position:absolute; bottom:30%; left:20%; width:60%; height:40%; background: linear-gradient(135deg, #3a2a1a 0%, #1a0a00 100%); border-radius:80% 20% 50% 50% / 60% 40% 60% 40%; box-shadow: inset 0 12px 24px rgba(0,0,0,.6); animation: wcr-rocks 8s ease-in-out infinite; }
.scn-wave-crashes-against-rocks .wave-big{ position:absolute; bottom:35%; right:10%; width:160px; height:100px; background: radial-gradient(ellipse at 50% 80%, rgba(80,100,120,.7) 0%, transparent 80%); border-radius:60% 40% 50% 50% / 80% 60% 40% 20%; filter: blur(3px); animation: wcr-wave 5s ease-in-out infinite; }
.scn-wave-crashes-against-rocks .spray   { position:absolute; bottom:50%; right:20%; width:60px; height:40px; background: radial-gradient(circle, rgba(200,210,220,.6) 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: wcr-spray 3s ease-in-out infinite; }
.scn-wave-crashes-against-rocks .figure  { position:absolute; bottom:38%; left:28%; width:14px; height:22px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: wcr-figure 4s ease-in-out infinite; }
.scn-wave-crashes-against-rocks .foam    { position:absolute; bottom:30%; left:50%; width:80px; height:15px; background: linear-gradient(90deg, rgba(220,230,240,.4) 0%, rgba(220,230,240,.7) 50%, rgba(220,230,240,.4) 100%); border-radius:50%; filter: blur(4px); animation: wcr-foam 6s ease-in-out infinite alternate; }
@keyframes wcr-sky    { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes wcr-ocean   { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes wcr-rocks   { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(2deg) translateX(3px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes wcr-wave    { 0% { transform: scaleX(0.8) scaleY(0.8) translateX(0); opacity:.5 } 30% { transform: scaleX(1.3) scaleY(1.6) translateX(-20px); opacity:1 } 60% { transform: scaleX(1.6) scaleY(2.2) translateX(-40px); opacity:.8 } 100% { transform: scaleX(0.8) scaleY(0.8) translateX(0); opacity:.5 } }
@keyframes wcr-spray   { 0% { transform: translateY(0) scale(0.5); opacity:0 } 30% { transform: translateY(-20px) scale(1.2); opacity:1 } 60% { transform: translateY(-40px) scale(0.8); opacity:.6 } 100% { transform: translateY(-60px) scale(0.3); opacity:0 } }
@keyframes wcr-figure  { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 20% { transform: translateX(15px) translateY(-12px) rotate(15deg) } 40% { transform: translateX(30px) translateY(-6px) rotate(-10deg) } 60% { transform: translateX(45px) translateY(-18px) rotate(8deg) } 100% { transform: translateX(60px) translateY(0) rotate(0deg) } }
@keyframes wcr-foam    { 0% { transform: scaleX(1) scaleY(1); opacity:.3 } 50% { transform: scaleX(1.8) scaleY(1.5); opacity:.8 } 100% { transform: scaleX(1) scaleY(1); opacity:.3 } }

.scn-ulysses-swims-to-river { background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 40%, #1a2a3a 100%), radial-gradient(ellipse at 50% 120%, #2a3a4a 0%, transparent 70%); }
.scn-ulysses-swims-to-river .sky      { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 60%, transparent 100%); animation: usr-sky 10s ease-in-out infinite alternate; }
.scn-ulysses-swims-to-river .sea      { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 18px 36px rgba(0,0,0,.3); animation: usr-sea 15s ease-in-out infinite alternate; }
.scn-ulysses-swims-to-river .figure   { position:absolute; bottom:45%; left:20%; width:18px; height:26px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: usr-figure 6s ease-in-out infinite; }
.scn-ulysses-swims-to-river .wave1    { position:absolute; bottom:30%; left:10%; width:100px; height:25px; background: radial-gradient(ellipse at 50% 50%, rgba(60,80,100,.5) 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: usr-wave1 7s ease-in-out infinite; }
.scn-ulysses-swims-to-river .wave2    { position:absolute; bottom:35%; right:20%; width:120px; height:30px; background: radial-gradient(ellipse at 50% 50%, rgba(60,80,100,.4) 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: usr-wave2 9s ease-in-out infinite; animation-delay: -3s; }
.scn-ulysses-swims-to-river .cloud    { position:absolute; top:10%; right:15%; width:60px; height:15px; background: linear-gradient(180deg, rgba(180,190,200,.3) 0%, rgba(180,190,200,.1) 100%); border-radius:50%; filter: blur(4px); animation: usr-cloud 25s linear infinite; }
.scn-ulysses-swims-to-river .shore    { position:absolute; bottom:20%; left:70%; width:30%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 60% 0 0 / 100% 100% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.4); animation: usr-shore 20s ease-in-out infinite alternate; }
.scn-ulysses-swims-to-river .light-beam { position:absolute; top:5%; left:50%; width:100px; height:200px; background: radial-gradient(ellipse at 50% 0%, rgba(200,210,220,.2) 0%, transparent 80%); transform-origin:50% 0; animation: usr-light 8s ease-in-out infinite alternate; }
@keyframes usr-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes usr-sea    { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes usr-figure { 0% { transform: translateX(0) translateY(0) rotate(-8deg) } 25% { transform: translateX(8px) translateY(-6px) rotate(4deg) } 50% { transform: translateX(16px) translateY(-2px) rotate(-6deg) } 75% { transform: translateX(24px) translateY(-8px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(-8deg) } }
@keyframes usr-wave1  { 0% { transform: scaleX(1) scaleY(1); opacity:.4 } 50% { transform: scaleX(1.5) scaleY(2); opacity:.8 } 100% { transform: scaleX(1) scaleY(1); opacity:.4 } }
@keyframes usr-wave2  { 0% { transform: scaleX(1) scaleY(1); opacity:.3 } 50% { transform: scaleX(1.6) scaleY(1.8); opacity:.7 } 100% { transform: scaleX(1) scaleY(1); opacity:.3 } }
@keyframes usr-cloud  { 0% { transform: translateX(0) } 50% { transform: translateX(-30px) } 100% { transform: translateX(-100vw) } }
@keyframes usr-shore  { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(5px) scaleX(1.05) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes usr-light  { 0% { transform: rotate(-10deg) scaleY(0.8); opacity:.3 } 50% { transform: rotate(5deg) scaleY(1.2); opacity:.6 } 100% { transform: rotate(-10deg) scaleY(0.8); opacity:.3 } }

.scn-ulysses-prays-to-river-god { background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 40%, #1a2a1a 100%), radial-gradient(ellipse at 50% 80%, #2a3a2a 0%, transparent 70%); }
.scn-ulysses-prays-to-river-god .sky      { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 60%, transparent 100%); animation: upg-sky 11s ease-in-out infinite alternate; }
.scn-ulysses-prays-to-river-god .river    { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.3); animation: upg-river 14s ease-in-out infinite alternate; }
.scn-ulysses-prays-to-river-god .bank     { position:absolute; bottom:30%; left:10%; width:40%; height:30%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:60% 40% 30% 70% / 50% 40% 60% 50%; box-shadow: inset 0 12px 24px rgba(0,0,0,.5); animation: upg-bank 16s ease-in-out infinite; }
.scn-ulysses-prays-to-river-god .figure   { position:absolute; bottom:35%; left:30%; width:20px; height:32px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: upg-figure 7s ease-in-out infinite; }
.scn-ulysses-prays-to-river-god .rocks    { position:absolute; bottom:28%; right:15%; width:50px; height:30px; background: linear-gradient(135deg, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 60% 20% 80% / 50% 30% 70% 50%; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); animation: upg-rocks 12s ease-in-out infinite; }
.scn-ulysses-prays-to-river-god .tree     { position:absolute; bottom:20%; right:25%; width:40px; height:80px; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); border-radius:30% 30% 20% 20% / 60% 60% 40% 40%; box-shadow: inset 0 8px 16px rgba(0,0,0,.4); animation: upg-tree 9s ease-in-out infinite; }
.scn-ulysses-prays-to-river-god .light-ray{ position:absolute; top:10%; left:40%; width:80px; height:180px; background: radial-gradient(ellipse at 50% 0%, rgba(220,230,200,.2) 0%, transparent 80%); transform-origin:50% 0; animation: upg-light 10s ease-in-out infinite alternate; }
@keyframes upg-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes upg-river  { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes upg-bank   { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(2deg) translateX(2px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes upg-figure { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-4px) rotate(3deg) } 50% { transform: translateY(-8px) rotate(-2deg) } 75% { transform: translateY(-4px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes upg-rocks  { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.1) scaleY(0.95) } 100% { transform: scaleX(1) scaleY(1) } }
@keyframes upg-tree   { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(3deg) translateX(2px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes upg-light  { 0% { transform: rotate(-15deg) scaleY(0.7); opacity:.2 } 50% { transform: rotate(10deg) scaleY(1.1); opacity:.5 } 100% { transform: rotate(-15deg) scaleY(0.7); opacity:.2 } }

.scn-circe-house {
  background: linear-gradient(180deg, #87ceeb 0%, #f0d9a0 40%, #d4b87a 70%, #8b6f4e 100%),
              radial-gradient(ellipse at 50% 80%, #f0d9a0 0%, transparent 60%);
}
.scn-circe-house .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b0d4f1 0%, #87ceeb 100%); animation: ch-sky 12s ease-in-out infinite alternate; }
.scn-circe-house .forest-bg { position:absolute; top:30%; left:0; right:0; bottom:0; background: linear-gradient(180deg, #6b8e4e 0%, #3a5a2a 100%); border-radius: 30% 0 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: ch-forest 18s ease-in-out infinite alternate; }
.scn-circe-house .house-body { position:absolute; bottom:30%; left:35%; width:30%; height:35%; background: linear-gradient(135deg, #c8b08a 0%, #a08868 50%, #7a6040 100%); border-radius: 5% 5% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.4); }
.scn-circe-house .house-roof { position:absolute; bottom:62%; left:32%; width:36%; height:20%; background: linear-gradient(180deg, #b08050 0%, #8a6030 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: ch-roof 6s ease-in-out infinite; }
.scn-circe-house .window-glow { position:absolute; bottom:48%; left:47%; width:8%; height:12%; background: radial-gradient(circle, #ffe680 0%, #ffd060 60%, transparent 100%); border-radius: 20%; box-shadow: 0 0 30px 10px #ffd060, 0 0 60px 20px rgba(255,214,96,0.4); animation: ch-window 3s ease-in-out infinite alternate; }
.scn-circe-house .door { position:absolute; bottom:30%; left:46%; width:8%; height:15%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5); animation: ch-door 10s ease-in-out infinite; }
.scn-circe-house .animal-left { position:absolute; bottom:35%; left:15%; width:10%; height:8%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%; transform-origin: bottom center; animation: ch-animal 4s ease-in-out infinite; }
.scn-circe-house .animal-right { position:absolute; bottom:32%; right:12%; width:12%; height:10%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 50% 40% 40% 50% / 40% 60% 40% 60%; transform-origin: bottom center; animation: ch-animal 5s ease-in-out infinite reverse; }
@keyframes ch-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes ch-forest { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ch-roof { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ch-window { 0% { opacity:0.7; box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,214,96,0.3); } 50% { opacity:1; box-shadow: 0 0 40px 14px #ffe680, 0 0 80px 24px rgba(255,230,128,0.5); } 100% { opacity:0.85; box-shadow: 0 0 25px 8px #ffd060, 0 0 50px 16px rgba(255,214,96,0.4); } }
@keyframes ch-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes ch-animal { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }

.scn-circe-turns-men-to-pigs {
  background: linear-gradient(180deg, #2a1a1a 0%, #4a2a2a 30%, #6a3a2a 60%, #3a1a1a 100%),
              radial-gradient(ellipse at 50% 40%, #c06030 0%, transparent 70%);
}
.scn-circe-turns-men-to-pigs .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,0.6); animation: ct-room 15s ease-in-out infinite; }
.scn-circe-turns-men-to-pigs .table { position:absolute; bottom:30%; left:30%; width:40%; height:5%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-circe-turns-men-to-pigs .circe-figure { position:absolute; bottom:38%; left:38%; width:12%; height:30%; background: linear-gradient(180deg, #8a5a4a 0%, #5a3a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ct-circe 4s ease-in-out infinite; }
.scn-circe-turns-men-to-pigs .men-figure { position:absolute; bottom:38%; right:35%; width:10%; height:28%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%; transform-origin: bottom center; animation: ct-men 6s ease-in-out infinite; }
.scn-circe-turns-men-to-pigs .pig-figure { position:absolute; bottom:32%; right:28%; width:14%; height:10%; background: linear-gradient(180deg, #b08868 0%, #8a6040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ct-pig 3s ease-in-out infinite alternate; }
.scn-circe-turns-men-to-pigs .bench { position:absolute; bottom:28%; left:25%; width:20%; height:4%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-circe-turns-men-to-pigs .torch-light { position:absolute; top:15%; left:45%; width:6%; height:20%; background: radial-gradient(ellipse, #ffa040 0%, #ff6000 40%, transparent 80%); mix-blend-mode: screen; animation: ct-torch 2s ease-in-out infinite alternate; }
.scn-circe-turns-men-to-pigs .doorway { position:absolute; bottom:0; left:0; width:20%; height:100%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-right: 4px solid #4a2a1a; animation: ct-door 8s ease-in-out infinite; }
@keyframes ct-room { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ct-circe { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-3deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ct-men { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes ct-pig { 0% { transform: scaleX(1) rotate(-5deg); } 50% { transform: scaleX(1.1) rotate(5deg); } 100% { transform: scaleX(1) rotate(-5deg); } }
@keyframes ct-torch { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ct-door { 0% { filter: brightness(0.8); } 50% { filter: brightness(1); } 100% { filter: brightness(0.8); } }

.scn-ulysses-goes-to-circe {
  background: linear-gradient(180deg, #b0d4f1 0%, #f0d9a0 40%, #d4b87a 70%, #7a6040 100%),
              radial-gradient(ellipse at 50% 100%, #7a6040 0%, transparent 60%);
}
.scn-ulysses-goes-to-circe .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0d4f1 100%); animation: ug-sky 10s ease-in-out infinite alternate; }
.scn-ulysses-goes-to-circe .path { position:absolute; bottom:25%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #c8b080 0%, #a08860 100%); clip-path: polygon(0% 20%, 100% 0%, 100% 100%, 0% 80%); animation: ug-path 20s ease-in-out infinite alternate; }
.scn-ulysses-goes-to-circe .trees-left { position:absolute; bottom:30%; left:0; width:20%; height:70%; background: linear-gradient(180deg, #3a5a2a 0%, #1a3a0a 100%); border-radius: 0 40% 0 0; box-shadow: inset -10px 0 20px rgba(0,0,0,0.4); animation: ug-trees 8s ease-in-out infinite; }
.scn-ulysses-goes-to-circe .trees-right { position:absolute; bottom:30%; right:0; width:20%; height:70%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 40% 0 0 0; box-shadow: inset 10px 0 20px rgba(0,0,0,0.4); animation: ug-trees 8s ease-in-out infinite reverse; }
.scn-ulysses-goes-to-circe .house-distant { position:absolute; bottom:35%; left:45%; width:15%; height:20%; background: linear-gradient(135deg, #a08868 0%, #7a6040 100%); border-radius: 5% 5% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform: scale(0.6); animation: ug-house 15s ease-in-out infinite; }
.scn-ulysses-goes-to-circe .odysseus-figure { position:absolute; bottom:28%; left:30%; width:8%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 40% 20% 20% / 40% 50% 20% 20%; transform-origin: bottom center; animation: ug-figure 4s ease-in-out infinite; }
.scn-ulysses-goes-to-circe .eurylochus-figure { position:absolute; bottom:28%; left:22%; width:7%; height:22%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 40% 20% 20% / 40% 50% 20% 20%; transform-origin: bottom center; animation: ug-figure 4s ease-in-out infinite 0.5s; }
.scn-ulysses-goes-to-circe .sword-glow { position:absolute; bottom:38%; left:32%; width:4%; height:16%; background: linear-gradient(180deg, #ffe680 0%, #ffd060 50%, transparent 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 8px #ffd060; animation: ug-sword 1.5s ease-in-out infinite alternate; }
@keyframes ug-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ug-path { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.05) translateX(5px); } 100% { transform: scaleY(1) translateX(0); } }
@keyframes ug-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes ug-house { 0%,100% { transform: scale(0.6) translateY(0); } 50% { transform: scale(0.62) translateY(-3px); } }
@keyframes ug-figure { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(4px) rotate(3deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes ug-sword { 0% { opacity:0.6; box-shadow: 0 0 15px 5px #ffd060; } 50% { opacity:1; box-shadow: 0 0 30px 12px #ffe680; } 100% { opacity:0.7; box-shadow: 0 0 20px 8px #ffd060; } }

.scn-hermes-gives-moly {
  background: linear-gradient(180deg, #b0d4f1 0%, #e8d8a0 40%, #c8b080 70%, #8b6f4e 100%),
              radial-gradient(ellipse at 50% 30%, #e8d8a0 0%, transparent 60%);
}
.scn-hermes-gives-moly .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0d4f1 100%); animation: hg-sky 12s ease-in-out infinite alternate; }
.scn-hermes-gives-moly .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #7a8a5a 0%, #5a6a3a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.2); }
.scn-hermes-gives-moly .hermes-figure { position:absolute; bottom:40%; left:35%; width:10%; height:30%; background: linear-gradient(180deg, #b08868 0%, #7a6040 100%); border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%; transform-origin: bottom center; animation: hg-hermes 6s ease-in-out infinite; }
.scn-hermes-gives-moly .odysseus-figure { position:absolute; bottom:40%; right:35%; width:9%; height:28%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 40% 20% 20% / 40% 50% 20% 20%; transform-origin: bottom center; animation: hg-odysseus 6s ease-in-out infinite 0.3s; }
.scn-hermes-gives-moly .moly-plant { position:absolute; bottom:42%; left:38%; width:4%; height:8%; background: linear-gradient(180deg, #d0c080 0%, #f0e8c0 50%, #ffffff 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 12px 4px rgba(255,255,255,0.6); animation: hg-moly 4s ease-in-out infinite; }
.scn-hermes-gives-moly .staff { position:absolute; bottom:38%; left:33%; width:2%; height:24%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 20%; transform: rotate(-15deg); transform-origin: bottom center; animation: hg-staff 8s ease-in-out infinite; }
.scn-hermes-gives-moly .tree-bg { position:absolute; bottom:30%; left:10%; width:25%; height:60%; background: linear-gradient(180deg, #3a5a2a 0%, #1a3a0a 100%); border-radius: 0 40% 0 0; box-shadow: inset -10px 0 20px rgba(0,0,0,0.3); animation: hg-tree 15s ease-in-out infinite; }
@keyframes hg-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes hg-hermes { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-3deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes hg-odysseus { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(2px) rotate(3deg); } 75% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes hg-moly { 0% { transform: scale(1) rotate(-5deg); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(1) rotate(-5deg); } }
@keyframes hg-staff { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-10deg) scaleY(1.02); } 100% { transform: rotate(-15deg) scaleY(1); } }
@keyframes hg-tree { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

/* Scene: telemachus-asserts-himself */
.scn-telemachus-asserts-himself {
  background: 
    linear-gradient(180deg, #1e1820 0%, #2a1f28 40%, #361f18 100%),
    radial-gradient(ellipse at 60% 30%, #4a2a20 0%, transparent 60%);
}
.scn-telemachus-asserts-himself .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e2420 0%, #1b1210 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: ta-wall 8s ease-in-out infinite alternate;
}
.scn-telemachus-asserts-himself .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0e0a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
}
.scn-telemachus-asserts-himself .torch {
  position: absolute; bottom: 55%; right: 15%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #4a3020 0%, #1a0a00 100%);
  border-radius: 4px 4px 2px 2px;
}
.scn-telemachus-asserts-himself .torch::after {
  content: ''; position: absolute; top: -20px; left: -10px; width: 28px; height: 28px;
  background: radial-gradient(circle, #d88a40 0%, #b05a20 40%, transparent 70%);
  border-radius: 50%;
  animation: ta-flame 0.8s ease-in-out infinite alternate;
  box-shadow: 0 0 30px 12px #b05a20;
}
.scn-telemachus-asserts-himself .telemachus {
  position: absolute; bottom: 30%; left: 40%; width: 24px; height: 80px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ta-telemachus 4s ease-in-out infinite alternate;
}
.scn-telemachus-asserts-himself .telemachus::after {
  content: ''; position: absolute; top: 5px; left: -2px; width: 14px; height: 14px;
  background: #0e0a08; border-radius: 50%;
}
.scn-telemachus-asserts-himself .antinous {
  position: absolute; bottom: 30%; left: 55%; width: 22px; height: 78px;
  background: linear-gradient(180deg, #1e1814 0%, #120e0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ta-antinous 4.5s ease-in-out infinite alternate;
}
.scn-telemachus-asserts-himself .antinous::after {
  content: ''; position: absolute; top: 5px; left: -2px; width: 14px; height: 14px;
  background: #120e0a; border-radius: 50%;
}
.scn-telemachus-asserts-himself .shadow {
  position: absolute; bottom: 30%; left: 30%; width: 60%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: ta-shadow 8s linear infinite;
}
.scn-telemachus-asserts-himself .spear {
  position: absolute; bottom: 38%; left: 42%; width: 3px; height: 80px;
  background: linear-gradient(180deg, #5a3a20 0%, #2a1a10 100%);
  border-radius: 1px;
  transform: rotate(15deg);
  animation: ta-spear 4s ease-in-out infinite alternate;
}
@keyframes ta-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ta-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.05) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.95) translateY(1px); opacity: 0.8; }
}
@keyframes ta-telemachus {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes ta-antinous {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-3deg); }
  100% { transform: translateX(1px) rotate(2deg); }
}
@keyframes ta-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.05); }
  100% { opacity: 0.4; transform: scaleX(0.95); }
}
@keyframes ta-spear {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
  100% { transform: rotate(18deg) translateY(1px); }
}

/* Scene: eurymachus-asks-about-stranger */
.scn-eurymachus-asks-about-stranger {
  background: 
    linear-gradient(180deg, #1e1822 0%, #2a2028 40%, #1f1a24 100%),
    radial-gradient(ellipse at 50% 20%, #3a2a3a 0%, transparent 60%);
}
.scn-eurymachus-asks-about-stranger .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2030 0%, #1a1220 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: eu-wall 12s ease-in-out infinite alternate;
}
.scn-eurymachus-asks-about-stranger .hearth {
  position: absolute; bottom: 30%; left: 20%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #4a3028 0%, #2a1810 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: eu-hearth 6s ease-in-out infinite alternate;
}
.scn-eurymachus-asks-about-stranger .column {
  position: absolute; bottom: 30%; left: 60%; width: 12px; height: 70%;
  background: linear-gradient(180deg, #3a2a30 0%, #1a1018 100%);
  border-radius: 4px;
  box-shadow: 2px 0 10px rgba(0,0,0,0.4);
}
.scn-eurymachus-asks-about-stranger .eurymachus {
  position: absolute; bottom: 30%; left: 48%; width: 22px; height: 75px;
  background: linear-gradient(180deg, #1e1820 0%, #0e0a10 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: eu-eurymachus 5s ease-in-out infinite;
}
.scn-eurymachus-asks-about-stranger .eurymachus::after {
  content: ''; position: absolute; top: 5px; left: -3px; width: 12px; height: 12px;
  background: #0e0a10; border-radius: 50%;
}
.scn-eurymachus-asks-about-stranger .telemachus-seated {
  position: absolute; bottom: 30%; left: 35%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a1620 0%, #0e0a12 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: eu-seated 6s ease-in-out infinite alternate;
}
.scn-eurymachus-asks-about-stranger .telemachus-seated::after {
  content: ''; position: absolute; top: 3px; left: -4px; width: 14px; height: 12px;
  background: #0e0a12; border-radius: 50%;
}
.scn-eurymachus-asks-about-stranger .glow {
  position: absolute; bottom: 30%; left: 20%; width: 20%; height: 30%;
  background: radial-gradient(circle, rgba(80,50,40,0.4) 0%, transparent 70%);
  filter: blur(15px);
  animation: eu-glow 8s ease-in-out infinite alternate;
}
.scn-eurymachus-asks-about-stranger .rug {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #3a2830 0%, #20141a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  opacity: 0.6;
  animation: eu-rug 10s linear infinite alternate;
}
@keyframes eu-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes eu-hearth {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.02); opacity: 0.9; }
  100% { transform: scale(0.98); opacity: 0.7; }
}
@keyframes eu-eurymachus {
  0% { transform: translateX(0) rotate(-1deg); }
  33% { transform: translateX(-2px) rotate(1deg); }
  66% { transform: translateX(1px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes eu-seated {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes eu-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}
@keyframes eu-rug {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.03); }
  100% { transform: scaleX(0.97); }
}

/* Scene: telemachus-lies-about-mentes */
.scn-telemachus-lies-about-mentes {
  background: 
    linear-gradient(180deg, #1a1820 0%, #221c28 40%, #181420 100%),
    radial-gradient(ellipse at 70% 60%, #2a2028 0%, transparent 60%);
}
.scn-telemachus-lies-about-mentes .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #221c28 0%, #14101a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: tl-wall 10s ease-in-out infinite alternate;
}
.scn-telemachus-lies-about-mentes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1e1820 0%, #120e14 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-telemachus-lies-about-mentes .table {
  position: absolute; bottom: 35%; left: 40%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #3a2820 0%, #1e1210 100%);
  border-radius: 20% 20% 5% 5% / 40% 40% 10% 10%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  animation: tl-table 7s ease-in-out infinite alternate;
}
.scn-telemachus-lies-about-mentes .telemachus-lies {
  position: absolute; bottom: 35%; left: 45%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #1a1620 0%, #0e0a12 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: tl-telemachus 4s ease-in-out infinite;
}
.scn-telemachus-lies-about-mentes .telemachus-lies::after {
  content: ''; position: absolute; top: 4px; left: -2px; width: 12px; height: 12px;
  background: #0e0a12; border-radius: 50%;
}
.scn-telemachus-lies-about-mentes .lamp {
  position: absolute; bottom: 50%; left: 58%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #d8a060 0%, #a06a30 60%, transparent 80%);
  border-radius: 50% 50% 20% 20% / 60% 60% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(160,106,48,0.5);
  animation: tl-lamp 3s ease-in-out infinite alternate;
}
.scn-telemachus-lies-about-mentes .shadow {
  position: absolute; bottom: 35%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(12px);
  animation: tl-shadow 10s linear infinite;
}
.scn-telemachus-lies-about-mentes .cup {
  position: absolute; bottom: 38%; left: 48%; width: 10px; height: 12px;
  background: linear-gradient(180deg, #5a4040 0%, #301e1e 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  animation: tl-cup 5s ease-in-out infinite alternate;
}
@keyframes tl-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes tl-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(1px); }
}
@keyframes tl-telemachus {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(2px) rotate(2deg); }
  66% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tl-lamp {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 20px 8px rgba(160,106,48,0.4); }
  50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 40px 15px rgba(160,106,48,0.6); }
  100% { transform: scale(0.95); opacity: 0.7; box-shadow: 0 0 15px 5px rgba(160,106,48,0.3); }
}
@keyframes tl-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes tl-cup {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-1px); }
  100% { transform: rotate(-3deg) translateY(1px); }
}

/* Scene: evening-suitors-depart */
.scn-evening-suitors-depart {
  background: 
    linear-gradient(180deg, #0c0e1a 0%, #141a2a 40%, #1a2030 100%),
    radial-gradient(ellipse at 20% 80%, #1a2030 0%, transparent 70%);
}
.scn-evening-suitors-depart .tower-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #141828 0%, #0c1018 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: ev-tower 15s ease-in-out infinite alternate;
}
.scn-evening-suitors-depart .window-frame {
  position: absolute; bottom: 35%; left: 30%; width: 40%; height: 45%;
  background: linear-gradient(180deg, #2a3038 0%, #181e24 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  border: 3px solid #3a3a44;
  animation: ev-frame 8s ease-in-out infinite alternate;
}
.scn-evening-suitors-depart .night-sky {
  position: absolute; bottom: 35%; left: 30%; width: 40%; height: 45%;
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2838 50%, #2a3848 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  opacity: 0.8;
  animation: ev-sky 20s linear infinite alternate;
}
.scn-evening-suitors-depart .moon {
  position: absolute; bottom: 65%; right: 15%; width: 20px; height: 20px;
  background: radial-gradient(circle, #d0d8e0 0%, #a0a8b0 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(160,168,176,0.4);
  animation: ev-moon 12s ease-in-out infinite alternate;
}
.scn-evening-suitors-depart .telemachus-tower {
  position: absolute; bottom: 25%; left: 38%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #0e1218 0%, #06080c 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ev-telemachus 5s ease-in-out infinite;
}
.scn-evening-suitors-depart .telemachus-tower::after {
  content: ''; position: absolute; top: 5px; left: -2px; width: 14px; height: 14px;
  background: #06080c; border-radius: 50%;
}
.scn-evening-suitors-depart .curtain {
  position: absolute; bottom: 35%; left: 25%; width: 50%; height: 45%;
  background: linear-gradient(180deg, #1e2028 0%, #0e1014 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  opacity: 0.3;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  animation: ev-curtain 10s ease-in-out infinite alternate;
}
.scn-evening-suitors-depart .outer-court {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #1a2838 0%, #0c141a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  opacity: 0.5;
  animation: ev-court 14s linear infinite alternate;
}
.scn-evening-suitors-depart .departing-figures {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 8%;
  background: repeating-linear-gradient(90deg, #0e1218 0px, #0e1218 4px, transparent 4px, transparent 12px);
  filter: blur(2px);
  opacity: 0.3;
  animation: ev-figures 30s linear infinite;
}
@keyframes ev-tower {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ev-frame {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(0.98); }
}
@keyframes ev-sky {
  0% { background-position: 0% 0%; }
  50% { background-position: 0% 5%; }
  100% { background-position: 0% 0%; }
}
@keyframes ev-moon {
  0% { transform: translateX(0) scale(1); opacity: 0.8; }
  50% { transform: translateX(5px) scale(1.02); opacity: 1; }
  100% { transform: translateX(-5px) scale(0.98); opacity: 0.7; }
}
@keyframes ev-telemachus {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(2px) rotate(2deg); }
  66% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ev-curtain {
  0% { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); }
  50% { clip-path: polygon(5% 0%, 95% 0%, 100% 100%, 0% 100%); }
  100% { clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%); }
}
@keyframes ev-court {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes ev-figures {
  0% { transform: translateX(0); }
  100% { transform: translateX(-20%); }
}

.scn-reached-thrinacia {
  background:
    linear-gradient(180deg, #f9d068 0%, #e8a040 40%, #7a4a2a 70%, #1a1a1a 100%);
  position: relative;
  overflow: hidden;
}
.scn-reached-thrinacia .sun {
  position: absolute;
  top: 8%;
  right: 20%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, #fff5c0 0%, #f0c040 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(240, 200, 64, 0.6);
  animation: rt-sun 16s ease-in-out infinite alternate;
}
.scn-reached-thrinacia .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a7a9a 0%, #8ab8d0 40%, #f0c868 70%);
  opacity: 0.6;
  animation: rt-sky 12s ease-in-out infinite;
}
.scn-reached-thrinacia .sea {
  position: absolute;
  bottom: 20%;
  left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #3a6a8a 0%, #1a4a6a 100%);
  border-radius: 50% 30% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
  animation: rt-sea 8s ease-in-out infinite alternate;
}
.scn-reached-thrinacia .island {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 50%;
  height: 18%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 60% 40% 20% 20% / 80% 70% 30% 30%;
  box-shadow: 0 -5px 20px rgba(0,0,0,.4);
  animation: rt-island 20s ease-in-out infinite;
}
.scn-reached-thrinacia .cattle {
  position: absolute;
  bottom: 24%;
  left: 15%;
  width: 20px;
  height: 12px;
  background: #4a3a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
}
.scn-reached-thrinacia .cattle-1 { left: 15%; animation: rt-cattle 6s ease-in-out infinite; }
.scn-reached-thrinacia .cattle-2 { left: 28%; animation: rt-cattle 6s ease-in-out infinite 1s; }
.scn-reached-thrinacia .cattle-3 { left: 38%; animation: rt-cattle 6s ease-in-out infinite 2s; }
.scn-reached-thrinacia .figure {
  position: absolute;
  bottom: 22%;
  left: 55%;
  width: 16px;
  height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  animation: rt-figure 10s ease-in-out infinite;
}
.scn-reached-thrinacia .shadow {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 40px;
  height: 8px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(4px);
  transform: translateX(-50%);
  animation: rt-shadow 10s ease-in-out infinite;
}
@keyframes rt-sun {
  0% { transform: translate(0,0) scale(1); box-shadow: 0 0 60px 30px rgba(240,200,64,0.6); }
  50% { transform: translate(-8px, 5px) scale(1.05); box-shadow: 0 0 80px 40px rgba(240,200,64,0.8); }
  100% { transform: translate(5px, -3px) scale(0.98); box-shadow: 0 0 50px 20px rgba(240,200,64,0.4); }
}
@keyframes rt-sky {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.02); }
  100% { opacity: 0.55; transform: scaleY(0.98); }
}
@keyframes rt-sea {
  0% { transform: translateY(0) skewX(-1deg); }
  50% { transform: translateY(-4px) skewX(1deg); }
  100% { transform: translateY(2px) skewX(-0.5deg); }
}
@keyframes rt-island {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(0.97); }
}
@keyframes rt-cattle {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(5px) rotate(1deg); }
  70% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(2px) rotate(0deg); }
}
@keyframes rt-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(-2deg); }
  50% { transform: translateX(-2px) rotate(1deg); }
  75% { transform: translateX(4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rt-shadow {
  0% { transform: translateX(-50%) scaleX(1); opacity: 0.3; }
  50% { transform: translateX(-50%) scaleX(1.3); opacity: 0.5; }
  100% { transform: translateX(-50%) scaleX(0.8); opacity: 0.2; }
}

.scn-eurylochus-convinces-men {
  background:
    linear-gradient(180deg, #d0b060 0%, #a08040 40%, #5a3a1a 100%);
  position: relative;
  overflow: hidden;
}
.scn-eurylochus-convinces-men .bg-sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8ab8d0 0%, #f0c868 100%);
  animation: ec-sky 15s ease-in-out infinite alternate;
}
.scn-eurylochus-convinces-men .bg-sea {
  position: absolute;
  bottom: 25%;
  left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #3a7a9a 0%, #1a4a6a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  animation: ec-sea 10s ease-in-out infinite;
}
.scn-eurylochus-convinces-men .ship-hull {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 120px;
  height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 0 30% 40% 40% / 0 60% 40% 40%;
  box-shadow: inset 0 -8px 10px rgba(0,0,0,.5);
  animation: ec-hull 12s ease-in-out infinite;
}
.scn-eurylochus-convinces-men .mast {
  position: absolute;
  bottom: 40%;
  left: 50%;
  width: 6px;
  height: 60px;
  background: #3a2a1a;
  border-radius: 2px;
  transform: translateX(-50%);
  animation: ec-mast 8s ease-in-out infinite alternate;
}
.scn-eurylochus-convinces-men .sail {
  position: absolute;
  bottom: 50%;
  left: 40%;
  width: 60px;
  height: 40px;
  background: linear-gradient(180deg, #d0b080 0%, #a08050 100%);
  border-radius: 20% 50% 30% 40% / 40% 60% 30% 50%;
  transform: rotate(-5deg);
  animation: ec-sail 18s ease-in-out infinite;
}
.scn-eurylochus-convinces-men .figure-odysseus {
  position: absolute;
  bottom: 25%;
  left: 44%;
  width: 16px;
  height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  animation: ec-odysseus 5s ease-in-out infinite;
}
.scn-eurylochus-convinces-men .figure-eurylochus {
  position: absolute;
  bottom: 25%;
  left: 52%;
  width: 18px;
  height: 28px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  animation: ec-eurylochus 6s ease-in-out infinite;
}
.scn-eurylochus-convinces-men .figure-men {
  position: absolute;
  bottom: 25%;
  left: 58%;
  width: 40px;
  height: 20px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ec-men 7s ease-in-out infinite;
}
.scn-eurylochus-convinces-men .glare {
  position: absolute;
  top: 30%;
  left: 30%;
  width: 100px;
  height: 100px;
  background: radial-gradient(circle, rgba(255,230,180,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ec-glare 20s ease-in-out infinite alternate;
}
@keyframes ec-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ec-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(2px) scaleY(0.98); }
}
@keyframes ec-hull {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(1deg) translateY(-1px); }
  70% { transform: rotate(-1deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ec-mast {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-0.5deg); }
}
@keyframes ec-sail {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(-2deg) scale(1.05); }
  100% { transform: rotate(-6deg) scale(0.95); }
}
@keyframes ec-odysseus {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-1deg); }
  75% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ec-eurylochus {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(-2px) rotate(-1deg); }
  50% { transform: translateX(1px) rotate(1deg); }
  75% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ec-men {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(4px) scale(1.05); }
  100% { transform: translateX(-2px) scale(0.95); }
}
@keyframes ec-glare {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.2); opacity: 0.5; }
  100% { transform: scale(0.9); opacity: 0.2; }
}

.scn-ulysses-relents {
  background:
    linear-gradient(180deg, #c8a860 0%, #a08040 40%, #5a3a1a 100%);
  position: relative;
  overflow: hidden;
}
.scn-ulysses-relents .bg-deep {
  position: absolute;
  inset: 0 0 45% 0;
  background: radial-gradient(ellipse at 30% 20%, #f0d88a 0%, #c8a860 50%, #8a6a3a 100%);
  animation: ur-deep 20s ease-in-out infinite alternate;
}
.scn-ulysses-relents .bg-shore {
  position: absolute;
  bottom: 25%;
  left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  animation: ur-shore 15s ease-in-out infinite;
}
.scn-ulysses-relents .sun-glow {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #fff5c0 0%, #f0c040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px rgba(240,200,64,0.4);
  animation: ur-sun 14s ease-in-out infinite alternate;
}
.scn-ulysses-relents .figure-ulysses {
  position: absolute;
  bottom: 28%;
  left: 45%;
  width: 18px;
  height: 32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  animation: ur-ulysses 6s ease-in-out infinite;
}
.scn-ulysses-relents .arm-raise {
  position: absolute;
  bottom: 42%;
  left: 48%;
  width: 6px;
  height: 20px;
  background: #1a1a2a;
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%;
  transform-origin: bottom center;
  animation: ur-arm 8s ease-in-out infinite;
}
.scn-ulysses-relents .figure-men-1 {
  position: absolute;
  bottom: 28%;
  left: 54%;
  width: 14px;
  height: 26px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  animation: ur-men1 7s ease-in-out infinite;
}
.scn-ulysses-relents .figure-men-2 {
  position: absolute;
  bottom: 28%;
  left: 58%;
  width: 14px;
  height: 26px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  animation: ur-men2 7s ease-in-out infinite 1s;
}
.scn-ulysses-relents .oath-spark {
  position: absolute;
  bottom: 44%;
  left: 49%;
  width: 4px;
  height: 4px;
  background: #ffd680;
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,214,128,0.8);
  animation: ur-spark 3s ease-in-out infinite;
}
@keyframes ur-deep {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ur-shore {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(1px) scaleY(0.98); }
}
@keyframes ur-sun {
  0% { transform: translate(0,0) scale(1); box-shadow: 0 0 50px 25px rgba(240,200,64,0.4); }
  50% { transform: translate(-5px, 3px) scale(1.03); box-shadow: 0 0 60px 30px rgba(240,200,64,0.6); }
  100% { transform: translate(3px, -2px) scale(0.97); box-shadow: 0 0 40px 20px rgba(240,200,64,0.3); }
}
@keyframes ur-ulysses {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-1deg); }
  50% { transform: translateX(-1px) rotate(1deg); }
  75% { transform: translateX(3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ur-arm {
  0% { transform: rotate(-30deg); }
  30% { transform: rotate(-10deg); }
  60% { transform: rotate(-20deg); }
  100% { transform: rotate(-35deg); }
}
@keyframes ur-men1 {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(2px) rotate(1deg); }
}
@keyframes ur-men2 {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes ur-spark {
  0% { transform: scale(0.5); opacity: 0.2; }
  30% { transform: scale(1.5); opacity: 1; }
  60% { transform: scale(0.8); opacity: 0.6; }
  100% { transform: scale(0.4); opacity: 0.1; }
}

.scn-storm-on-thrinacia {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #2a2a4a 60%, #1a1a2a 100%);
  position: relative;
  overflow: hidden;
}
.scn-storm-on-thrinacia .sky-dark {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  animation: st-sky 10s ease-in-out infinite alternate;
}
.scn-storm-on-thrinacia .cloud-mass {
  position: absolute;
  top: 5%;
  left: -10%;
  width: 120%;
  height: 40%;
  background:
    radial-gradient(ellipse at 20% 30%, rgba(60,60,80,0.8) 0%, transparent 50%),
    radial-gradient(ellipse at 60% 20%, rgba(40,40,60,0.7) 0%, transparent 40%),
    radial-gradient(ellipse at 90% 40%, rgba(80,80,100,0.6) 0%, transparent 50%);
  filter: blur(15px);
  animation: st-clouds 25s linear infinite;
}
.scn-storm-on-thrinacia .sea-storm {
  position: absolute;
  bottom: 20%;
  left: 0; right: 0;
  height: 45%;
  background: linear-gradient(180deg, #1a3a5a 0%, #0a1a2a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  animation: st-sea 6s ease-in-out infinite alternate;
}
.scn-storm-on-thrinacia .wave {
  position: absolute;
  bottom: 30%;
  width: 200px;
  height: 30px;
  background: radial-gradient(ellipse, #4a8aaa 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-storm-on-thrinacia .wave-1 {
  left: -20%;
  animation: st-wave1 4s ease-in-out infinite;
}
.scn-storm-on-thrinacia .wave-2 {
  left: 30%;
  animation: st-wave2 4s ease-in-out infinite 1.5s;
}
.scn-storm-on-thrinacia .ship-toss {
  position: absolute;
  bottom: 22%;
  left: 45%;
  width: 100px;
  height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 30% 40% 40% / 0 60% 40% 40%;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,.6);
  animation: st-ship 3s ease-in-out infinite;
}
.scn-storm-on-thrinacia .mast-storm {
  position: absolute;
  bottom: 35%;
  left: 50%;
  width: 5px;
  height: 50px;
  background: #2a1a0a;
  transform: translateX(-50%) rotate(15deg);
  animation: st-mast 3s ease-in-out infinite;
}
.scn-storm-on-thrinacia .lightning {
  position: absolute;
  top: 10%;
  left: 60%;
  width: 2px;
  height: 80px;
  background: #fff;
  border-radius: 1px;
  box-shadow: 0 0 20px 10px rgba(255,255,255,0.8);
  animation: st-lightning 8s step-end infinite;
}
@keyframes st-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes st-clouds {
  0% { transform: translateX(0); }
  100% { transform: translateX(20%); }
}
@keyframes st-sea {
  0% { transform: translateY(0) scaleY(1); }
  30% { transform: translateY(-5px) scaleY(1.05); }
  70% { transform: translateY(3px) scaleY(0.95); }
  100% { transform: translateY(-2px) scaleY(1.02); }
}
@keyframes st-wave1 {
  0% { transform: translateX(0) scaleY(1); }
  25% { transform: translateX(30px) scaleY(1.2); }
  50% { transform: translateX(60px) scaleY(0.9); }
  75% { transform: translateX(90px) scaleY(1.1); }
  100% { transform: translateX(120px) scaleY(1); }
}
@keyframes st-wave2 {
  0% { transform: translateX(0) scaleY(1); }
  25% { transform: translateX(-25px) scaleY(1.15); }
  50% { transform: translateX(-50px) scaleY(0.85); }
  75% { transform: translateX(-75px) scaleY(1.05); }
  100% { transform: translateX(-100px) scaleY(1); }
}
@keyframes st-ship {
  0% { transform: rotate(0deg) translateY(0); }
  20% { transform: rotate(5deg) translateY(-3px); }
  40% { transform: rotate(-4deg) translateY(2px); }
  60% { transform: rotate(3deg) translateY(-2px); }
  80% { transform: rotate(-2deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes st-mast {
  0% { transform: translateX(-50%) rotate(15deg); }
  25% { transform: translateX(-50%) rotate(20deg); }
  50% { transform: translateX(-50%) rotate(10deg); }
  75% { transform: translateX(-50%) rotate(18deg); }
  100% { transform: translateX(-50%) rotate(15deg); }
}
@keyframes st-lightning {
  0%, 85% { opacity: 0; }
  86% { opacity: 1; }
  88% { opacity: 0.3; }
  90% { opacity: 1; }
  92% { opacity: 0; }
  100% { opacity: 0; }
}

/* Scene: ulysses-resists-circe (tense, bright-interior) */
.scn-ulysses-resists-circe {
  background:
    linear-gradient(180deg, #fff3d6 0%, #f5d6a8 30%, #c4966a 100%),
    radial-gradient(ellipse at 40% 60%, #ffd699 0%, #b87333 100%);
}
.scn-ulysses-resists-circe .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #d9c2a3 0%, #f0dfc0 100%); }
.scn-ulysses-resists-circe .floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a08464 0%, #7a6248 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,0.4); }
.scn-ulysses-resists-circe .ulysses { position:absolute; bottom:28%; 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: uc-walk 1.8s ease-in-out infinite; }
.scn-ulysses-resists-circe .circe   { position:absolute; bottom:24%; left:55%; width:26px; height:50px; background: linear-gradient(180deg, #8b5e3c 0%, #5e3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: uc-fall 2.2s ease-in-out infinite; }
.scn-ulysses-resists-circe .sword   { position:absolute; bottom:38%; left:38%; width:4px; height:40px; background: linear-gradient(180deg, #c0b0a0 0%, #908070 100%); border-radius: 2px; transform-origin: 50% 100%; animation: uc-strike 1.8s ease-in-out infinite; }
.scn-ulysses-resists-circe .lamp    { position:absolute; top:18%; right:25%; width:12px; height:16px; background: radial-gradient(circle, #ffe680 0%, #cc8800 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 24px 8px #ffcc44, 0 0 48px 16px rgba(255,204,68,0.3); animation: uc-flicker 0.4s ease-in-out infinite alternate; }
.scn-ulysses-resists-circe .shadow-ulysses { position:absolute; bottom:10%; left:30%; width:40px; height:6px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(3px); animation: uc-shadow 1.8s ease-in-out infinite; }
@keyframes uc-walk {
  0%   { transform: translateY(0) rotate(-2deg); }
  30%  { transform: translateY(-4px) rotate(1deg); }
  60%  { transform: translateY(0) rotate(-1deg); }
  80%  { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes uc-fall {
  0%   { transform: translateY(0) scaleY(1) rotate(0deg); }
  20%  { transform: translateY(-3px) scaleY(0.98) rotate(1deg); }
  50%  { transform: translateY(6px) scaleY(0.92) rotate(-2deg); }
  70%  { transform: translateY(2px) scaleY(0.96) rotate(1deg); }
  100% { transform: translateY(0) scaleY(1) rotate(0deg); }
}
@keyframes uc-strike {
  0%   { transform: rotate(-80deg); }
  30%  { transform: rotate(-20deg); }
  60%  { transform: rotate(-80deg); }
  100% { transform: rotate(-80deg); }
}
@keyframes uc-flicker {
  0%   { opacity: 0.7; box-shadow: 0 0 16px 4px #ffcc44, 0 0 32px 8px rgba(255,204,68,0.2); }
  50%  { opacity: 1; box-shadow: 0 0 32px 12px #ffe680, 0 0 64px 24px rgba(255,230,128,0.4); }
  100% { opacity: 0.8; box-shadow: 0 0 20px 6px #ffcc44, 0 0 40px 12px rgba(255,204,68,0.3); }
}
@keyframes uc-shadow {
  0%   { transform: scaleX(1) translateX(0); opacity: 0.3; }
  30%  { transform: scaleX(1.2) translateX(4px); opacity: 0.4; }
  60%  { transform: scaleX(1) translateX(0); opacity: 0.3; }
  100% { transform: scaleX(1) translateX(0); opacity: 0.3; }
}

/* Scene: circe-servants-bath (calm, bright-interior) */
.scn-circe-servants-bath {
  background:
    linear-gradient(180deg, #f2e6d6 0%, #e6c9a8 40%, #c9a67b 100%),
    radial-gradient(ellipse at 50% 30%, #fff8ed 0%, #d9b894 100%);
}
.scn-circe-servants-bath .room-bg  { position:absolute; inset:0; background: linear-gradient(90deg, #f5ede3 0%, #e8dac4 50%, #d5c3a8 100%); }
.scn-circe-servants-bath .column-l { position:absolute; bottom:25%; left:12%; width:10px; height:55%; background: linear-gradient(180deg, #e0d0c0 0%, #b8a898 100%); border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.15); animation: csb-column 12s ease-in-out infinite alternate; }
.scn-circe-servants-bath .column-r { position:absolute; bottom:25%; right:12%; width:10px; height:55%; background: linear-gradient(180deg, #e0d0c0 0%, #b8a898 100%); border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.15); animation: csb-column 12s ease-in-out infinite alternate-reverse; }
.scn-circe-servants-bath .servant-a { position:absolute; bottom:22%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #c69c7a 0%, #a07a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: csb-servant-a 6s ease-in-out infinite; }
.scn-circe-servants-bath .servant-b { position:absolute; bottom:22%; left:45%; width:22px; height:48px; background: linear-gradient(180deg, #c69c7a 0%, #a07a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: csb-servant-b 7s ease-in-out infinite 2s; }
.scn-circe-servants-bath .purple-cloth { position:absolute; bottom:35%; left:35%; width:40px; height:20px; background: linear-gradient(180deg, #8b5f7a 0%, #6a3f5c 100%); border-radius: 4px; transform-origin: 50% 0%; animation: csb-cloth 10s ease-in-out infinite; }
.scn-circe-servants-bath .carpet  { position:absolute; bottom:18%; left:25%; width:60%; height:8px; background: linear-gradient(90deg, #b8a090 0%, #9a8070 100%); border-radius: 2px; }
.scn-circe-servants-bath .bath-pool { position:absolute; bottom:20%; left:55%; width:50px; height:20px; background: radial-gradient(ellipse, #a0c4e8 0%, #7aa0c8 50%, transparent 100%); border-radius: 50%; filter: blur(1px); animation: csb-water 5s ease-in-out infinite alternate; }
@keyframes csb-column {
  0%   { transform: translateY(0); }
  100% { transform: translateY(-2px); }
}
@keyframes csb-servant-a {
  0%   { transform: translateX(0) rotate(-1deg); }
  25%  { transform: translateX(4px) rotate(1deg); }
  50%  { transform: translateX(0) rotate(0deg); }
  75%  { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes csb-servant-b {
  0%   { transform: translateY(0) rotate(1deg); }
  33%  { transform: translateY(-3px) rotate(-1deg); }
  66%  { transform: translateY(2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes csb-cloth {
  0%   { transform: scaleY(1) rotate(0deg); }
  50%  { transform: scaleY(0.9) rotate(2deg); }
  100% { transform: scaleY(1) rotate(-1deg); }
}
@keyframes csb-water {
  0%   { transform: scale(1) translateY(0); opacity: 0.6; }
  50%  { transform: scale(1.02) translateY(-1px); opacity: 0.8; }
  100% { transform: scale(1) translateY(0); opacity: 0.6; }
}

/* Scene: circe-releases-men (calm, bright-interior) */
.scn-circe-releases-men {
  background:
    linear-gradient(180deg, #fee9d1 0%, #f5d4b0 35%, #d9b080 100%),
    radial-gradient(ellipse at 60% 50%, #fff2e0 0%, #d9b080 100%);
}
.scn-circe-releases-men .room-bg { position:absolute; inset:0; background: linear-gradient(90deg, #f0dfc0 0%, #e0caa8 100%); }
.scn-circe-releases-men .window  { position:absolute; top:10%; right:15%; width:30px; height:40px; background: radial-gradient(ellipse, #ffe0a0 0%, #f0c880 100%); border-radius: 6px; box-shadow: 0 0 20px 4px #f0c880; animation: crm-light 4s ease-in-out infinite alternate; }
.scn-circe-releases-men .ulysses-seated { position:absolute; bottom:20%; left:40%; width:26px; height:44px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: crm-seated 3s ease-in-out infinite; }
.scn-circe-releases-men .circe-standing { position:absolute; bottom:22%; left:58%; width:22px; height:56px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: crm-approach 5s ease-in-out infinite; }
.scn-circe-releases-men .table   { position:absolute; bottom:18%; left:42%; width:24px; height:8px; background: linear-gradient(180deg, #b89878 0%, #9a7a5a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-circe-releases-men .food-plate { position:absolute; bottom:22%; left:45%; width:14px; height:4px; background: #c0a080; border-radius: 50%; animation: crm-food 3s ease-in-out infinite alternate; }
.scn-circe-releases-men .couch   { position:absolute; bottom:18%; left:30%; width:40px; height:10px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 4px; }
@keyframes crm-light {
  0%   { opacity: 0.8; box-shadow: 0 0 16px 2px #f0c880; }
  50%  { opacity: 1; box-shadow: 0 0 28px 8px #fce0a0; }
  100% { opacity: 0.85; box-shadow: 0 0 20px 4px #f0c880; }
}
@keyframes crm-seated {
  0%   { transform: translateY(0) rotate(-1deg); }
  30%  { transform: translateY(-1px) rotate(1deg); }
  60%  { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes crm-approach {
  0%   { transform: translateX(0) translateY(0) rotate(0deg); }
  25%  { transform: translateX(-2px) translateY(-1px) rotate(1deg); }
  50%  { transform: translateX(0) translateY(0) rotate(-1deg); }
  75%  { transform: translateX(-1px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes crm-food {
  0%   { transform: scale(1) translateY(0); }
  100% { transform: scale(1.05) translateY(-1px); }
}

/* Scene: ulysses-returns-to-ship (calm, sunlit) */
.scn-ulysses-returns-to-ship {
  background:
    linear-gradient(180deg, #a2d0e8 0%, #6ca8cc 40%, #2a6a8a 100%),
    radial-gradient(ellipse at 50% 80%, #d4eefa 0%, transparent 70%);
}
.scn-ulysses-returns-to-ship .sky   { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8daf0 0%, #88b8d8 100%); animation: urs-sky 15s ease-in-out infinite alternate; }
.scn-ulysses-returns-to-ship .sea   { position:absolute; bottom:0%; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a8aab 0%, #1a4a6a 100%); }
.scn-ulysses-returns-to-ship .shore { position:absolute; bottom:5%; left:10%; right:20%; height:12%; background: linear-gradient(180deg, #d4b878 0%, #c09850 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; }
.scn-ulysses-returns-to-ship .ship  { position:absolute; bottom:20%; right:30%; width:40px; height:30px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 0 0 6px 6px; transform-origin: 50% 100%; animation: urs-ship 5s ease-in-out infinite; }
.scn-ulysses-returns-to-ship .ulysses-figure { position:absolute; bottom:12%; left:18%; width:20px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: urs-walk 4s ease-in-out infinite; }
.scn-ulysses-returns-to-ship .men-group { position:absolute; bottom:10%; left:45%; width:50px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 60% 40% 50% 50% / 50% 50% 50% 50%; animation: urs-men 5s ease-in-out infinite 1s; }
.scn-ulysses-returns-to-ship .wave-1 { position:absolute; bottom:20%; left:0; width:120%; height:10px; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%); border-radius: 50%; animation: urs-wave1 6s ease-in-out infinite; }
.scn-ulysses-returns-to-ship .wave-2 { position:absolute; bottom:25%; left:-20%; width:100%; height:8px; background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0.03) 100%); border-radius: 50%; animation: urs-wave2 7s ease-in-out infinite 2s; }
@keyframes urs-sky {
  0%   { opacity: 0.85; }
  50%  { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes urs-ship {
  0%   { transform: rotate(0deg) translateY(0); }
  25%  { transform: rotate(1deg) translateY(-2px); }
  50%  { transform: rotate(0deg) translateY(0); }
  75%  { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes urs-walk {
  0%   { transform: translateX(0) rotate(-1deg); }
  20%  { transform: translateX(3px) rotate(1deg); }
  40%  { transform: translateX(6px) rotate(-1deg); }
  60%  { transform: translateX(9px) rotate(0deg); }
  80%  { transform: translateX(12px) rotate(1deg); }
  100% { transform: translateX(15px) rotate(-1deg); }
}
@keyframes urs-men {
  0%   { transform: scale(1) translateY(0) rotate(0deg); }
  20%  { transform: scale(1.05) translateY(-4px) rotate(2deg); }
  40%  { transform: scale(0.98) translateY(-2px) rotate(-1deg); }
  60%  { transform: scale(1.03) translateY(-5px) rotate(1deg); }
  80%  { transform: scale(1) translateY(-3px) rotate(0deg); }
  100% { transform: scale(1) translateY(0) rotate(0deg); }
}
@keyframes urs-wave1 {
  0%   { transform: translateX(0) scaleY(1); }
  50%  { transform: translateX(-15px) scaleY(1.2); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes urs-wave2 {
  0%   { transform: translateX(0) scaleY(0.8); }
  50%  { transform: translateX(12px) scaleY(1.1); }
  100% { transform: translateX(0) scaleY(0.8); }
}

.scn-ulysses-reply-to-dolius { background: linear-gradient(180deg, #f5e6d0 0%, #dcc8a8 40%, #c4a878 100%), radial-gradient(ellipse at 60% 30%, #fff8e7 0%, transparent 80%); }
.scn-ulysses-reply-to-dolius .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #e8dcc4 0%, #d4bfa0 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.05); animation: ud-wall 15s ease-in-out infinite alternate; }
.scn-ulysses-reply-to-dolius .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c4a878 0%, #b09060 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,0.1); animation: ud-floor 12s ease-in-out infinite alternate; }
.scn-ulysses-reply-to-dolius .window { position:absolute; top:18%; left:30%; width:16%; height:30%; background: radial-gradient(ellipse at center, #fff8e0 0%, #e0c898 70%); border: 6px solid #8a6a3a; border-radius: 4px; box-shadow: 0 0 30px 10px rgba(255,235,180,0.4), inset 0 0 20px #fff0c0; animation: ud-window-light 6s ease-in-out infinite alternate; }
.scn-ulysses-reply-to-dolius .table { position:absolute; bottom:25%; left:50%; width:30%; height:8%; transform:translateX(-50%); background: linear-gradient(90deg, #6a4a2a 0%, #8a5a3a 50%, #6a4a2a 100%); border-radius: 2px; box-shadow: 0 4px 10px rgba(0,0,0,0.2); animation: ud-table 9s ease-in-out infinite; }
.scn-ulysses-reply-to-dolius .figure-ulysses { position:absolute; bottom:28%; left:45%; width:8%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ud-figure-sit 4s ease-in-out infinite alternate; }
.scn-ulysses-reply-to-dolius .figure-dolius { position:absolute; bottom:28%; left:55%; width:7%; height:28%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ud-figure-sit 4.5s ease-in-out infinite alternate; }
.scn-ulysses-reply-to-dolius .seat-shadow { position:absolute; bottom:26%; left:43%; width:16%; height:3%; background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(3px); animation: ud-shadow 5s ease-in-out infinite alternate; }
@keyframes ud-wall { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ud-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes ud-window-light { 0% { box-shadow: 0 0 20px 5px rgba(255,235,180,0.3), inset 0 0 15px #ffebc0; opacity:0.85 } 50% { box-shadow: 0 0 40px 15px rgba(255,235,180,0.6), inset 0 0 25px #fff0d0; opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(255,235,180,0.4), inset 0 0 18px #ffebc0; opacity:0.9 } }
@keyframes ud-table { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes ud-figure-sit { 0% { transform: translateY(0) rotate(-0.5deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ud-shadow { 0%,100% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.7; transform: scaleX(1.1) } }

.scn-rumour-spreads-in-ithaca { background: linear-gradient(180deg, #f0d8a0 0%, #d8b878 40%, #b88848 100%), radial-gradient(ellipse at 20% 10%, #fff0b0 0%, transparent 60%); }
.scn-rumour-spreads-in-ithaca .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffe8b0 0%, #e8c878 100%); animation: rs-sky 20s ease-in-out infinite alternate; }
.scn-rumour-spreads-in-ithaca .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b09050 0%, #8a6a30 100%); border-radius: 15% 15% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: rs-ground 18s ease-in-out infinite alternate; }
.scn-rumour-spreads-in-ithaca .town-buildings { position:absolute; bottom:35%; left:5%; right:5%; height:25%; background: repeating-linear-gradient(90deg, #6a4a2a 0%, #6a4a2a 8%, transparent 8%, transparent 10%, #5a3a1a 10%, #5a3a1a 18%, transparent 18%, transparent 20%); border-radius: 5% 5% 0 0; filter: blur(1px); animation: rs-buildings 30s ease-in-out infinite alternate; }
.scn-rumour-spreads-in-ithaca .figure-rumour { position:absolute; top:12%; left:50%; width:20%; height:35%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 20%, #d4a060 0%, #a07030 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; clip-path: polygon(20% 20%, 80% 20%, 90% 50%, 80% 90%, 20% 90%, 10% 50%); animation: rs-rumour 3s ease-in-out infinite; }
.scn-rumour-spreads-in-ithaca .crowd { position:absolute; bottom:20%; left:10%; right:10%; height:15%; background: radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 70%); filter: blur(4px); animation: rs-crowd 2s ease-in-out infinite alternate; }
.scn-rumour-spreads-in-ithaca .rays { position:absolute; top:7%; left:20%; width:60%; height:40%; background: repeating-linear-gradient(45deg, rgba(255,200,80,0.3) 0%, transparent 5%, rgba(255,200,80,0.1) 10%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: rs-rays 5s ease-in-out infinite; }
.scn-rumour-spreads-in-ithaca .dust { position:absolute; bottom:45%; left:30%; width:40%; height:10%; background: radial-gradient(ellipse, rgba(180,140,60,0.3) 0%, transparent 70%); filter: blur(8px); animation: rs-dust 4s ease-in-out infinite alternate; }
@keyframes rs-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes rs-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes rs-buildings { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes rs-rumour { 0% { transform: translateX(-50%) rotate(-5deg) scaleY(1) } 30% { transform: translateX(-50%) rotate(0deg) scaleY(1.1) } 60% { transform: translateX(-50%) rotate(5deg) scaleY(1) } 100% { transform: translateX(-50%) rotate(-5deg) scaleY(1) } }
@keyframes rs-crowd { 0% { opacity:0.6; transform: scaleX(0.95) } 50% { opacity:1; transform: scaleX(1.05) } 100% { opacity:0.7; transform: scaleX(0.95) } }
@keyframes rs-rays { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.3 } }
@keyframes rs-dust { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(20px) scale(1.2) } 100% { transform: translateX(0) scale(1) } }

.scn-assembly-of-ithacans { background: linear-gradient(180deg, #f5e0b0 0%, #e0c080 40%, #c0a060 100%), radial-gradient(ellipse at 50% 20%, #fff0c0 0%, transparent 70%); }
.scn-assembly-of-ithacans .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #ffe8c0 0%, #e0c080 100%); animation: ai-sky 25s ease-in-out infinite alternate; }
.scn-assembly-of-ithacans .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #a08040 0%, #806020 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,0.15); animation: ai-ground 20s ease-in-out infinite alternate; }
.scn-assembly-of-ithacans .podium { position:absolute; bottom:25%; left:50%; width:20%; height:10%; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 -6px 12px rgba(0,0,0,0.3); animation: ai-podium 10s ease-in-out infinite; }
.scn-assembly-of-ithacans .speaker { position:absolute; bottom:30%; left:48%; width:8%; height:25%; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ai-speaker 3s ease-in-out infinite; }
.scn-assembly-of-ithacans .crowd-left { position:absolute; bottom:15%; left:5%; width:35%; height:18%; background: radial-gradient(ellipse, #2a1a0a 0%, transparent 80%); filter: blur(5px); animation: ai-crowd 4s ease-in-out infinite alternate; }
.scn-assembly-of-ithacans .crowd-right { position:absolute; bottom:15%; right:5%; width:35%; height:18%; background: radial-gradient(ellipse, #2a1a0a 0%, transparent 80%); filter: blur(5px); animation: ai-crowd 4.5s ease-in-out infinite alternate; animation-delay: -2s; }
.scn-assembly-of-ithacans .shadow { position:absolute; bottom:20%; left:20%; width:60%; height:10%; background: linear-gradient(90deg, rgba(0,0,0,0.2) 0%, transparent 50%, rgba(0,0,0,0.2) 100%); filter: blur(10px); animation: ai-shadow 6s ease-in-out infinite alternate; }
@keyframes ai-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ai-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ai-podium { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes ai-speaker { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1) } 30% { transform: translateX(-50%) rotate(5deg) scaleY(1.05) } 60% { transform: translateX(-50%) rotate(-3deg) scaleY(0.95) } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1) } }
@keyframes ai-crowd { 0% { opacity:0.5; transform: scale(0.95) } 50% { opacity:0.8; transform: scale(1.05) } 100% { opacity:0.5; transform: scale(0.95) } }
@keyframes ai-shadow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

.scn-eupeithes-urges-revenge { background: linear-gradient(180deg, #d8b878 0%, #b89048 40%, #8a6a20 100%), radial-gradient(ellipse at 50% 10%, #ffe8a0 0%, transparent 60%); }
.scn-eupeithes-urges-revenge .sky-bright { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #ffe8b0 0%, #d8b870 100%); animation: eu-sky 15s ease-in-out infinite alternate; }
.scn-eupeithes-urges-revenge .sun { position:absolute; top:6%; left:50%; width:15%; height:15%; transform:translateX(-50%); background: radial-gradient(circle, #fff0c0 0%, #f0c070 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,200,80,0.6); animation: eu-sun 4s ease-in-out infinite alternate; }
.scn-eupeithes-urges-revenge .ground-dark { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 25px rgba(0,0,0,0.5); animation: eu-ground 20s ease-in-out infinite alternate; }
.scn-eupeithes-urges-revenge .figure-eupeithes { position:absolute; bottom:20%; left:45%; width:10%; height:35%; transform:translateX(-50%); background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 10px 2px rgba(255,200,80,0.3); animation: eu-figure 3s ease-in-out infinite; }
.scn-eupeithes-urges-revenge .crowd-silhouette { position:absolute; bottom:10%; left:10%; right:10%; height:15%; background: radial-gradient(ellipse at 50% 100%, #0a0000 0%, transparent 80%); filter: blur(6px); animation: eu-crowd 5s ease-in-out infinite alternate; }
.scn-eupeithes-urges-revenge .shadow-long { position:absolute; bottom:12%; left:25%; width:50%; height:20%; background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 80%); transform: skewX(-20deg); filter: blur(8px); animation: eu-shadow 6s ease-in-out infinite alternate; }
.scn-eupeithes-urges-revenge .dust-swirl { position:absolute; bottom:30%; left:20%; width:60%; height:20%; background: radial-gradient(ellipse, rgba(120,80,20,0.2) 0%, transparent 70%); filter: blur(12px); animation: eu-dust 5s ease-in-out infinite alternate; }
@keyframes eu-sky { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.75 } }
@keyframes eu-sun { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 40px 15px rgba(255,200,80,0.4) } 50% { transform: translateX(-50%) scale(1.1); box-shadow: 0 0 80px 30px rgba(255,200,80,0.7) } 100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 50px 20px rgba(255,200,80,0.5) } }
@keyframes eu-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes eu-figure { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1) } 25% { transform: translateX(-50%) rotate(10deg) scaleY(1.1) } 50% { transform: translateX(-50%) rotate(-5deg) scaleY(0.95) } 75% { transform: translateX(-50%) rotate(5deg) scaleY(1.05) } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1) } }
@keyframes eu-crowd { 0% { opacity:0.3; transform: scale(0.9) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(0.95) } }
@keyframes eu-shadow { 0% { opacity:0.2; transform: skewX(-20deg) scaleX(1) } 50% { opacity:0.6; transform: skewX(-25deg) scaleX(1.3) } 100% { opacity:0.3; transform: skewX(-20deg) scaleX(1) } }
@keyframes eu-dust { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-30px) scale(1.3) } 100% { transform: translateX(0) scale(1) } }

/* echenaeus-intervenes – calm */
.scn-echenaeus-intervenes {
  background:
    linear-gradient(180deg, #3a2e1e 0%, #5a4a2a 40%, #7a6a4a 80%, #9a8a6a 100%),
    radial-gradient(ellipse at 50% 0%, #8a7a5a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  height: 100%;
  width: 100%;
}
.scn-echenaeus-intervenes .hearth-bg {
  position: absolute;
  bottom: 0; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-echenaeus-intervenes .fire-glow {
  position: absolute;
  bottom: 15%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #e8a030 0%, #c07020 40%, #8a4a10 70%, transparent 90%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ec1-fire 5s ease-in-out infinite alternate;
}
.scn-echenaeus-intervenes .col-left {
  position: absolute;
  top: 0; left: 5%; width: 12%; height: 100%;
  background: linear-gradient(90deg, #7a6a4a 0%, #6a5a3a 100%);
  box-shadow: 4px 0 10px rgba(0,0,0,0.3);
}
.scn-echenaeus-intervenes .col-right {
  position: absolute;
  top: 0; right: 5%; width: 12%; height: 100%;
  background: linear-gradient(-90deg, #7a6a4a 0%, #6a5a3a 100%);
  box-shadow: -4px 0 10px rgba(0,0,0,0.3);
}
.scn-echenaeus-intervenes .figure-seated {
  position: absolute;
  bottom: 20%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ec1-seated 12s ease-in-out infinite;
}
.scn-echenaeus-intervenes .figure-standing {
  position: absolute;
  bottom: 20%; right: 30%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ec1-standing 8s ease-in-out infinite;
}
.scn-echenaeus-intervenes .ash-pile {
  position: absolute;
  bottom: 5%; left: 45%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: ec1-ash 14s ease-in-out infinite;
}
.scn-echenaeus-intervenes .light-sweep {
  position: absolute;
  top: 10%; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,200,100,0.15) 0%, transparent 70%);
  animation: ec1-sweep 20s ease-in-out infinite alternate;
}
@keyframes ec1-fire {
  0%   { transform: translateX(-50%) scaleY(1); opacity: 0.8; }
  50%  { transform: translateX(-50%) scaleY(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.7; }
}
@keyframes ec1-seated {
  0%   { transform: translateX(0) translateY(0) rotate(0deg); }
  33%  { transform: translateX(2px) translateY(-1px) rotate(-2deg); }
  66%  { transform: translateX(-1px) translateY(0) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ec1-standing {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes ec1-ash {
  0%   { transform: translateX(0); opacity: 0.9; }
  50%  { transform: translateX(2px); opacity: 1; }
  100% { transform: translateX(0); opacity: 0.8; }
}
@keyframes ec1-sweep {
  0%   { transform: scaleX(1) translateX(0); opacity: 0.5; }
  100% { transform: scaleX(1.2) translateX(10%); opacity: 0.8; }
}

/* echenaeus-chides-alcinous – tense */
.scn-echenaeus-chides-alcinous {
  background:
    linear-gradient(180deg, #2a1e0e 0%, #4a3a1a 40%, #6a5a2a 80%, #8a7a4a 100%),
    radial-gradient(ellipse at 50% 0%, #6a5a3a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  height: 100%;
  width: 100%;
}
.scn-echenaeus-chides-alcinous .hearth-bg {
  position: absolute;
  bottom: 0; left: 15%; right: 15%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-echenaeus-chides-alcinous .fire-glow {
  position: absolute;
  bottom: 15%; left: 50%; width: 70px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #d08020 0%, #a06010 40%, #6a3a00 70%, transparent 90%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ec2-fire 4s ease-in-out infinite alternate;
}
.scn-echenaeus-chides-alcinous .col-left {
  position: absolute;
  top: 0; left: 3%; width: 10%; height: 100%;
  background: linear-gradient(90deg, #5a4a2a 0%, #4a3a1a 100%);
  box-shadow: 4px 0 12px rgba(0,0,0,0.5);
}
.scn-echenaeus-chides-alcinous .col-right {
  position: absolute;
  top: 0; right: 3%; width: 10%; height: 100%;
  background: linear-gradient(-90deg, #5a4a2a 0%, #4a3a1a 100%);
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
}
.scn-echenaeus-chides-alcinous .figure-standing {
  position: absolute;
  bottom: 18%; left: 40%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ec2-standing 3s ease-in-out infinite;
}
.scn-echenaeus-chides-alcinous .figure-seated {
  position: absolute;
  bottom: 20%; right: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ec2-seated 4s ease-in-out infinite;
}
.scn-echenaeus-chides-alcinous .stool-silver {
  position: absolute;
  bottom: 10%; left: 30%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: ec2-stool 6s ease-in-out infinite;
}
.scn-echenaeus-chides-alcinous .shadow-sharp {
  position: absolute;
  bottom: 0; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: ec2-shadow 5s ease-in-out infinite alternate;
}
@keyframes ec2-fire {
  0%   { transform: translateX(-50%) scaleY(1); opacity: 0.7; }
  50%  { transform: translateX(-48%) scaleY(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.9); opacity: 0.6; }
}
@keyframes ec2-standing {
  0%   { transform: translateX(0) translateY(0) rotate(0deg); }
  25%  { transform: translateX(4px) translateY(-2px) rotate(-3deg); }
  50%  { transform: translateX(8px) translateY(0) rotate(2deg); }
  75%  { transform: translateX(4px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ec2-seated {
  0%   { transform: translateX(0); }
  25%  { transform: translateX(2px) rotate(1deg); }
  50%  { transform: translateX(-3px) rotate(-2deg); }
  75%  { transform: translateX(1px) rotate(0deg); }
  100% { transform: translateX(0); }
}
@keyframes ec2-stool {
  0%   { transform: translateX(0); }
  50%  { transform: translateX(2px) scale(1.02); }
  100% { transform: translateX(0); }
}
@keyframes ec2-shadow {
  0%   { opacity: 0.3; }
  100% { opacity: 0.6; }
}

/* alcinous-welcomes-ulysses – warm */
.scn-alcinous-welcomes-ulysses {
  background:
    linear-gradient(180deg, #5a3a1a 0%, #7a5a2a 40%, #9a7a4a 80%, #b89a6a 100%),
    radial-gradient(ellipse at 50% 0%, #a08050 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  height: 100%;
  width: 100%;
}
.scn-alcinous-welcomes-ulysses .hearth-bg {
  position: absolute;
  bottom: 0; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 60% 60% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-alcinous-welcomes-ulysses .fire-glow {
  position: absolute;
  bottom: 25%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #f0b050 0%, #d08020 40%, #a05010 70%, transparent 90%);
  border-radius: 50%;
  filter: blur(2px);
  animation: awu-fire 6s ease-in-out infinite alternate;
}
.scn-alcinous-welcomes-ulysses .col-left {
  position: absolute;
  top: 0; left: 4%; width: 8%; height: 100%;
  background: linear-gradient(90deg, #8a6a3a 0%, #6a4a2a 100%);
  box-shadow: 4px 0 10px rgba(0,0,0,0.2);
}
.scn-alcinous-welcomes-ulysses .col-right {
  position: absolute;
  top: 0; right: 4%; width: 8%; height: 100%;
  background: linear-gradient(-90deg, #8a6a3a 0%, #6a4a2a 100%);
  box-shadow: -4px 0 10px rgba(0,0,0,0.2);
}
.scn-alcinous-welcomes-ulysses .figure-king {
  position: absolute;
  bottom: 20%; left: 35%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: awu-king 10s ease-in-out infinite;
}
.scn-alcinous-welcomes-ulysses .figure-guest {
  position: absolute;
  bottom: 18%; left: 48%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: awu-guest 8s ease-in-out infinite;
}
.scn-alcinous-welcomes-ulysses .golden-ewer {
  position: absolute;
  bottom: 10%; left: 55%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #d0a040 0%, #b08020 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 0 10px rgba(200,160,50,0.5);
  animation: awu-ewer 7s ease-in-out infinite;
}
.scn-alcinous-welcomes-ulysses .water-stream {
  position: absolute;
  bottom: 0; left: 56%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #a0d0e0 0%, #3060a0 100%);
  border-radius: 50%;
  animation: awu-stream 2s ease-in-out infinite;
}
.scn-alcinous-welcomes-ulysses .seat-inlaid {
  position: absolute;
  bottom: 5%; left: 45%; width: 50px; height: 15px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: awu-seat 9s ease-in-out infinite;
}
@keyframes awu-fire {
  0%   { transform: translateX(-50%) scaleY(1); opacity: 0.9; }
  50%  { transform: translateX(-50%) scaleY(1.08); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.92); opacity: 0.8; }
}
@keyframes awu-king {
  0%   { transform: translateX(0) translateY(0) rotate(0deg); }
  33%  { transform: translateX(3px) translateY(-1px) rotate(2deg); }
  66%  { transform: translateX(-2px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes awu-guest {
  0%   { transform: translateX(0) rotate(0deg); opacity: 0.9; }
  50%  { transform: translateX(5px) rotate(3deg); opacity: 1; }
  100% { transform: translateX(0) rotate(0deg); opacity: 0.9; }
}
@keyframes awu-ewer {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes awu-stream {
  0%   { height: 50px; opacity: 1; }
  50%  { height: 60px; opacity: 0.8; }
  100% { height: 50px; opacity: 1; }
}
@keyframes awu-seat {
  0%   { transform: translateX(0) scaleX(1); }
  50%  { transform: translateX(3px) scaleX(1.05); }
  100% { transform: translateX(0) scaleX(1); }
}

/* alcinous-proposes-escort – calm */
.scn-alcinous-proposes-escort {
  background:
    linear-gradient(180deg, #4a3a1a 0%, #6a5a2a 40%, #8a7a4a 80%, #a89a6a 100%),
    radial-gradient(ellipse at 50% 0%, #8a7a5a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  height: 100%;
  width: 100%;
}
.scn-alcinous-proposes-escort .hearth-bg {
  position: absolute;
  bottom: 0; left: 25%; right: 25%; height: 30%;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-alcinous-proposes-escort .fire-glow {
  position: absolute;
  bottom: 15%; left: 50%; width: 50px; height: 65px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #d09030 0%, #b07020 40%, #7a4010 70%, transparent 90%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ape-fire 7s ease-in-out infinite alternate;
}
.scn-alcinous-proposes-escort .col-left {
  position: absolute;
  top: 0; left: 5%; width: 8%; height: 100%;
  background: linear-gradient(90deg, #7a6a4a 0%, #5a4a2a 100%);
  box-shadow: 4px 0 10px rgba(0,0,0,0.2);
}
.scn-alcinous-proposes-escort .col-right {
  position: absolute;
  top: 0; right: 5%; width: 8%; height: 100%;
  background: linear-gradient(-90deg, #7a6a4a 0%, #5a4a2a 100%);
  box-shadow: -4px 0 10px rgba(0,0,0,0.2);
}
.scn-alcinous-proposes-escort .table-long {
  position: absolute;
  bottom: 10%; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: ape-table 15s ease-in-out infinite;
}
.scn-alcinous-proposes-escort .silhouettes {
  position: absolute;
  bottom: 15%; left: 10%; right: 10%; height: 30%;
  background: 
    radial-gradient(ellipse 20px 40px at 15% 70%, #2a1a0a 0%, transparent 100%),
    radial-gradient(ellipse 20px 40px at 30% 70%, #2a1a0a 0%, transparent 100%),
    radial-gradient(ellipse 20px 40px at 50% 70%, #2a1a0a 0%, transparent 100%),
    radial-gradient(ellipse 20px 40px at 65% 70%, #2a1a0a 0%, transparent 100%),
    radial-gradient(ellipse 20px 40px at 80% 70%, #2a1a0a 0%, transparent 100%);
  animation: ape-figures 20s ease-in-out infinite;
}
.scn-alcinous-proposes-escort .stools-row {
  position: absolute;
  bottom: 8%; left: 15%; right: 15%; height: 6%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ape-stools 18s ease-in-out infinite;
}
.scn-alcinous-proposes-escort .light-bowl {
  position: absolute;
  bottom: 10%; left: 42%; width: 16%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,200,100,0.2) 0%, transparent 70%);
  animation: ape-bowl 25s ease-in-out infinite alternate;
}
@keyframes ape-fire {
  0%   { transform: translateX(-50%) scaleY(1); opacity: 0.8; }
  50%  { transform: translateX(-50%) scaleY(1.04); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.96); opacity: 0.7; }
}
@keyframes ape-table {
  0%   { transform: translateX(0) scaleY(1); }
  50%  { transform: translateX(2px) scaleY(1.01); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes ape-figures {
  0%   { opacity: 0.9; }
  50%  { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ape-stools {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(1px); }
  100% { transform: translateY(0); }
}
@keyframes ape-bowl {
  0%   { opacity: 0.3; transform: scaleX(1); }
  100% { opacity: 0.5; transform: scaleX(1.1); }
}

/* scene footnote-mentor-nestor (tag: nmn) */
.scn-footnote-mentor-nestor {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0e05 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-footnote-mentor-nestor .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: fnNmn-wall 20s ease-in-out infinite alternate;
}
.scn-footnote-mentor-nestor .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0e05 0%, #0f0800 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-footnote-mentor-nestor .bench {
  position: absolute; bottom: 22%; left: 15%; width: 60%; height: 6%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: fnNmn-bench 14s ease-in-out infinite;
}
.scn-footnote-mentor-nestor .figure-mn.sitting {
  position: absolute; bottom: 26%; left: 25%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0f0800 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: fnNmn-sit 5s ease-in-out infinite;
}
.scn-footnote-mentor-nestor .figure-mn.standing {
  position: absolute; bottom: 28%; left: 55%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 10px 2px rgba(100,80,40,0.4);
  animation: fnNmn-stand 8s ease-in-out infinite alternate;
}
.scn-footnote-mentor-nestor .lamp-glow {
  position: absolute; top: 15%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #d08040 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  opacity: 0.7;
  animation: fnNmn-lamp 4s ease-in-out infinite alternate;
}
.scn-footnote-mentor-nestor .shadow {
  position: absolute; bottom: 22%; left: 40%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 80%);
  filter: blur(6px);
  animation: fnNmn-shadow 6s ease-in-out infinite;
}
.scn-footnote-mentor-nestor .motif-mn {
  position: absolute; top: 10%; left: 10%; width: 8px; height: 8px;
  background: #d08040;
  border-radius: 50%;
  box-shadow: 0 0 12px 6px rgba(208,128,64,0.3);
  animation: fnNmn-motif 12s linear infinite;
}

/* scene footnote-wind-whistle (tag: wwh) */
.scn-footnote-wind-whistle {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 80% 50%, #1a2a3a 0%, transparent 60%);
}
.scn-footnote-wind-whistle .cabin-wall {
  position: absolute; inset: 0 0 40% 10%; width: 80%; right: auto;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 20% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.6);
}
.scn-footnote-wind-whistle .window-frame {
  position: absolute; top: 15%; left: 55%; width: 80px; height: 60px;
  background: #1a1a2a;
  border: 4px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
  animation: fnWwh-frame 20s ease-in-out infinite alternate;
}
.scn-footnote-wind-whistle .sea-outside {
  position: absolute; top: 17%; left: 57%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #2a4a5a 0%, #1a2a3a 100%);
  border-radius: 2px;
  animation: fnWwh-sea 12s ease-in-out infinite;
}
.scn-footnote-wind-whistle .rigging {
  position: absolute; top: 10%; left: 70%; width: 2px; height: 50%;
  background: repeating-linear-gradient(180deg, #4a3a2a 0px, #4a3a2a 2px, transparent 2px, transparent 8px);
  transform: rotate(-20deg);
  transform-origin: top;
  filter: blur(1px);
  animation: fnWwh-rig 8s ease-in-out infinite alternate;
}
.scn-footnote-wind-whistle .candle {
  position: absolute; bottom: 30%; left: 30%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #d0c080 0%, #8a7a5a 100%);
  border-radius: 2px 2px 0 0;
  transform-origin: bottom center;
  animation: fnWwh-candle 5s ease-in-out infinite;
}
.scn-footnote-wind-whistle .candle-glow {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0d060 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  opacity: 0.8;
  animation: fnWwh-glow 3s ease-in-out infinite alternate;
}
.scn-footnote-wind-whistle .table {
  position: absolute; bottom: 25%; left: 20%; width: 40%; height: 4%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: fnWwh-table 18s ease-in-out infinite;
}
.scn-footnote-wind-whistle .chair {
  position: absolute; bottom: 24%; left: 18%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 2px 0 4px rgba(0,0,0,0.4);
  animation: fnWwh-chair 10s ease-in-out infinite;
}

/* scene footnote-sun-rising-from-sea (tag: srs) */
.scn-footnote-sun-rising-from-sea {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 50%, #0a0808 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 70%);
}
.scn-footnote-sun-rising-from-sea .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
  animation: fnSrs-room 25s ease-in-out infinite alternate;
}
.scn-footnote-sun-rising-from-sea .window-sill {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 50%;
  background: #1a1010;
  border: 6px solid #3a2a1a;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.9);
}
.scn-footnote-sun-rising-from-sea .sun-outside {
  position: absolute; top: 22%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(circle at 50% 100%, #e0a040 0%, #c08030 30%, transparent 60%);
  border-radius: 50% 50% 0 0;
  animation: fnSrs-sun 20s ease-in-out infinite;
}
.scn-footnote-sun-rising-from-sea .sea-horizon {
  position: absolute; top: 55%; left: 32%; width: 36%; height: 8%;
  background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%);
  border-radius: 0 0 20% 20%;
  animation: fnSrs-sea 18s ease-in-out infinite alternate;
}
.scn-footnote-sun-rising-from-sea .curtain-left {
  position: absolute; top: 18%; left: 28%; width: 8%; height: 55%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 0 20% 20% 0;
  filter: drop-shadow(4px 0 6px rgba(0,0,0,0.5));
  animation: fnSrs-curtain 14s ease-in-out infinite;
}
.scn-footnote-sun-rising-from-sea .curtain-right {
  position: absolute; top: 18%; right: 28%; width: 8%; height: 55%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20% 0 0 20%;
  filter: drop-shadow(-4px 0 6px rgba(0,0,0,0.5));
  animation: fnSrs-curtain 14s ease-in-out infinite reverse;
}
.scn-footnote-sun-rising-from-sea .figure-ws {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -2px 0 6px rgba(0,0,0,0.4);
  animation: fnSrs-figure 6s ease-in-out infinite;
}
.scn-footnote-sun-rising-from-sea .shadow-ws {
  position: absolute; bottom: 30%; left: 44%; width: 30px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  filter: blur(4px);
  animation: fnSrs-shadow 6s ease-in-out infinite;
}

/* scene footnote-skewers (tag: skw) */
.scn-footnote-skewers {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 50%, #0a0500 100%),
              radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 60%);
}
.scn-footnote-skewers .hearth {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-footnote-skewers .coals {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 12%;
  background: radial-gradient(ellipse at 50% 0%, #c06030 0%, #8a3a1a 50%, #4a1a0a 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: fnSkw-coals 6s ease-in-out infinite alternate;
}
.scn-footnote-skewers .skewer-left {
  position: absolute; bottom: 32%; left: 30%; width: 4px; height: 30px;
  background: #6a5a4a;
  border-radius: 2px;
  transform-origin: bottom;
  transform: rotate(-15deg);
  animation: fnSkw-skewer 8s ease-in-out infinite;
}
.scn-footnote-skewers .skewer-right {
  position: absolute; bottom: 32%; right: 30%; width: 4px; height: 30px;
  background: #6a5a4a;
  border-radius: 2px;
  transform-origin: bottom;
  transform: rotate(15deg);
  animation: fnSkw-skewer 8s ease-in-out infinite reverse;
}
.scn-footnote-skewers .smoke.plume-1 {
  position: absolute; bottom: 50%; left: 40%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(80,60,40,0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: fnSkw-smoke-1 12s linear infinite;
}
.scn-footnote-skewers .smoke.plume-2 {
  position: absolute; bottom: 50%; left: 55%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(80,60,40,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: fnSkw-smoke-2 15s linear infinite;
}
.scn-footnote-skewers .table-sk {
  position: absolute; bottom: 40%; left: 10%; width: 30%; height: 4%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-footnote-skewers .jug {
  position: absolute; bottom: 44%; left: 14%; width: 16px; height: 26px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: 2px 0 4px rgba(0,0,0,0.4);
  animation: fnSkw-jug 10s ease-in-out infinite;
}
.scn-footnote-skewers .cat {
  position: absolute; bottom: 38%; right: 20%; width: 28px; height: 20px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: center bottom;
  animation: fnSkw-cat 4s ease-in-out infinite;
}

/* keyframes for nmn */
@keyframes fnNmn-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes fnNmn-bench { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-2px) scaleY(1.01); } 100% { transform:translateY(0); } }
@keyframes fnNmn-sit { 0% { transform:translateY(0) rotate(-1deg); } 25% { transform:translateY(-1px) rotate(1deg); } 50% { transform:translateY(0) rotate(-1deg); } 75% { transform:translateY(-1px) rotate(1deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes fnNmn-stand { 0% { transform:translateY(0) rotate(0) scaleY(1); } 50% { transform:translateY(-3px) rotate(2deg) scaleY(1.02); } 100% { transform:translateY(0) rotate(0); } }
@keyframes fnNmn-lamp { 0% { opacity:0.5; transform:scale(1); } 50% { opacity:0.8; transform:scale(1.1); } 100% { opacity:0.6; transform:scale(0.95); } }
@keyframes fnNmn-shadow { 0% { opacity:0.6; transform:scaleX(1); } 50% { opacity:1; transform:scaleX(0.9); } 100% { opacity:0.7; transform:scaleX(1); } }
@keyframes fnNmn-motif { 0% { transform:translate(0,0) rotate(0); opacity:0.4; } 50% { transform:translate(10px,10px) rotate(180deg); opacity:0.8; } 100% { transform:translate(0,0) rotate(360deg); opacity:0.4; } }

/* keyframes for wwh */
@keyframes fnWwh-frame { 0% { box-shadow:inset 0 0 10px rgba(0,0,0,0.8); } 50% { box-shadow:inset 0 0 20px rgba(0,0,0,0.9); } 100% { box-shadow:inset 0 0 10px rgba(0,0,0,0.8); } }
@keyframes fnWwh-sea { 0% { background-position:0 0; } 50% { background-position:4px 2px; } 100% { background-position:0 0; } }
@keyframes fnWwh-rig { 0% { transform:rotate(-20deg) scaleY(1); } 50% { transform:rotate(-25deg) scaleY(1.02); } 100% { transform:rotate(-20deg); } }
@keyframes fnWwh-candle { 0% { transform:translateY(0) rotate(0); height:16px; } 25% { transform:translateY(-1px) rotate(1deg); height:17px; } 50% { transform:translateY(0) rotate(-1deg); height:16px; } 75% { transform:translateY(-1px) rotate(1deg); height:17px; } 100% { transform:translateY(0); height:16px; } }
@keyframes fnWwh-glow { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.15); } 100% { opacity:0.7; transform:scale(0.95); } }
@keyframes fnWwh-table { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes fnWwh-chair { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-2px) rotate(-2deg); } 100% { transform:translateY(0); } }

/* keyframes for srs */
@keyframes fnSrs-room { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes fnSrs-sun { 0% { opacity:0.6; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.05); } 100% { opacity:0.8; transform:scaleY(0.98); } }
@keyframes fnSrs-sea { 0% { background-position:0 0; } 50% { background-position:5px 2px; } 100% { background-position:0 0; } }
@keyframes fnSrs-curtain { 0% { transform:translateX(0); } 50% { transform:translateX(3px); } 100% { transform:translateX(0); } }
@keyframes fnSrs-figure { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0); } }
@keyframes fnSrs-shadow { 0% { opacity:0.5; transform:scaleX(1); } 50% { opacity:0.8; transform:scaleX(0.9); } 100% { opacity:0.5; } }

/* keyframes for skw */
@keyframes fnSkw-coals { 0% { opacity:0.7; filter:blur(3px); } 50% { opacity:1; filter:blur(4px); } 100% { opacity:0.8; filter:blur(3px); } }
@keyframes fnSkw-skewer { 0% { transform:rotate(-15deg) translateY(0); } 50% { transform:rotate(-12deg) translateY(-2px); } 100% { transform:rotate(-15deg) translateY(0); } }
@keyframes fnSkw-smoke-1 { 0% { transform:translate(0,0) scale(1); opacity:0.4; } 50% { transform:translate(2px,-10px) scale(1.5); opacity:0.8; } 100% { transform:translate(-2px,-20px) scale(2); opacity:0; } }
@keyframes fnSkw-smoke-2 { 0% { transform:translate(0,0) scale(1); opacity:0.3; } 50% { transform:translate(-3px,-12px) scale(1.6); opacity:0.7; } 100% { transform:translate(3px,-22px) scale(2.2); opacity:0; } }
@keyframes fnSkw-jug { 0% { transform:rotate(-5deg); } 50% { transform:rotate(0deg); } 100% { transform:rotate(-5deg); } }
@keyframes fnSkw-cat { 0% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-2px) rotate(3deg); } 50% { transform:translateY(0) rotate(-3deg); } 75% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(0); } }

.scn-menelaus-agrees-with-helen { background: linear-gradient(180deg, #e8d4b0 0%, #d4b88a 30%, #c4a67a 100%), radial-gradient(ellipse at 40% 50%, #f0e0c0 0%, transparent 70%); }
.scn-menelaus-agrees-with-helen .hall { position:absolute; inset:0 0 35% 0; background:linear-gradient(180deg, #d4b88a 0%, #c4a67a 100%); animation:mh1-hall 10s ease-in-out infinite alternate; }
.scn-menelaus-agrees-with-helen .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #b08a6a 0%, #8a6a50 100%); border-radius:0 0 4% 4%; }
.scn-menelaus-agrees-with-helen .window { position:absolute; top:18%; left:12%; width:60px; height:80px; background:linear-gradient(180deg, #a0d0f0 0%, #80b0d0 100%); border-radius:4px; box-shadow:inset 0 0 12px rgba(255,255,240,.3), 0 0 20px rgba(160,208,240,.2); animation:mh1-window 6s ease-in-out infinite alternate; }
.scn-menelaus-agrees-with-helen .table { position:absolute; bottom:18%; left:30%; width:120px; height:28px; background:#6a4a3a; border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.3); animation:mh1-table 8s ease-in-out infinite; }
.scn-menelaus-agrees-with-helen .menelaus { position:absolute; bottom:20%; left:25%; width:30px; height:80px; background:linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:mh1-menelaus 5s ease-in-out infinite; }
.scn-menelaus-agrees-with-helen .helen { position:absolute; bottom:20%; left:55%; width:28px; height:75px; background:linear-gradient(180deg, #7a4a3a 0%, #5a3020 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:mh1-helen 7s ease-in-out infinite; }
.scn-menelaus-agrees-with-helen .lamp { position:absolute; bottom:35%; left:40%; width:10px; height:15px; background:radial-gradient(circle, #ffd070 0%, #b08030 80%); border-radius:30%; box-shadow:0 0 24px 6px #ffd070, 0 0 48px 12px rgba(255,208,112,.4); animation:mh1-lamp 3s ease-in-out infinite alternate; }
.scn-menelaus-agrees-with-helen .shine { position:absolute; top:0; left:0; width:100%; height:100%; background:radial-gradient(ellipse at 30% 40%, rgba(255,240,200,0.25) 0%, transparent 70%); mix-blend-mode:overlay; animation:mh1-shine 12s ease-in-out infinite alternate; }
@keyframes mh1-hall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes mh1-window { 0% { background:linear-gradient(180deg, #a0d0f0, #80b0d0); box-shadow:inset 0 0 12px rgba(255,255,240,.3); } 50% { background:linear-gradient(180deg, #b0e0ff, #90c0e0); box-shadow:inset 0 0 8px rgba(255,255,240,.2); } 100% { background:linear-gradient(180deg, #a0d0f0, #80b0d0); box-shadow:inset 0 0 12px rgba(255,255,240,.3); } }
@keyframes mh1-table { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes mh1-menelaus { 0% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(4px) rotate(1deg) } 50% { transform:translateX(0) rotate(-1deg) } 75% { transform:translateX(-4px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes mh1-helen { 0% { transform:translateX(0) rotate(1deg) } 33% { transform:translateX(-3px) rotate(-1deg) } 66% { transform:translateX(2px) rotate(0) } 100% { transform:translateX(0) rotate(1deg) } }
@keyframes mh1-lamp { 0% { box-shadow:0 0 18px 4px #ffd070, 0 0 36px 8px rgba(255,208,112,.3); } 50% { box-shadow:0 0 32px 10px #ffd070, 0 0 64px 18px rgba(255,208,112,.5); } 100% { box-shadow:0 0 22px 5px #ffd070, 0 0 40px 10px rgba(255,208,112,.35); } }
@keyframes mh1-shine { 0% { opacity:0.6; transform:scale(1) } 50% { opacity:0.8; transform:scale(1.02) } 100% { opacity:0.5; transform:scale(0.98) } }

.scn-pisistratus-reveals-telemachus { background: linear-gradient(180deg, #dcd0b8 0%, #c4b098 40%, #b09a80 100%), radial-gradient(ellipse at 60% 30%, #e8dcc8 0%, transparent 60%); }
.scn-pisistratus-reveals-telemachus .bg-wall { position:absolute; inset:0 0 25% 0; background:linear-gradient(90deg, #d4c0a8 0%, #c0a890 100%); border-radius:0 0 8% 8%; animation:pr2-wall 15s ease-in-out infinite alternate; }
.scn-pisistratus-reveals-telemachus .column-left { position:absolute; top:5%; left:8%; width:16px; height:80%; background:linear-gradient(180deg, #b09880 0%, #8a7a64 100%); border-radius:4px; box-shadow:4px 0 8px rgba(0,0,0,.2); }
.scn-pisistratus-reveals-telemachus .column-right { position:absolute; top:5%; right:8%; width:16px; height:80%; background:linear-gradient(180deg, #b09880 0%, #8a7a64 100%); border-radius:4px; box-shadow:-4px 0 8px rgba(0,0,0,.2); }
.scn-pisistratus-reveals-telemachus .curtain { position:absolute; top:0; left:0; width:100%; height:60%; background:linear-gradient(180deg, rgba(160,80,60,0.6) 0%, rgba(120,60,40,0.4) 100%); clip-path:polygon(0 0, 100% 0, 95% 60%, 5% 60%); animation:pr2-curtain 12s ease-in-out infinite; }
.scn-pisistratus-reveals-telemachus .pisistratus { position:absolute; bottom:22%; left:30%; width:28px; height:75px; background:linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pr2-pisistratus 6s ease-in-out infinite; }
.scn-pisistratus-reveals-telemachus .telemachus { position:absolute; bottom:22%; left:52%; width:24px; height:70px; background:linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pr2-telemachus 8s ease-in-out infinite; }
.scn-pisistratus-reveals-telemachus .gesture { position:absolute; bottom:38%; left:34%; width:14px; height:8px; background:#5a3a2a; border-radius:40% 60% 20% 40% / 30% 50% 40% 50%; transform:rotate(-20deg); animation:pr2-gesture 4s ease-in-out infinite; }
@keyframes pr2-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pr2-curtain { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes pr2-pisistratus { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(2px) rotate(2deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(-2px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes pr2-telemachus { 0% { transform:translateX(0) scaleY(1) } 50% { transform:translateX(-1px) scaleY(1.01) } 100% { transform:translateX(0) scaleY(1) } }
@keyframes pr2-gesture { 0% { transform:rotate(-20deg) translateX(0) } 50% { transform:rotate(-10deg) translateX(3px) } 100% { transform:rotate(-20deg) translateX(0) } }

.scn-menelaus-welcomes-telemachus { background: linear-gradient(180deg, #ead8b8 0%, #d4c0a0 30%, #c0a888 100%), radial-gradient(ellipse at 50% 20%, #f0e4c8 0%, transparent 60%); }
.scn-menelaus-welcomes-telemachus .bg-arch { position:absolute; top:0; left:0; right:0; height:65%; background:linear-gradient(180deg, #dcc8a8 0%, #c8b490 100%); border-radius:0 0 30% 30% / 0 0 40% 40%; animation:mw3-arch 14s ease-in-out infinite alternate; }
.scn-menelaus-welcomes-telemachus .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(90deg, #b09878 0%, #a08868 25%, #b09878 50%, #a08868 75%, #b09878 100%); background-size: 40px 100%; animation:mw3-floor 20s linear infinite; }
.scn-menelaus-welcomes-telemachus .menelaus-open { position:absolute; bottom:22%; left:22%; width:34px; height:85px; background:linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:mw3-menelaus 6s ease-in-out infinite; }
.scn-menelaus-welcomes-telemachus .telemachus-approach { position:absolute; bottom:22%; left:50%; width:24px; height:70px; background:linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:mw3-telemachus 7s ease-in-out infinite; }
.scn-menelaus-welcomes-telemachus .clasped-hands { position:absolute; bottom:32%; left:38%; width:30px; height:16px; background:#4a3020; border-radius:30% 30% 20% 20%; box-shadow:0 2px 6px rgba(0,0,0,.4); animation:mw3-hands 5s ease-in-out infinite; }
.scn-menelaus-welcomes-telemachus .hearth { position:absolute; bottom:12%; left:40%; width:80px; height:30px; background:linear-gradient(180deg, #805030 0%, #603020 100%); border-radius:20% 20% 40% 40%; box-shadow:inset 0 4px 10px rgba(0,0,0,.5); }
.scn-menelaus-welcomes-telemachus .warm-glow { position:absolute; bottom:10%; left:35%; width:120px; height:60px; background:radial-gradient(ellipse, rgba(255,180,80,0.4) 0%, transparent 70%); mix-blend-mode:screen; animation:mw3-glow 4s ease-in-out infinite alternate; }
@keyframes mw3-arch { 0% { transform:scaleY(1) } 50% { transform:scaleY(0.98) } 100% { transform:scaleY(1) } }
@keyframes mw3-floor { 0% { background-position:0 0 } 100% { background-position:40px 0 } }
@keyframes mw3-menelaus { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(4px) rotate(2deg) } 100% { transform:translateX(0) rotate(-2deg) } }
@keyframes mw3-telemachus { 0% { transform:translateX(0) rotate(0) } 33% { transform:translateX(-3px) rotate(-1deg) } 66% { transform:translateX(2px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes mw3-hands { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-2px) scale(1.05) } 100% { transform:translateY(0) scale(1) } }
@keyframes mw3-glow { 0% { opacity:0.5; transform:scale(1) } 50% { opacity:0.8; transform:scale(1.1) } 100% { opacity:0.6; transform:scale(0.95) } }

.scn-all-weep { background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 30%, #3a2a1a 100%), radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, transparent 70%); }
.scn-all-weep .bg-dark { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:0 0 20% 20%; animation:aw4-bg 12s ease-in-out infinite alternate; }
.scn-all-weep .floor-sad { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-all-weep .menelaus-weep { position:absolute; bottom:18%; left:20%; width:30px; height:70px; background:linear-gradient(180deg, #3a2010 0%, #201008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:aw4-menelaus 5s ease-in-out infinite; }
.scn-all-weep .helen-weep { position:absolute; bottom:18%; left:35%; width:26px; height:65px; background:linear-gradient(180deg, #5a3020 0%, #3a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:aw4-helen 6s ease-in-out infinite; }
.scn-all-weep .telemachus-weep { position:absolute; bottom:18%; left:50%; width:22px; height:60px; background:linear-gradient(180deg, #4a2a1a 0%, #2a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:aw4-telemachus 7s ease-in-out infinite; }
.scn-all-weep .pisistratus-weep { position:absolute; bottom:18%; left:65%; width:24px; height:62px; background:linear-gradient(180deg, #4a2a1a 0%, #2a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:aw4-pisistratus 5.5s ease-in-out infinite; }
.scn-all-weep .tear-drop-1 { position:absolute; bottom:28%; left:28%; width:4px; height:8px; background:rgba(200,220,240,0.6); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow:0 0 4px rgba(200,220,240,0.4); animation:aw4-tear1 2s ease-in-out infinite; }
.scn-all-weep .tear-drop-2 { position:absolute; bottom:26%; left:42%; width:3px; height:7px; background:rgba(200,220,240,0.5); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow:0 0 3px rgba(200,220,240,0.3); animation:aw4-tear2 2.3s ease-in-out infinite 1s; }
@keyframes aw4-bg { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes aw4-menelaus { 0% { transform:translateY(0) rotate(0) } 25% { transform:translateY(-2px) rotate(2deg) } 50% { transform:translateY(0) rotate(-1deg) } 75% { transform:translateY(1px) rotate(1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes aw4-helen { 0% { transform:translateY(0) rotate(-1deg) } 33% { transform:translateY(1px) rotate(1deg) } 66% { transform:translateY(-2px) rotate(-2deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes aw4-telemachus { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-1px) scaleY(1.02) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes aw4-pisistratus { 0% { transform:translateX(0) rotate(0) } 50% { transform:translateX(1px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes aw4-tear1 { 0% { opacity:0; transform:translateY(0) } 30% { opacity:1; transform:translateY(10px) } 60% { opacity:0.8; transform:translateY(20px) } 100% { opacity:0; transform:translateY(30px) } }
@keyframes aw4-tear2 { 0% { opacity:0; transform:translateY(0) } 30% { opacity:0.9; transform:translateY(8px) } 60% { opacity:0.7; transform:translateY(18px) } 100% { opacity:0; transform:translateY(25px) } }

/* mercury-responds – bright interior, gold tones */
.scn-mercury-responds {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d5a0 50%, #c9b77a 100%),
    radial-gradient(circle at 50% 0%, #ffe8b0 0%, transparent 70%);
}
.scn-mercury-responds .wall.back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8d5a0 0%, #c9b77a 100%); opacity: 0.6; animation: mr-wall 12s ease-in-out infinite alternate;
}
.scn-mercury-responds .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(0deg, #b5a070 0%, #d8c89a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.15); animation: mr-floor 8s ease-in-out infinite alternate;
}
.scn-mercury-responds .pillar.left,
.scn-mercury-responds .pillar.right {
  position: absolute; bottom: 35%; width: 12%; height: 65%; background: linear-gradient(180deg, #f0e0b0 0%, #d8c090 100%); border-radius: 4px; box-shadow: 0 0 12px rgba(0,0,0,0.1);
}
.scn-mercury-responds .pillar.left { left: 10%; animation: mr-pillar 14s ease-in-out infinite; }
.scn-mercury-responds .pillar.right { right: 10%; animation: mr-pillar 14s ease-in-out infinite 2s; }
.scn-mercury-responds .window.glow {
  position: absolute; top: 15%; left: 38%; width: 24%; height: 35%; background: radial-gradient(ellipse at 50% 50%, #ffe8a0 0%, #f0d080 60%, transparent 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 40px 10px #f0d080; animation: mr-glow 4s ease-in-out infinite alternate;
}
.scn-mercury-responds .mercury.silhouette {
  position: absolute; bottom: 35%; left: 30%; width: 10%; height: 40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-figure 6s ease-in-out infinite;
}
.scn-mercury-responds .apollo.silhouette {
  position: absolute; bottom: 35%; right: 28%; width: 12%; height: 42%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-figure 6s ease-in-out infinite 1s;
}
.scn-mercury-responds .chain.chain-a,
.scn-mercury-responds .chain.chain-b {
  position: absolute; top: 50%; width: 8px; height: 30%; background: repeating-linear-gradient(0deg, #b09080 0px, #b09080 4px, #806050 4px, #806050 8px); border-radius: 2px; animation: mr-chain 3s ease-in-out infinite alternate;
}
.scn-mercury-responds .chain.chain-a { left: 45%; }
.scn-mercury-responds .chain.chain-b { right: 45%; animation-delay: 1.5s; }

@keyframes mr-wall    { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.55 } }
@keyframes mr-floor   { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mr-pillar  { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes mr-glow    { 0% { box-shadow: 0 0 30px 5px #f0d080; opacity: 0.8 } 50% { box-shadow: 0 0 50px 15px #ffe8a0; opacity: 1 } 100% { box-shadow: 0 0 35px 8px #f0d080; opacity: 0.85 } }
@keyframes mr-figure  { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-4px) rotate(1deg) } 60% { transform: translateY(-2px) rotate(-0.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mr-chain   { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(3deg) translateX(2px) } 100% { transform: rotate(-2deg) translateX(-2px) } }

/* gods-laugh-more – bright hall, many figures */
.scn-gods-laugh-more {
  background:
    linear-gradient(180deg, #f0e6c0 0%, #d8c8a0 50%, #b8a080 100%),
    radial-gradient(circle at 30% 70%, #ffe0a0 0%, transparent 70%);
}
.scn-gods-laugh-more .bg.hall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8dbb5 0%, #c8b890 100%); opacity: 0.5; animation: glm-hall 20s ease-in-out infinite alternate;
}
.scn-gods-laugh-more .couch {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 20%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.2); animation: glm-couch 10s ease-in-out infinite alternate;
}
.scn-gods-laugh-more .god.left,
.scn-gods-laugh-more .god.center,
.scn-gods-laugh-more .god.right {
  position: absolute; bottom: 30%; width: 10%; height: 35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
}
.scn-gods-laugh-more .god.left { left: 12%; animation: glm-laugh 2s ease-in-out infinite; }
.scn-gods-laugh-more .god.center { left: 42%; animation: glm-laugh 2.4s ease-in-out infinite 0.6s; }
.scn-gods-laugh-more .god.right { right: 12%; animation: glm-laugh 2.8s ease-in-out infinite 1.2s; }
.scn-gods-laugh-more .mars.bound {
  position: absolute; bottom: 25%; left: 38%; width: 24%; height: 30%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; clip-path: inset(0 0 10% 0); animation: glm-bound 5s ease-in-out infinite;
}
.scn-gods-laugh-more .chain.heavy {
  position: absolute; bottom: 30%; left: 35%; right: 35%; height: 6px; background: repeating-linear-gradient(90deg, #8a7060 0px, #8a7060 6px, #605040 6px, #605040 12px); border-radius: 2px; animation: glm-chain 4s ease-in-out infinite alternate;
}
.scn-gods-laugh-more .neptune.stern {
  position: absolute; bottom: 30%; left: 60%; width: 12%; height: 40%; background: linear-gradient(180deg, #2a4a6a 0%, #1a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: glm-neptune 8s ease-in-out infinite;
}

@keyframes glm-hall   { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.45 } }
@keyframes glm-couch  { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes glm-laugh  { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-8px) rotate(8deg) } 50% { transform: translateY(-2px) rotate(-5deg) } 75% { transform: translateY(-6px) rotate(6deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes glm-bound  { 0% { transform: translateY(0) } 30% { transform: translateY(-5px) } 60% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes glm-chain  { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(0) } }
@keyframes glm-neptune { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }

/* song-aphrodite-ares – forge interior, warm orange glow */
.scn-song-aphrodite-ares {
  background:
    linear-gradient(180deg, #4a2a1a 0%, #3a2010 40%, #6a3a1a 70%, #8a5020 100%),
    radial-gradient(circle at 60% 80%, #d07030 0%, transparent 70%);
}
.scn-song-aphrodite-ares .room.forge {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2010 0%, #5a2a10 50%, #2a1a0a 100%); opacity: 0.7; animation: saa-room 18s ease-in-out infinite alternate;
}
.scn-song-aphrodite-ares .anvil {
  position: absolute; bottom: 25%; left: 30%; width: 18%; height: 10%; background: linear-gradient(180deg, #605040 0%, #403030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 15px rgba(0,0,0,0.5); animation: saa-anvil 6s ease-in-out infinite;
}
.scn-song-aphrodite-ares .fire.glow {
  position: absolute; bottom: 25%; left: 28%; width: 22%; height: 20%; background: radial-gradient(ellipse at 50% 0%, #ff8030 0%, #ff6010 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px #ff6010; animation: saa-fire 3s ease-in-out infinite alternate;
}
.scn-song-aphrodite-ares .vulcan.figure {
  position: absolute; bottom: 25%; left: 35%; width: 14%; height: 40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: saa-vulcan 5s ease-in-out infinite;
}
.scn-song-aphrodite-ares .neptune.figure {
  position: absolute; bottom: 28%; right: 22%; width: 12%; height: 36%; background: linear-gradient(180deg, #2a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: saa-neptune 7s ease-in-out infinite;
}
.scn-song-aphrodite-ares .mars.chained {
  position: absolute; bottom: 28%; left: 15%; width: 10%; height: 28%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: saa-mars 8s ease-in-out infinite;
}
.scn-song-aphrodite-ares .chain.loop {
  position: absolute; bottom: 30%; left: 12%; right: 25%; height: 8px; background: repeating-linear-gradient(90deg, #806050 0px, #806050 8px, #504030 8px, #504030 16px); border-radius: 2px; animation: saa-chain 4s ease-in-out infinite alternate;
}
.scn-song-aphrodite-ares .spark.spark-a,
.scn-song-aphrodite-ares .spark.spark-b {
  position: absolute; width: 6px; height: 6px; background: #ffc080; border-radius: 50%; box-shadow: 0 0 10px 2px #ffa050;
}
.scn-song-aphrodite-ares .spark.spark-a { top: 55%; left: 35%; animation: saa-spark 2s ease-out infinite; }
.scn-song-aphrodite-ares .spark.spark-b { top: 50%; left: 40%; animation: saa-spark 2.3s ease-out infinite 1.1s; }

@keyframes saa-room  { 0% { opacity: 0.65 } 50% { opacity: 0.8 } 100% { opacity: 0.7 } }
@keyframes saa-anvil { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes saa-fire  { 0% { box-shadow: 0 0 40px 10px #ff6010; opacity: 0.9 } 50% { box-shadow: 0 0 70px 25px #ff8030; opacity: 1 } 100% { box-shadow: 0 0 50px 15px #ff6010; opacity: 0.85 } }
@keyframes saa-vulcan { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-6px) rotate(1deg) } 60% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes saa-neptune { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes saa-mars   { 0% { transform: translateY(0) } 30% { transform: translateY(-5px) } 60% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes saa-chain  { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(5px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes saa-spark  { 0% { transform: translate(0, 0) scale(1); opacity: 1 } 50% { transform: translate(20px, -30px) scale(1.5); opacity: 0.8 } 100% { transform: translate(40px, -60px) scale(0); opacity: 0 } }

/* phaeacian-dancing – bright hall, calm elegant motion */
.scn-phaeacian-dancing {
  background:
    linear-gradient(180deg, #f8f0e0 0%, #e8dcc0 50%, #d0c0a0 100%),
    radial-gradient(circle at 30% 50%, #fff8e0 0%, transparent 70%);
}
.scn-phaeacian-dancing .hall.bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0e8d0 0%, #d8cca8 100%); opacity: 0.4; animation: pd-hall 20s ease-in-out infinite alternate;
}
.scn-phaeacian-dancing .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #b8a880 0%, #d8c8a0 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.1); animation: pd-floor 10s ease-in-out infinite alternate;
}
.scn-phaeacian-dancing .column.left,
.scn-phaeacian-dancing .column.right {
  position: absolute; bottom: 30%; width: 8%; height: 70%; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 4px; box-shadow: 0 0 15px rgba(0,0,0,0.1);
}
.scn-phaeacian-dancing .column.left { left: 10%; animation: pd-column 12s ease-in-out infinite; }
.scn-phaeacian-dancing .column.right { right: 10%; animation: pd-column 12s ease-in-out infinite 2s; }
.scn-phaeacian-dancing .dancer.laodamas {
  position: absolute; bottom: 30%; left: 30%; width: 12%; height: 40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-dance 6s ease-in-out infinite;
}
.scn-phaeacian-dancing .dancer.halius {
  position: absolute; bottom: 30%; right: 30%; width: 12%; height: 40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-dance 6s ease-in-out infinite 3s;
}
.scn-phaeacian-dancing .ball {
  position: absolute; bottom: 60%; left: 40%; width: 20px; height: 20px; background: radial-gradient(circle, #c8553d 0%, #a0461a 100%); border-radius: 50%; box-shadow: 0 0 15px 3px rgba(200,85,61,0.4); animation: pd-ball 2s ease-in-out infinite alternate;
}
.scn-phaeacian-dancing .ball.shadow {
  position: absolute; bottom: 55%; left: 40%; width: 18px; height: 6px; background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 100%); border-radius: 50%; animation: pd-shadow 2s ease-in-out infinite alternate;
}

@keyframes pd-hall   { 0% { opacity: 0.35 } 50% { opacity: 0.5 } 100% { opacity: 0.4 } }
@keyframes pd-floor  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pd-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(1) } }
@keyframes pd-dance  { 0% { transform: translateY(0) rotate(-2deg) scale(1) } 25% { transform: translateY(-10px) rotate(4deg) scale(1.02) } 50% { transform: translateY(-5px) rotate(-3deg) scale(0.98) } 75% { transform: translateY(-8px) rotate(2deg) scale(1.01) } 100% { transform: translateY(0) rotate(0) scale(1) } }
@keyframes pd-ball   { 0% { transform: translateY(0) } 50% { transform: translateY(-20px) } 100% { transform: translateY(0) } }
@keyframes pd-shadow { 0% { transform: scaleX(1); opacity: 0.3 } 50% { transform: scaleX(0.8); opacity: 0.5 } 100% { transform: scaleX(1); opacity: 0.3 } }

/* Scene: footnote-night-and-day-ways */
.scn-footnote-night-and-day-ways {
  background: 
    linear-gradient(180deg, #1c1511 0%, #2a1e17 40%, #3a2a1e 70%, #2c2018 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a2e 0%, transparent 70%);
}
.scn-footnote-night-and-day-ways .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e17 0%, transparent 60%); animation: nw-room 12s ease-in-out infinite alternate;
}
.scn-footnote-night-and-day-ways .window-frame {
  position: absolute; top: 15%; left: 50%; width: 120px; height: 160px; transform: translateX(-50%); background: #3a2a1e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-footnote-night-and-day-ways .curtain-left {
  position: absolute; top: 10%; left: 30%; width: 50px; height: 180px; background: linear-gradient(90deg, #5a3a2a 0%, #4a2a1a 100%); border-radius: 0 20px 20px 0; transform-origin: top left; animation: nw-curtain 8s ease-in-out infinite alternate;
}
.scn-footnote-night-and-day-ways .curtain-right {
  position: absolute; top: 10%; right: 30%; width: 50px; height: 180px; background: linear-gradient(90deg, #4a2a1a 0%, #5a3a2a 100%); border-radius: 20px 0 0 20px; transform-origin: top right; animation: nw-curtain 8s ease-in-out infinite alternate-reverse;
}
.scn-footnote-night-and-day-ways .day-sky {
  position: absolute; top: 18%; left: 36%; width: 100px; height: 140px; background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%); opacity: 0.7; animation: nw-fade 20s ease-in-out infinite alternate;
}
.scn-footnote-night-and-day-ways .night-sky {
  position: absolute; top: 18%; left: 36%; width: 100px; height: 140px; background: linear-gradient(180deg, #0b0b2a 0%, #1a1a4a 100%); opacity: 0; animation: nw-fade 20s ease-in-out infinite alternate-reverse;
}
.scn-footnote-night-and-day-ways .desk {
  position: absolute; bottom: 20%; left: 50%; width: 200px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%); border-radius: 4px; box-shadow: 0 8px 12px rgba(0,0,0,0.5);
}
.scn-footnote-night-and-day-ways .candle-glow {
  position: absolute; bottom: 32%; left: 50%; width: 20px; height: 30px; transform: translateX(-50%); background: radial-gradient(circle, #f5d68a 0%, #d4a44a 60%); border-radius: 50%; filter: blur(4px); box-shadow: 0 0 30px 10px rgba(245,214,138,0.4); animation: nw-candle 4s ease-in-out infinite alternate;
}
.scn-footnote-night-and-day-ways .candle-body {
  position: absolute; bottom: 27%; left: 50%; width: 10px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%); border-radius: 2px; box-shadow: 0 0 8px #1a100a;
}
@keyframes nw-room { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes nw-curtain { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(-5deg) scaleX(1.1) } 100% { transform: rotate(2deg) scaleX(0.95) } }
@keyframes nw-fade { 0% { opacity: 0 } 50% { opacity: 0.6 } 100% { opacity: 1 } }
@keyframes nw-candle { 0% { transform: translateX(-50%) scale(1); opacity: 0.8 } 50% { transform: translateX(-50%) scale(1.3); opacity: 1 } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.7 } }

/* Scene: footnote-missionary-neptune */
.scn-footnote-missionary-neptune {
  background: 
    linear-gradient(180deg, #1f1714 0%, #2d211c 30%, #3b2a20 60%, #2a1e18 100%),
    radial-gradient(ellipse at 50% 70%, #4a382e 0%, transparent 80%);
}
.scn-footnote-missionary-neptune .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2d211c 0%, #1a1410 100%); animation: mn-wall 15s ease-in-out infinite alternate;
}
.scn-footnote-missionary-neptune .fireplace {
  position: absolute; bottom: 10%; left: 50%; width: 180px; height: 120px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1e 0%, #1a1410 100%); border-radius: 20px 20px 10px 10px; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.7), 0 8px 12px rgba(0,0,0,0.5);
}
.scn-footnote-missionary-neptune .mantel {
  position: absolute; bottom: 38%; left: 34%; width: 220px; height: 14px; background: linear-gradient(90deg, #4a3020 0%, #6a4a30 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-footnote-missionary-neptune .shovel {
  position: absolute; bottom: 42%; left: 36%; width: 8px; height: 80px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%); border-radius: 4px 4px 0 0; transform: rotate(-15deg); transform-origin: bottom center; animation: mn-shovel 6s ease-in-out infinite alternate;
}
.scn-footnote-missionary-neptune .shovel::after {
  content: ''; position: absolute; top: -12px; left: -8px; width: 24px; height: 16px; background: linear-gradient(135deg, #6a4a30 0%, #4a3020 100%); border-radius: 0 0 50% 50%;
}
.scn-footnote-missionary-neptune .oar {
  position: absolute; bottom: 42%; left: 52%; width: 8px; height: 100px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 4px; transform: rotate(10deg); transform-origin: bottom center; animation: mn-oar 7s ease-in-out infinite alternate;
}
.scn-footnote-missionary-neptune .oar::after {
  content: ''; position: absolute; top: -10px; left: -4px; width: 16px; height: 20px; background: linear-gradient(135deg, #7a5a3a 0%, #5a3a22 100%); border-radius: 30% 30% 10% 10%;
}
.scn-footnote-missionary-neptune .flame-glow {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 60px; transform: translateX(-50%); background: radial-gradient(circle, #f5a84a 0%, #c06020 60%); filter: blur(6px); animation: mn-flame 3s ease-in-out infinite alternate;
}
.scn-footnote-missionary-neptune .map-scroll {
  position: absolute; top: 12%; left: 70%; width: 80px; height: 100px; background: linear-gradient(180deg, #b8a080 0%, #8a6a4a 100%); border-radius: 0 0 20px 20px; transform: rotate(5deg); box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: mn-roll 20s ease-in-out infinite alternate;
}
@keyframes mn-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes mn-shovel { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-18deg) } }
@keyframes mn-oar { 0% { transform: rotate(10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(12deg) } }
@keyframes mn-flame { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.6 } 50% { transform: translateX(-50%) scaleY(1.4); opacity: 1 } 100% { transform: translateX(-50%) scaleY(0.8); opacity: 0.7 } }
@keyframes mn-roll { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-4px) } 100% { transform: rotate(8deg) translateY(2px) } }

/* Scene: footnote-suitors-prophecy */
.scn-footnote-suitors-prophecy {
  background: 
    linear-gradient(180deg, #1a1412 0%, #2a1e18 40%, #3a2a20 70%, #231814 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a20 0%, transparent 70%);
}
.scn-footnote-suitors-prophecy .study-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); animation: sp-wall 10s ease-in-out infinite alternate;
}
.scn-footnote-suitors-prophecy .desk {
  position: absolute; bottom: 15%; left: 50%; width: 240px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%); border-radius: 6px; box-shadow: 0 8px 16px rgba(0,0,0,0.7);
}
.scn-footnote-suitors-prophecy .scroll-prop {
  position: absolute; bottom: 30%; left: 35%; width: 80px; height: 60px; background: linear-gradient(90deg, #b8a080 0%, #d4c0a0 50%, #b8a080 100%); border-radius: 10px; transform: rotate(-5deg); animation: sp-scroll 8s ease-in-out infinite alternate;
}
.scn-footnote-suitors-prophecy .inkwell {
  position: absolute; bottom: 25%; left: 58%; width: 18px; height: 20px; background: radial-gradient(circle at 50% 20%, #3a2a1e 0%, #1a1410 100%); border-radius: 50%; box-shadow: inset 0 2px 4px rgba(0,0,0,0.8);
}
.scn-footnote-suitors-prophecy .quill {
  position: absolute; bottom: 30%; left: 58%; width: 4px; height: 40px; background: linear-gradient(180deg, #f0e0c0 0%, #d4c0a0 100%); border-radius: 2px; transform: rotate(20deg); transform-origin: bottom center; animation: sp-quill 4s ease-in-out infinite alternate;
}
.scn-footnote-suitors-prophecy .quill::after {
  content: ''; position: absolute; top: -8px; left: -4px; width: 12px; height: 8px; background: linear-gradient(135deg, #d4c0a0 0%, #c0a880 100%); border-radius: 50% 50% 50% 0;
}
.scn-footnote-suitors-prophecy .hand-writing {
  position: absolute; bottom: 33%; left: 38%; width: 30px; height: 20px; background: repeating-linear-gradient(90deg, #1a1410 0px, #1a1410 2px, transparent 2px, transparent 4px); animation: sp-hand 6s steps(4) infinite;
}
.scn-footnote-suitors-prophecy .lamp-glow {
  position: absolute; top: 18%; left: 50%; width: 30px; height: 30px; transform: translateX(-50%); background: radial-gradient(circle, #f5d68a 0%, #d4a44a 60%); filter: blur(8px); box-shadow: 0 0 40px 15px rgba(245,214,138,0.3); animation: sp-lamp 5s ease-in-out infinite alternate;
}
.scn-footnote-suitors-prophecy .book-stack {
  position: absolute; bottom: 22%; left: 25%; width: 60px; height: 40px; background: linear-gradient(180deg, #6a4a30 0%, #4a3020 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: sp-books 12s ease-in-out infinite alternate;
}
@keyframes sp-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes sp-scroll { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-3px) } 100% { transform: rotate(-7deg) translateY(1px) } }
@keyframes sp-quill { 0% { transform: rotate(20deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(25deg) } }
@keyframes sp-hand { 0% { opacity: 0; background-position: 0 0 } 25% { opacity: 1; background-position: -4px 0 } 50% { opacity: 1; background-position: -8px 0 } 75% { opacity: 0.5; background-position: -12px 0 } 100% { opacity: 0; background-position: -16px 0 } }
@keyframes sp-lamp { 0% { transform: translateX(-50%) scale(1); opacity: 0.7 } 50% { transform: translateX(-50%) scale(1.2); opacity: 1 } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.6 } }
@keyframes sp-books { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* Scene: footnote-telemachus-age */
.scn-footnote-telemachus-age {
  background: 
    linear-gradient(180deg, #1a1412 0%, #281c16 30%, #36261e 60%, #1e140e 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1e 0%, transparent 70%);
}
.scn-footnote-telemachus-age .child-room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #281c16 0%, #1a1410 100%); animation: ta-room 14s ease-in-out infinite alternate;
}
.scn-footnote-telemachus-age .window-moon {
  position: absolute; top: 12%; left: 50%; width: 100px; height: 130px; transform: translateX(-50%); background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-footnote-telemachus-age .window-moon::after {
  content: ''; position: absolute; top: 20px; left: 30px; width: 30px; height: 30px; background: radial-gradient(circle, #f0e68c 0%, #e0c060 100%); border-radius: 50%; box-shadow: 0 0 20px #f0e68c; animation: ta-moon 10s ease-in-out infinite alternate;
}
.scn-footnote-telemachus-age .desk-child {
  position: absolute; bottom: 20%; left: 50%; width: 160px; height: 35px; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%); border-radius: 4px; box-shadow: 0 6px 10px rgba(0,0,0,0.6);
}
.scn-footnote-telemachus-age .chair {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 50px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4px; transform: rotate(0deg); transform-origin: bottom center;
}
.scn-footnote-telemachus-age .boy-silhouette {
  position: absolute; bottom: 28%; left: 37%; width: 24px; height: 50px; background: linear-gradient(180deg, #0a0a14 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ta-boy 8s ease-in-out infinite alternate;
}
.scn-footnote-telemachus-age .lamp-child {
  position: absolute; bottom: 30%; left: 58%; width: 16px; height: 24px; background: radial-gradient(circle at 50% 30%, #f5d68a 0%, #d4a44a 100%); filter: blur(3px); box-shadow: 0 0 20px 6px rgba(245,214,138,0.3); animation: ta-lamp 4s ease-in-out infinite alternate;
}
.scn-footnote-telemachus-age .toy-boat {
  position: absolute; bottom: 15%; left: 60%; width: 30px; height: 10px; background: linear-gradient(90deg, #6a4a30 0%, #4a3020 100%); border-radius: 2px; transform: rotate(-5deg); animation: ta-boat 6s ease-in-out infinite alternate;
}
.scn-footnote-telemachus-age .toy-boat::after {
  content: ''; position: absolute; top: -10px; left: 10px; width: 2px; height: 15px; background: #4a3020; border-radius: 1px; transform: rotate(10deg);
}
@keyframes ta-room { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ta-moon { 0% { transform: translateY(0) scale(1); opacity: 0.8 } 50% { transform: translateY(-3px) scale(1.1); opacity: 1 } 100% { transform: translateY(0) scale(0.95); opacity: 0.7 } }
@keyframes ta-boy { 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 ta-lamp { 0% { transform: scale(1); opacity: 0.7 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(0.9); opacity: 0.6 } }
@keyframes ta-boat { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(-8deg) translateY(0) } }

/* scene 1: minerva-goes-to-sparta (dark, calm) */
.scn-minerva-goes-to-sparta {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%);
}
.scn-minerva-goes-to-sparta .star-field {
  position: absolute;
  inset: 0 0 50% 0;
  background-image:
    radial-gradient(1px 1px at 20px 30px, #fff, transparent),
    radial-gradient(2px 2px at 50px 80px, #e0e0ff, transparent),
    radial-gradient(1px 1px at 120px 40px, #fff, transparent),
    radial-gradient(1.5px 1.5px at 200px 90px, #fff, transparent);
  background-size: 250px 150px;
  animation: mg-stars 14s ease-in-out infinite alternate;
}
.scn-minerva-goes-to-sparta .moon {
  position: absolute;
  top: 12%;
  right: 20%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, #f0e8d0 0%, #c8b898 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,184,152,0.4);
  animation: mg-moon-glow 18s ease-in-out infinite;
}
.scn-minerva-goes-to-sparta .hills {
  position: absolute;
  bottom: 25%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: mg-hills 24s ease-in-out infinite alternate;
}
.scn-minerva-goes-to-sparta .figure {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 22px;
  height: 65px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: mg-walk 6s ease-in-out infinite;
}
.scn-minerva-goes-to-sparta .spear {
  position: absolute;
  bottom: 35%;
  left: 46.5%;
  width: 2px;
  height: 40px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  transform: rotate(-15deg);
  border-radius: 2px;
  box-shadow: 0 0 6px 2px rgba(192,160,96,0.5);
  animation: mg-spear-sway 6s ease-in-out infinite;
}
.scn-minerva-goes-to-sparta .aura {
  position: absolute;
  bottom: 32%;
  left: 44%;
  width: 40px;
  height: 70px;
  background: radial-gradient(ellipse, rgba(200,180,150,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mg-aura-fade 12s ease-in-out infinite alternate;
}

@keyframes mg-stars { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mg-moon-glow { 0% { box-shadow: 0 0 20px 8px rgba(200,184,152,0.3); } 50% { box-shadow: 0 0 40px 15px rgba(200,184,152,0.5); } 100% { box-shadow: 0 0 25px 10px rgba(200,184,152,0.35); } }
@keyframes mg-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes mg-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-2deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes mg-spear-sway { 0% { transform: rotate(-18deg); } 50% { transform: rotate(-12deg); } 100% { transform: rotate(-18deg); } }
@keyframes mg-aura-fade { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

/* scene 2: telemachus-wakens-pisistratus (dawn, calm) */
.scn-telemachus-wakens-pisistratus {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #8a6a5a 100%),
    radial-gradient(ellipse at 50% 30%, #8a6a5a 0%, transparent 60%);
}
.scn-telemachus-wakens-pisistratus .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
}
.scn-telemachus-wakens-pisistratus .window {
  position: absolute;
  top: 15%;
  left: 10%;
  width: 80px;
  height: 60px;
  background: linear-gradient(180deg, #f0c8a0 0%, #d8a878 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px 4px #e8b888;
  animation: twp-dawn-light 20s ease-in-out infinite alternate;
}
.scn-telemachus-wakens-pisistratus .bed {
  position: absolute;
  bottom: 25%;
  left: 20%;
  width: 120px;
  height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-telemachus-wakens-pisistratus .figure-standing {
  position: absolute;
  bottom: 30%;
  left: 55%;
  width: 20px;
  height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: twp-stand-sway 5s ease-in-out infinite;
}
.scn-telemachus-wakens-pisistratus .figure-lying {
  position: absolute;
  bottom: 28%;
  left: 25%;
  width: 50px;
  height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: twp-stir 8s ease-in-out infinite;
}
.scn-telemachus-wakens-pisistratus .dawn-light {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 40%;
  background: linear-gradient(180deg, rgba(240,200,160,0.15) 0%, transparent 100%);
  animation: twp-dawn-sweep 20s ease-in-out infinite alternate;
}

@keyframes twp-dawn-light { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes twp-stand-sway { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes twp-stir { 0% { transform: rotate(7deg) scaleY(1); } 25% { transform: rotate(3deg) scaleY(0.95); } 50% { transform: rotate(6deg) scaleY(1); } 75% { transform: rotate(4deg) scaleY(0.95); } 100% { transform: rotate(5deg) scaleY(1); } }
@keyframes twp-dawn-sweep { 0% { opacity: 0.1; } 50% { opacity: 0.3; } 100% { opacity: 0.1; } }

/* scene 3: menelaus-offers-hospitality (dawn, warm) */
.scn-menelaus-offers-hospitality {
  background:
    linear-gradient(180deg, #5a3a2a 0%, #7a5a3a 30%, #a08060 100%),
    radial-gradient(ellipse at 50% 30%, #a08060 0%, transparent 60%);
}
.scn-menelaus-offers-hospitality .wall-warm {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%);
}
.scn-menelaus-offers-hospitality .table {
  position: absolute;
  bottom: 25%;
  left: 25%;
  width: 150px;
  height: 30px;
  background: linear-gradient(180deg, #b0a090 0%, #908070 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-menelaus-offers-hospitality .cup {
  position: absolute;
  bottom: 30%;
  left: 42%;
  width: 12px;
  height: 18px;
  background: linear-gradient(180deg, #d8b090 0%, #b89070 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: mh-cup-bob 6s ease-in-out infinite;
}
.scn-menelaus-offers-hospitality .figure-host {
  position: absolute;
  bottom: 28%;
  left: 20%;
  width: 28px;
  height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: mh-seat-sway 8s ease-in-out infinite;
}
.scn-menelaus-offers-hospitality .figure-guest {
  position: absolute;
  bottom: 28%;
  left: 55%;
  width: 24px;
  height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: mh-seat-sway 9s ease-in-out infinite 1s;
}
.scn-menelaus-offers-hospitality .brazier {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 30px;
  height: 20px;
  background: radial-gradient(circle at 50% 80%, #f0c060 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(240,192,96,0.4);
  animation: mh-brazier 5s ease-in-out infinite alternate;
}

@keyframes mh-cup-bob { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mh-seat-sway { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes mh-brazier { 0% { box-shadow: 0 0 30px 10px rgba(240,192,96,0.3); } 50% { box-shadow: 0 0 50px 20px rgba(240,192,96,0.5); } 100% { box-shadow: 0 0 35px 12px rgba(240,192,96,0.35); } }

/* scene 4: telemachus-insists-on-leaving (dawn, calm) */
.scn-telemachus-insists-on-leaving {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 30%, #8a7a6a 100%),
    radial-gradient(ellipse at 50% 30%, #8a7a6a 0%, transparent 60%);
}
.scn-telemachus-insists-on-leaving .wall-warm {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
}
.scn-telemachus-insists-on-leaving .table {
  position: absolute;
  bottom: 25%;
  left: 25%;
  width: 150px;
  height: 30px;
  background: linear-gradient(180deg, #a09080 0%, #807060 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-telemachus-insists-on-leaving .cup {
  position: absolute;
  bottom: 30%;
  left: 42%;
  width: 12px;
  height: 18px;
  background: linear-gradient(180deg, #d0b090 0%, #b09070 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: til-cup-bob 7s ease-in-out infinite;
}
.scn-telemachus-insists-on-leaving .figure-standing-guest {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 22px;
  height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: til-stand-sway 5s ease-in-out infinite;
}
.scn-telemachus-insists-on-leaving .figure-seated-host {
  position: absolute;
  bottom: 28%;
  left: 22%;
  width: 28px;
  height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: til-seat-sway 8s ease-in-out infinite 1s;
}
.scn-telemachus-insists-on-leaving .hand {
  position: absolute;
  bottom: 34%;
  left: 46%;
  width: 16px;
  height: 12px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: til-hand-gesture 6s ease-in-out infinite alternate;
}

@keyframes til-cup-bob { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes til-stand-sway { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes til-seat-sway { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes til-hand-gesture { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(25deg) translateX(4px); } 100% { transform: rotate(20deg) translateX(0); } }

.scn-laertes-kills-eupeithes { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #f4a460 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 60%); }
.scn-laertes-kills-eupeithes .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #4682b4 0%, #87ceeb 100%); animation: lae-sky 8s ease-in-out infinite alternate; }
.scn-laertes-kills-eupeithes .sunburst { position: absolute; top: 8%; left: 50%; width: 100px; height: 100px; transform: translateX(-50%); background: radial-gradient(circle, #fff8dc 0%, #f0e68c 40%, transparent 70%); border-radius: 50%; animation: lae-sun 6s ease-in-out infinite; }
.scn-laertes-kills-eupeithes .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(0deg, #8b4513 0%, #d2b48c 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); }
.scn-laertes-kills-eupeithes .laertes { position: absolute; bottom: 32%; left: 20%; width: 24px; height: 48px; background: linear-gradient(180deg, #2f1e0e 0%, #1a0f06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lae-laertes 1.2s ease-in-out infinite; }
.scn-laertes-kills-eupeithes .spear { position: absolute; bottom: 48%; left: 30%; width: 80px; height: 4px; background: linear-gradient(90deg, #8b4513 0%, #d2b48c 50%, #8b4513 100%); border-radius: 2px; transform-origin: left center; animation: lae-spear 1.2s ease-in-out infinite; }
.scn-laertes-kills-eupeithes .eupeithes { position: absolute; bottom: 28%; right: 25%; width: 22px; height: 44px; background: linear-gradient(180deg, #2f1e0e 0%, #1a0f06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center top; animation: lae-eupeithes 1.2s ease-in-out infinite; }
.scn-laertes-kills-eupeithes .helmet { position: absolute; bottom: 46%; right: 28%; width: 16px; height: 12px; background: radial-gradient(ellipse at 50% 60%, #b8860b 0%, #8b6508 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: lae-helmet 1.2s ease-in-out infinite; }
@keyframes lae-sky { 0% { opacity: 0.75; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes lae-sun { 0% { transform: translateX(-50%) scale(0.9); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.1); opacity: 1; } 100% { transform: translateX(-50%) scale(1); opacity: 0.9; } }
@keyframes lae-laertes { 0% { transform: rotate(-10deg) translateY(0); } 40% { transform: rotate(30deg) translateY(-4px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes lae-spear { 0% { transform: scaleX(1) rotate(-20deg); } 40% { transform: scaleX(1.2) rotate(40deg); opacity: 1; } 80% { opacity: 0.6; } 100% { transform: scaleX(1) rotate(-20deg); opacity: 0; } }
@keyframes lae-eupeithes { 0% { transform: rotate(0) translateY(0); opacity: 1; } 30% { transform: rotate(-30deg) translateY(-6px); opacity: 1; } 60% { transform: rotate(60deg) translateY(8px); opacity: 0.7; } 100% { transform: rotate(90deg) translateY(20px); opacity: 0; } }
@keyframes lae-helmet { 0% { transform: rotate(0) translate(0,0); } 30% { transform: rotate(-20deg) translate(-4px,-2px); } 60% { transform: rotate(80deg) translate(6px,4px); } 100% { transform: rotate(120deg) translate(12px,10px); opacity: 0; } }

.scn-foe-flees { background: linear-gradient(180deg, #b0e0e6 0%, #f5deb3 50%, #deb887 100%), radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 70%); }
.scn-foe-flees .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #87cefa 0%, #b0e0e6 100%); animation: foe-sky 20s ease-in-out infinite alternate; }
.scn-foe-flees .sun { position: absolute; top: 10%; left: 70%; width: 60px; height: 60px; background: radial-gradient(circle, #fffacd 0%, #ffd700 50%, transparent 75%); border-radius: 50%; animation: foe-sun 30s linear infinite alternate; }
.scn-foe-flees .far-mountains { position: absolute; bottom: 25%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #8fbc8f 0%, #556b2f 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; }
.scn-foe-flees .city-wall { position: absolute; bottom: 10%; right: 5%; width: 35%; height: 30%; background: linear-gradient(0deg, #a0522d 0%, #cd853f 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -8px 15px rgba(0,0,0,0.3); animation: foe-wall 15s ease-in-out infinite alternate; }
.scn-foe-flees .fleeing-a { position: absolute; bottom: 5%; left: 10%; width: 12px; height: 28px; background: linear-gradient(180deg, #2f1e0e 0%, #1a0f06 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: foe-flee 6s ease-in-out infinite; }
.scn-foe-flees .fleeing-b { position: absolute; bottom: 5%; left: 25%; width: 12px; height: 28px; background: linear-gradient(180deg, #4a2c17 0%, #2a1a0d 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: foe-flee 6s ease-in-out infinite -1.5s; }
.scn-foe-flees .fleeing-c { position: absolute; bottom: 5%; left: 40%; width: 12px; height: 28px; background: linear-gradient(180deg, #3b2210 0%, #221208 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: foe-flee 6s ease-in-out infinite -3s; }
.scn-foe-flees .dropped-arm { position: absolute; bottom: 15%; left: 18%; width: 4px; height: 14px; background: #8b4513; border-radius: 2px; transform: rotate(30deg); animation: foe-arm 4s ease-in-out infinite; }
@keyframes foe-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes foe-sun { 0% { transform: translate(0,0) scale(0.95); } 100% { transform: translate(-10px, 5px) scale(1.05); } }
@keyframes foe-wall { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes foe-flee { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(15px) translateY(-3px) rotate(3deg); } 50% { transform: translateX(30px) translateY(0) rotate(-1deg); } 75% { transform: translateX(45px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(60px) translateY(0) rotate(0); } }
@keyframes foe-arm { 0% { transform: rotate(30deg) translateY(0); opacity: 1; } 50% { transform: rotate(80deg) translateY(10px); opacity: 0.5; } 100% { transform: rotate(30deg) translateY(0); opacity: 0; } }

.scn-footnote-thronos { background: linear-gradient(180deg, #2c1b10 0%, #3a2518 50%, #1e1108 100%), radial-gradient(ellipse at 50% 80%, #5a3a28 0%, transparent 70%); }
.scn-footnote-thronos .back-wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #4a3520 0%, #2c1b10 100%); animation: thr-wall 20s ease-in-out infinite alternate; }
.scn-footnote-thronos .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #1e1108 0%, #3a2518 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-footnote-thronos .window-glow { position: absolute; top: 12%; left: 50%; width: 70px; height: 90px; transform: translateX(-50%); background: linear-gradient(180deg, #deb887 0%, #d2b48c 100%); border-radius: 5% 5% 10% 10%; box-shadow: 0 0 30px 10px rgba(222,184,135,0.4), 0 0 60px 20px rgba(222,184,135,0.2); animation: thr-window 8s ease-in-out infinite alternate; }
.scn-footnote-thronos .throne { position: absolute; bottom: 20%; left: 40%; width: 40px; height: 50px; background: linear-gradient(180deg, #6b3a2a 0%, #4a2518 100%); border-radius: 10% 10% 5% 5%; transform: translateX(-50%); box-shadow: 0 6px 10px rgba(0,0,0,0.4); animation: thr-throne 12s ease-in-out infinite; }
.scn-footnote-thronos .footstool { position: absolute; bottom: 12%; left: 45%; width: 30px; height: 14px; background: linear-gradient(180deg, #5a3020 0%, #3a1a10 100%); border-radius: 10% 10% 20% 20%; transform: translateX(-50%); box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: thr-stool 12s ease-in-out infinite -2s; }
.scn-footnote-thronos .pillar-left { position: absolute; top: 0; left: 10%; width: 10px; height: 70%; background: linear-gradient(180deg, #5a3a28 0%, #3a2518 100%); border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,0.5); animation: thr-pillar 18s ease-in-out infinite; }
.scn-footnote-thronos .pillar-right { position: absolute; top: 0; right: 10%; width: 10px; height: 70%; background: linear-gradient(180deg, #5a3a28 0%, #3a2518 100%); border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,0.5); animation: thr-pillar 18s ease-in-out infinite -6s; }
@keyframes thr-wall { 0% { background-position: 0% 0%; } 100% { background-position: 10% 10%; } }
@keyframes thr-window { 0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(222,184,135,0.3); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(222,184,135,0.6); } 100% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(222,184,135,0.4); } }
@keyframes thr-throne { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes thr-stool { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } }
@keyframes thr-pillar { 0%, 100% { opacity: 0.9; } 50% { opacity: 0.7; } }

.scn-footnote-middle-argos { background: linear-gradient(180deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%), radial-gradient(ellipse at 70% 20%, #2a3a5c 0%, transparent 60%); }
.scn-footnote-middle-argos .study-wall { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #2c2c3e 0%, #1c1c2e 100%); animation: arg-wall 25s ease-in-out infinite alternate; }
.scn-footnote-middle-argos .desk { position: absolute; bottom: 0; left: 15%; right: 15%; height: 25%; background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,0.5); }
.scn-footnote-middle-argos .lamp { position: absolute; bottom: 22%; left: 70%; width: 14px; height: 30px; background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%); border-radius: 20% 20% 0 0; transform-origin: bottom center; animation: arg-lamp 6s ease-in-out infinite alternate; }
.scn-footnote-middle-argos .lamp::after { content: ''; position: absolute; top: -10px; left: -6px; width: 26px; height: 14px; background: radial-gradient(ellipse, #fffacd 0%, #f0e68c 50%, transparent 70%); border-radius: 50%; animation: arg-light 3s ease-in-out infinite; }
.scn-footnote-middle-argos .papyrus { position: absolute; bottom: 10%; left: 30%; width: 60px; height: 40px; background: linear-gradient(135deg, #f5deb3 0%, #deb887 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: arg-papyrus 12s ease-in-out infinite; }
.scn-footnote-middle-argos .land-asia { position: absolute; top: 10%; left: 5%; width: 25%; height: 35%; background: linear-gradient(180deg, #4a6741 0%, #2d4a2a 100%); border-radius: 30% 40% 10% 20% / 40% 50% 10% 20%; animation: arg-land 30s ease-in-out infinite; }
.scn-footnote-middle-argos .land-sicily { position: absolute; top: 10%; right: 5%; width: 20%; height: 30%; background: linear-gradient(180deg, #5a7a51 0%, #3a5a31 100%); border-radius: 40% 30% 20% 30% / 50% 40% 20% 30%; animation: arg-land 30s ease-in-out infinite -10s; }
.scn-footnote-middle-argos .central-sea { position: absolute; bottom: 35%; left: 25%; right: 25%; top: 40%; background: radial-gradient(ellipse at 50% 50%, #1c3a5e 0%, #0f2340 100%); border-radius: 50% 50% 40% 40%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: arg-sea 20s ease-in-out infinite alternate; }
.scn-footnote-middle-argos .route-dot { position: absolute; top: 48%; left: 50%; width: 8px; height: 8px; background: radial-gradient(circle, #ffd700 0%, #b8860b 100%); border-radius: 50%; transform: translate(-50%, -50%); box-shadow: 0 0 10px 2px rgba(255,215,0,0.5); animation: arg-dot 8s ease-in-out infinite; }
@keyframes arg-wall { 0% { opacity: 0.85; } 100% { opacity: 0.95; } }
@keyframes arg-lamp { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes arg-light { 0%, 100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes arg-papyrus { 0%, 100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes arg-land { 0%, 100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes arg-sea { 0% { opacity: 0.6; } 100% { opacity: 0.8; } }
@keyframes arg-dot { 0%, 100% { transform: translate(-50%, -50%) scale(0.8); } 50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0.6; } }

/* blinding-polyphemus-plan (sunlit) */
.scn-blinding-polyphemus-plan {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 50%, #F5DEB3 100%), radial-gradient(ellipse at 50% 20%, #FFD700 0%, transparent 60%);
}
.scn-blinding-polyphemus-plan .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #B0E0E6 0%, transparent 100%); animation: bpp-sky 15s ease-in-out infinite alternate; }
.scn-blinding-polyphemus-plan .sun { position:absolute; top:8%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 70%); border-radius:50%; box-shadow: 0 0 40px 10px #FFD70080; animation: bpp-sun 10s ease-in-out infinite; }
.scn-blinding-polyphemus-plan .hills { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, #556B2F 0%, #3B5323 50%, #2E4A1E 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: bpp-hills 20s ease-in-out infinite alternate; }
.scn-blinding-polyphemus-plan .sheep-pen { position:absolute; bottom:27%; left:10%; width:30%; height:8%; background: repeating-linear-gradient(90deg, #8B4513 0px, #8B4513 4px, transparent 4px, transparent 12px); animation: bpp-pen 8s ease-in-out infinite; }
.scn-blinding-polyphemus-plan .club { position:absolute; bottom:23%; left:45%; width:120px; height:16px; background: linear-gradient(180deg, #556B2F 0%, #3B5323 50%, #2E4A1E 100%); border-radius: 20% 20% 40% 40%; transform: rotate(-5deg); box-shadow: 0 4px 8px #00000055; animation: bpp-club 4s ease-in-out infinite alternate; }
.scn-blinding-polyphemus-plan .figure { position:absolute; bottom:22%; left:35%; width:16px; height:30px; background: linear-gradient(180deg, #2F1B14 0%, #1A0E0A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bpp-figure 3s ease-in-out infinite; }
.scn-blinding-polyphemus-plan .shadow { position:absolute; bottom:18%; left:42%; width:30px; height:6px; background: #00000040; border-radius:50%; filter: blur(4px); animation: bpp-shadow 3s ease-in-out infinite; }

@keyframes bpp-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bpp-sun { 0% { transform: scale(1); box-shadow: 0 0 30px 5px #FFD70055; } 50% { transform: scale(1.08); box-shadow: 0 0 50px 15px #FFD700aa; } 100% { transform: scale(1); box-shadow: 0 0 30px 5px #FFD70055; } }
@keyframes bpp-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px) scaleX(1.01); } 100% { transform: translateY(0); } }
@keyframes bpp-pen { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes bpp-club { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(3px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes bpp-figure { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(3px,-1px) rotate(2deg); } 50% { transform: translate(6px,0) rotate(0deg); } 75% { transform: translate(3px,1px) rotate(-2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes bpp-shadow { 0% { transform: translateX(0) scaleX(1); } 25% { transform: translateX(3px) scaleX(1.1); } 75% { transform: translateX(3px) scaleX(0.9); } 100% { transform: translateX(0) scaleX(1); } }

/* ulysses-offers-wine (firelit) */
.scn-ulysses-offers-wine {
  background: linear-gradient(180deg, #2b1b0e 0%, #3d2514 30%, #5c2e13 60%, #3d2514 100%), radial-gradient(ellipse at 50% 60%, #ff6b35 0%, transparent 70%);
}
.scn-ulysses-offers-wine .cave-wall { position:absolute; inset:0; background: radial-gradient(ellipse at 80% 20%, #4a2a1a 0%, transparent 60%); animation: uow-wall 12s ease-in-out infinite; }
.scn-ulysses-offers-wine .fire { position:absolute; bottom:15%; left:20%; width:30px; height:50px; background: radial-gradient(ellipse at 50% 100%, #ff6b35 0%, #b03a1a 60%, transparent 80%); border-radius: 50% 50% 30% 30%; animation: uow-fire 0.8s ease-in-out infinite alternate; }
.scn-ulysses-offers-wine .cyclops { position:absolute; bottom:10%; right:20%; width:80px; height:100px; background: linear-gradient(180deg, #1a0e08 0%, #0f0704 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: uow-cyclops 6s ease-in-out infinite; }
.scn-ulysses-offers-wine .ulysses { position:absolute; bottom:10%; left:30%; width:18px; height:40px; background: linear-gradient(180deg, #2c1a12 0%, #1f110b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: uow-ulysses 4s ease-in-out infinite; }
.scn-ulysses-offers-wine .wine-bowl { position:absolute; bottom:25%; left:35%; width:16px; height:12px; background: radial-gradient(ellipse at 50% 30%, #c04030 0%, #801020 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 10px 2px #c0403066; animation: uow-bowl 2s ease-in-out infinite; }
.scn-ulysses-offers-wine .wine-glow { position:absolute; bottom:23%; left:33%; width:24px; height:20px; background: radial-gradient(ellipse, #ff6b3544 0%, transparent 100%); filter: blur(6px); animation: uow-glow 1.5s ease-in-out infinite alternate; }
.scn-ulysses-offers-wine .smoke { position:absolute; bottom:60%; left:18%; width:20px; height:40px; background: linear-gradient(180deg, rgba(255,180,100,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: uow-smoke 10s linear infinite; }

@keyframes uow-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes uow-fire { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.1) scaleX(0.95); } 100% { transform: scaleY(0.95) scaleX(1.05); } }
@keyframes uow-cyclops { 0% { transform: rotate(0deg) translate(0,0); } 30% { transform: rotate(4deg) translate(5px,-3px); } 60% { transform: rotate(-3deg) translate(-3px,2px); } 100% { transform: rotate(0deg) translate(0,0); } }
@keyframes uow-ulysses { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(5px,-2px) rotate(2deg); } 50% { transform: translate(10px,0) rotate(0deg); } 75% { transform: translate(5px,2px) rotate(-2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes uow-bowl { 0% { transform: translate(0,0) rotate(-5deg); } 50% { transform: translate(2px,-1px) rotate(5deg); } 100% { transform: translate(0,0) rotate(-5deg); } }
@keyframes uow-glow { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes uow-smoke { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-30px) scale(1.5); opacity:0.2; } 100% { transform: translateY(-60px) scale(2); opacity:0; } }

/* ulysses-tricks-cyclops-name (firelit close-up) */
.scn-ulysses-tricks-cyclops-name {
  background: linear-gradient(180deg, #1f1209 0%, #331d10 40%, #4d2a16 100%), radial-gradient(ellipse at 50% 50%, #ff6b3544 0%, transparent 60%);
}
.scn-ulysses-tricks-cyclops-name .cave-wall { position:absolute; inset:0; background: radial-gradient(ellipse at 20% 80%, #4a2a1a 0%, transparent 70%); animation: utcn-wall 15s ease-in-out infinite alternate; }
.scn-ulysses-tricks-cyclops-name .fire { position:absolute; bottom:10%; left:10%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 100%, #ff6b35 0%, #b03a1a 50%, transparent 80%); border-radius: 50% 50% 30% 30%; animation: utcn-fire 0.9s ease-in-out infinite alternate; }
.scn-ulysses-tricks-cyclops-name .cyclops { position:absolute; bottom:5%; right:10%; width:100px; height:120px; background: linear-gradient(180deg, #1a0e08 0%, #0f0704 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: utcn-cyclops 5s ease-in-out infinite; }
.scn-ulysses-tricks-cyclops-name .ulysses { position:absolute; bottom:5%; left:25%; width:20px; height:45px; background: linear-gradient(180deg, #2c1a12 0%, #1f110b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: utcn-ulysses 3.5s ease-in-out infinite; }
.scn-ulysses-tricks-cyclops-name .wine-bowl { position:absolute; bottom:22%; left:35%; width:18px; height:14px; background: radial-gradient(ellipse at 50% 30%, #c04030 0%, #801020 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 15px 3px #c0403066; animation: utcn-bowl 2.5s ease-in-out infinite; }
.scn-ulysses-tricks-cyclops-name .wine-glow { position:absolute; bottom:18%; left:32%; width:28px; height:24px; background: radial-gradient(ellipse, #ff6b3544 0%, transparent 100%); filter: blur(8px); animation: utcn-glow 1.2s ease-in-out infinite alternate; }
.scn-ulysses-tricks-cyclops-name .goblet-drip { position:absolute; bottom:12%; left:38%; width:2px; height:8px; background: #c04030; border-radius: 50%; animation: utcn-drip 3s ease-in-out infinite; }

@keyframes utcn-wall { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes utcn-fire { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.15) scaleX(0.9); } 100% { transform: scaleY(0.9) scaleX(1.1); } }
@keyframes utcn-cyclops { 0% { transform: rotate(0deg) translate(0,0); } 25% { transform: rotate(5deg) translate(8px,-5px); } 50% { transform: rotate(-4deg) translate(-5px,3px); } 75% { transform: rotate(3deg) translate(4px,-2px); } 100% { transform: rotate(0deg) translate(0,0); } }
@keyframes utcn-ulysses { 0% { transform: translate(0,0) rotate(0deg); } 20% { transform: translate(4px,-3px) rotate(3deg); } 40% { transform: translate(8px,0) rotate(0deg); } 60% { transform: translate(4px,3px) rotate(-3deg); } 80% { transform: translate(-2px,0) rotate(0); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes utcn-bowl { 0% { transform: translate(0,0) rotate(-8deg); } 50% { transform: translate(3px,-2px) rotate(8deg); } 100% { transform: translate(0,0) rotate(-8deg); } }
@keyframes utcn-glow { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes utcn-drip { 0% { transform: translateY(0) scaleY(1); opacity:0.8; } 20% { transform: translateY(10px) scaleY(1.5); opacity:0.6; } 40% { transform: translateY(20px) scaleY(1); opacity:0.4; } 60% { transform: translateY(30px) scaleY(1.2); opacity:0.2; } 80% { transform: translateY(40px) scaleY(0.8); opacity:0.1; } 100% { transform: translateY(50px) scaleY(1); opacity:0; } }

/* blinding-polyphemus (firelit action) */
.scn-blinding-polyphemus {
  background: linear-gradient(180deg, #1e0a00 0%, #2f1100 50%, #4a1a00 100%), radial-gradient(ellipse at 50% 70%, #ff4500 0%, transparent 60%);
}
.scn-blinding-polyphemus .cave-wall { position:absolute; inset:0; background: radial-gradient(ellipse at 80% 20%, #4a2a1a 0%, transparent 70%); animation: bp-wall 10s ease-in-out infinite alternate; }
.scn-blinding-polyphemus .fire { position:absolute; bottom:5%; left:15%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 100%, #ff6b35 0%, #b03a1a 50%, transparent 80%); border-radius: 50% 50% 30% 30%; animation: bp-fire 0.7s ease-in-out infinite alternate; }
.scn-blinding-polyphemus .cyclops-sleeping { position:absolute; bottom:0; left:40%; width:120px; height:80px; background: linear-gradient(180deg, #1a0e08 0%, #0f0704 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bp-sleep 8s ease-in-out infinite; }
.scn-blinding-polyphemus .stake { position:absolute; bottom:20%; left:60%; width:80px; height:6px; background: linear-gradient(180deg, #ff4500 0%, #8b2500 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 5px #ff450088; transform: rotate(20deg); transform-origin: left center; animation: bp-stake 4s ease-in-out infinite alternate; }
.scn-blinding-polyphemus .ulysses { position:absolute; bottom:18%; left:55%; width:16px; height:35px; background: linear-gradient(180deg, #2c1a12 0%, #1f110b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bp-ulysses 3s ease-in-out infinite; }
.scn-blinding-polyphemus .men { position:absolute; bottom:15%; left:70%; width:12px; height:25px; background: linear-gradient(180deg, #2c1a12 0%, #1f110b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bp-men 4s ease-in-out infinite; }
.scn-blinding-polyphemus .sparks { position:absolute; bottom:30%; left:20%; width:100%; height:60%; background: radial-gradient(circle at 20% 30%, #ff6b35 0%, transparent 5%), radial-gradient(circle at 60% 50%, #ff4500 0%, transparent 5%), radial-gradient(circle at 80% 20%, #ff6b35 0%, transparent 5%); animation: bp-sparks 2s ease-in-out infinite; }

@keyframes bp-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes bp-fire { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.2) scaleX(0.9); } 100% { transform: scaleY(0.9) scaleX(1.1); } }
@keyframes bp-sleep { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bp-stake { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(25deg) translateX(5px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes bp-ulysses { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(5px,-2px) rotate(3deg); } 50% { transform: translate(10px,0) rotate(0deg); } 75% { transform: translate(5px,2px) rotate(-3deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes bp-men { 0% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(3px,-1px) rotate(2deg); } 60% { transform: translate(6px,0) rotate(0deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes bp-sparks { 0% { opacity:0.3; } 50% { opacity:0.8; } 100% { opacity:0.3; } }

.scn-catalogue-of-women-cont {
  background:
    radial-gradient(ellipse 40% 30% at 50% 10%, #2a1a3a 0%, transparent 80%),
    linear-gradient(180deg, #0d0a1a 0%, #1a0d2a 30%, #0a0515 100%);
  position: relative;
  overflow: hidden;
  height: 100%;
  width: 100%;
}
.scn-catalogue-of-women-cont .bg-deep {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 40%, #120a1c 100%);
  animation: cwc-deep 20s ease-in-out infinite alternate;
}
.scn-catalogue-of-women-cont .pillar-left,
.scn-catalogue-of-women-cont .pillar-right {
  position: absolute;
  bottom: 0;
  width: 14%;
  height: 80%;
  background: linear-gradient(90deg, #1a1525 0%, #2a2040 50%, #1a1525 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,.6), inset 0 0 20px rgba(80,60,120,.15);
}
.scn-catalogue-of-women-cont .pillar-left { left: 5%; }
.scn-catalogue-of-women-cont .pillar-right { right: 5%; }
.scn-catalogue-of-women-cont .figure-mother {
  position: absolute;
  bottom: 20%;
  left: 38%;
  width: 12%;
  height: 40%;
  background: radial-gradient(ellipse 100% 70% at 50% 30%, #1c1220 0%, #0a0510 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: cwc-mother 6s ease-in-out infinite;
}
.scn-catalogue-of-women-cont .figure-child {
  position: absolute;
  bottom: 20%;
  left: 34%;
  width: 7%;
  height: 20%;
  background: radial-gradient(ellipse 100% 60% at 50% 40%, #1a1018 0%, #080308 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwc-child 4s ease-in-out infinite alternate;
}
.scn-catalogue-of-women-cont .light-beam {
  position: absolute;
  top: -5%;
  left: 42%;
  width: 16%;
  height: 120%;
  background: linear-gradient(180deg, rgba(160,120,200,.15) 0%, rgba(80,50,100,.05) 100%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  opacity: .4;
  animation: cwc-beam 8s ease-in-out infinite;
}
.scn-catalogue-of-women-cont .dust-mote {
  position: absolute;
  width: 4px;
  height: 4px;
  background: radial-gradient(circle, rgba(200,180,240,.5), transparent);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-catalogue-of-women-cont .dust-a {
  top: 30%;
  left: 48%;
  animation: cwc-dust-a 15s linear infinite;
}
.scn-catalogue-of-women-cont .dust-b {
  top: 50%;
  left: 52%;
  animation: cwc-dust-b 20s linear infinite;
  animation-delay: -7s;
}
@keyframes cwc-deep { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes cwc-mother { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg) scale(1.01); } }
@keyframes cwc-child { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes cwc-beam { 0%,100% { opacity: .2; } 50% { opacity: .5; } }
@keyframes cwc-dust-a { 0% { transform: translate(0,0) scale(1); opacity: .3; } 25% { transform: translate(4px,-8px) scale(.8); opacity: .6; } 50% { transform: translate(-2px,-15px) scale(1.2); opacity: .2; } 75% { transform: translate(6px,-5px) scale(.9); opacity: .5; } 100% { transform: translate(0,0) scale(1); opacity: .3; } }
@keyframes cwc-dust-b { 0% { transform: translate(0,0) scale(1); opacity: .4; } 33% { transform: translate(-3px,-10px) scale(.7); opacity: .7; } 66% { transform: translate(5px,-4px) scale(1.1); opacity: .3; } 100% { transform: translate(0,0) scale(1); opacity: .4; } }

.scn-arete-addresses-phaeacians {
  background:
    radial-gradient(ellipse 50% 40% at 50% 60%, #4a3520 0%, #2a1a0e 60%, #1a0e05 100%),
    linear-gradient(180deg, #1a0e05 0%, #2a1a0e 40%, #0e0502 100%);
  position: relative;
  overflow: hidden;
}
.scn-arete-addresses-phaeacians .hall-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 30%, rgba(20,10,5,.4) 100%);
}
.scn-arete-addresses-phaeacians .col-left,
.scn-arete-addresses-phaeacians .col-right {
  position: absolute;
  bottom: 0;
  width: 10%;
  height: 90%;
  background: linear-gradient(90deg, #3a2818 0%, #5a3c20 50%, #3a2818 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -2px 0 6px rgba(0,0,0,.5), inset 0 0 15px rgba(80,50,20,.2);
}
.scn-arete-addresses-phaeacians .col-left { left: 8%; }
.scn-arete-addresses-phaeacians .col-right { right: 8%; }
.scn-arete-addresses-phaeacians .throne-base {
  position: absolute;
  bottom: 12%;
  left: 40%;
  width: 20%;
  height: 20%;
  background: linear-gradient(180deg, #5c3e22 0%, #3a2412 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
}
.scn-arete-addresses-phaeacians .figure-arete {
  position: absolute;
  bottom: 28%;
  left: 42%;
  width: 16%;
  height: 30%;
  background: radial-gradient(ellipse 80% 60% at 50% 40%, #3a2010 0%, #1a0e05 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: are-figure 5s ease-in-out infinite;
}
.scn-arete-addresses-phaeacians .courtier {
  position: absolute;
  bottom: 20%;
  width: 10%;
  height: 25%;
  background: radial-gradient(ellipse 70% 50% at 50% 40%, #2a1a0e 0%, #0e0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: are-courtier 7s ease-in-out infinite alternate;
}
.scn-arete-addresses-phaeacians .courtier-l { left: 25%; }
.scn-arete-addresses-phaeacians .courtier-r { right: 25%; animation-delay: -3.5s; }
.scn-arete-addresses-phaeacians .lamp-glow {
  position: absolute;
  top: 15%;
  left: 45%;
  width: 10%;
  height: 10%;
  background: radial-gradient(circle, #e8b050 0%, #a07020 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,120,30,.5), 0 0 80px 40px rgba(200,120,30,.2);
  animation: are-lamp 3s ease-in-out infinite alternate;
}
@keyframes are-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg) scale(1.02); } }
@keyframes are-courtier { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes are-lamp { 0% { opacity: .8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .85; transform: scale(.95); } }

.scn-echeneus-speaks {
  background:
    radial-gradient(ellipse 60% 50% at 50% 80%, #3a2810 0%, #1a0e04 70%, #0a0501 100%),
    linear-gradient(180deg, #0a0501 0%, #1a0e04 50%, #2a1a08 100%);
  position: relative;
  overflow: hidden;
}
.scn-echeneus-speaks .hearth-bg {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 60%;
  height: 50%;
  background: linear-gradient(180deg, #2a1808 0%, #1a0e04 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-echeneus-speaks .mantel {
  position: absolute;
  bottom: 48%;
  left: 22%;
  width: 56%;
  height: 6%;
  background: #3a2010;
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-echeneus-speaks .fire-glow {
  position: absolute;
  bottom: 15%;
  left: 40%;
  width: 20%;
  height: 30%;
  background: radial-gradient(ellipse 80% 60% at 50% 100%, #c06030 0%, #a04010 40%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  animation: ech-fire 4s ease-in-out infinite alternate;
}
.scn-echeneus-speaks .figure-echeneus {
  position: absolute;
  bottom: 22%;
  left: 35%;
  width: 14%;
  height: 35%;
  background: radial-gradient(ellipse 80% 60% at 50% 40%, #2a1a08 0%, #0e0501 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ech-figure 6s ease-in-out infinite;
}
.scn-echeneus-speaks .staff {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 3%;
  height: 40%;
  background: linear-gradient(180deg, #3a2010, #1a0e04);
  border-radius: 10%;
  transform: rotate(8deg);
  transform-origin: bottom center;
  animation: ech-staff 5s ease-in-out infinite alternate;
}
.scn-echeneus-speaks .table-round {
  position: absolute;
  bottom: 15%;
  right: 20%;
  width: 20%;
  height: 10%;
  background: #3a2412;
  border-radius: 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
}
.scn-echeneus-speaks .cup {
  position: absolute;
  bottom: 18%;
  right: 27%;
  width: 4%;
  height: 6%;
  background: #5a3a1a;
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 0 4px #2a1808;
  animation: ech-cup 8s ease-in-out infinite;
}
.scn-echeneus-speaks .chair {
  position: absolute;
  bottom: 10%;
  right: 16%;
  width: 10%;
  height: 20%;
  background: linear-gradient(180deg, #3a2010, #1a0e04);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
}
@keyframes ech-fire { 0%,100% { opacity: .5; transform: scale(1) translateY(0); } 50% { opacity: .8; transform: scale(1.15) translateY(-5px); } }
@keyframes ech-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg) scale(1.02); } }
@keyframes ech-staff { 0% { transform: rotate(6deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(6deg); } }
@keyframes ech-cup { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px) rotate(2deg); } }

.scn-ulysses-agrees-to-stay {
  background:
    radial-gradient(ellipse 50% 40% at 50% 70%, #6a4a20 0%, #3a2810 60%, #1a0e05 100%),
    linear-gradient(180deg, #1a0e05 0%, #2a1a08 40%, #0e0502 100%);
  position: relative;
  overflow: hidden;
}
.scn-ulysses-agrees-to-stay .curtain-l,
.scn-ulysses-agrees-to-stay .curtain-r {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 15%;
  background: linear-gradient(90deg, #5c3a18 0%, #3a2010 50%, #2a1408 100%);
  border-radius: 0 30% 30% 0 / 0 20% 20% 0;
  animation: uly-curtain 12s ease-in-out infinite alternate;
}
.scn-ulysses-agrees-to-stay .curtain-l { left: 0; transform-origin: left center; }
.scn-ulysses-agrees-to-stay .curtain-r { right: 0; border-radius: 30% 0 0 30% / 20% 0 0 20%; transform-origin: right center; animation-delay: -6s; }
.scn-ulysses-agrees-to-stay .figure-odysseus {
  position: absolute;
  bottom: 24%;
  left: 40%;
  width: 16%;
  height: 36%;
  background: radial-gradient(ellipse 70% 50% at 50% 40%, #3a2010 0%, #1a0e04 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: uly-odysseus 5s ease-in-out infinite;
}
.scn-ulysses-agrees-to-stay .chair-throne {
  position: absolute;
  bottom: 10%;
  left: 62%;
  width: 18%;
  height: 22%;
  background: linear-gradient(180deg, #4c2e12 0%, #2a180a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-ulysses-agrees-to-stay .table-small {
  position: absolute;
  bottom: 12%;
  left: 25%;
  width: 14%;
  height: 8%;
  background: #3a2410;
  border-radius: 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
}
.scn-ulysses-agrees-to-stay .wine-cup {
  position: absolute;
  bottom: 16%;
  left: 27%;
  width: 3%;
  height: 5%;
  background: linear-gradient(180deg, #8a6020 0%, #5a3a10 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 0 4px #2a1808;
  animation: uly-cup 6s ease-in-out infinite alternate;
}
.scn-ulysses-agrees-to-stay .lamp-amber {
  position: absolute;
  top: 12%;
  left: 45%;
  width: 10%;
  height: 12%;
  background: radial-gradient(circle, #e8a840 0%, #c08020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(200,130,30,.5), 0 0 60px 30px rgba(200,130,30,.2);
  animation: uly-lamp 3s ease-in-out infinite alternate;
}
@keyframes uly-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes uly-odysseus { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg) scale(1.02); } }
@keyframes uly-cup { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes uly-lamp { 0% { opacity: .8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.15); } 100% { opacity: .85; transform: scale(.95); } }

/* ulysses-denies-being-a-god */
.scn-ulysses-denies-being-a-god {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 40%, #c4b494 100%),
              radial-gradient(ellipse at 30% 50%, #fff8e0 0%, transparent 60%);
}
.scn-ulysses-denies-being-a-god .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%);
  animation: u1-wall 15s ease-in-out infinite alternate;
}
.scn-ulysses-denies-being-a-god .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 20% 20% 0 0/40% 40% 0 0;
}
.scn-ulysses-denies-being-a-god .column-l {
  position: absolute; bottom: 20%; left: 15%; width: 12px; height: 60%;
  background: linear-gradient(90deg, #c8b898 0%, #e0d0b0 50%, #c8b898 100%);
  border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.15);
  animation: u1-column 20s ease-in-out infinite;
}
.scn-ulysses-denies-being-a-god .column-r {
  position: absolute; bottom: 20%; right: 15%; width: 12px; height: 60%;
  background: linear-gradient(90deg, #c8b898 0%, #e0d0b0 50%, #c8b898 100%);
  border-radius: 4px; box-shadow: -2px 0 6px rgba(0,0,0,0.15);
  animation: u1-column 20s ease-in-out infinite reverse;
}
.scn-ulysses-denies-being-a-god .throne {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 40px;
  background: linear-gradient(180deg, #b08060 0%, #805040 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: u1-throne 8s ease-in-out infinite;
}
.scn-ulysses-denies-being-a-god .figure-ul {
  position: absolute; bottom: 20%; left: 32%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: u1-figure-ul 6s ease-in-out infinite;
}
.scn-ulysses-denies-being-a-god .figure-king {
  position: absolute; bottom: 22%; left: 48%; width: 26px; height: 38px;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: u1-figure-king 9s ease-in-out infinite;
}
.scn-ulysses-denies-being-a-god .light-beam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 80%;
  background: linear-gradient(180deg, rgba(255,248,224,0.6) 0%, rgba(255,248,224,0) 100%);
  filter: blur(10px);
  animation: u1-light 12s ease-in-out infinite alternate;
}
.scn-ulysses-denies-being-a-god .lamp {
  position: absolute; bottom: 70%; left: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #c08030 60%);
  border-radius: 50%; box-shadow: 0 0 20px 6px #e0a040;
  animation: u1-lamp 4s ease-in-out infinite;
}
@keyframes u1-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes u1-column { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes u1-throne { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes u1-figure-ul { 0%, 100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(3deg) translateY(-1px); } 60% { transform: rotate(-2deg) translateY(0); } }
@keyframes u1-figure-king { 0%, 100% { transform: rotate(0deg) translateY(0); } 40% { transform: rotate(-2deg) translateY(-1px); } 80% { transform: rotate(1deg) translateY(0); } }
@keyframes u1-light { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes u1-lamp { 0%, 100% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.15); opacity: 1; } }

/* all-approve */
.scn-all-approve {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 40%, #c4b494 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 80%);
}
.scn-all-approve .wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #e0d0b0 0%, #c8b898 100%);
  animation: u2-wall 20s ease-in-out infinite alternate;
}
.scn-all-approve .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #b09878 0%, #806848 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-all-approve .bench {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20%;
  background: repeating-linear-gradient(90deg, #a08868 0px, #a08868 18px, transparent 18px, transparent 22px);
}
.scn-all-approve .figure-speaker {
  position: absolute; bottom: 17%; left: 50%; transform: translateX(-50%);
  width: 22px; height: 34px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: u2-speaker 5s ease-in-out infinite;
}
.scn-all-approve .lamp-hanging {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 10px; height: 14px;
  background: linear-gradient(180deg, #c08040 0%, #805020 100%);
  border-radius: 4px 4px 6px 6px;
  box-shadow: 0 0 24px 8px rgba(192,128,64,0.4);
  animation: u2-lamp 6s ease-in-out infinite;
}
.scn-all-approve .arch {
  position: absolute; top: 0; left: 30%; width: 40%; height: 60%;
  border: 4px solid #b09878; border-bottom: none;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
}
.scn-all-approve .pillar-l {
  position: absolute; bottom: 15%; left: 12%; width: 10px; height: 70%;
  background: linear-gradient(90deg, #a89070 0%, #c8b898 50%, #a89070 100%);
  border-radius: 3px;
  animation: u2-pillar 30s ease-in-out infinite;
}
.scn-all-approve .pillar-r {
  position: absolute; bottom: 15%; right: 12%; width: 10px; height: 70%;
  background: linear-gradient(90deg, #a89070 0%, #c8b898 50%, #a89070 100%);
  border-radius: 3px;
  animation: u2-pillar 30s ease-in-out infinite reverse;
}
@keyframes u2-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes u2-speaker { 0%, 100% { transform: translateX(-50%) rotate(0deg) translateY(0); } 25% { transform: translateX(-48%) rotate(5deg) translateY(-2px); } 75% { transform: translateX(-52%) rotate(-5deg) translateY(-1px); } }
@keyframes u2-lamp { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes u2-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } 100% { transform: scaleY(1); } }

/* ulysses-tells-his-story-to-arete */
.scn-ulysses-tells-his-story-to-arete {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #4a2a1a 100%),
              radial-gradient(ellipse at 60% 40%, #c06030 0%, transparent 70%);
}
.scn-ulysses-tells-his-story-to-arete .wall {
  position: absolute; inset: 0 0 18% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 50%, #3a2a1a 100%);
  animation: u3-wall 10s ease-in-out infinite alternate;
}
.scn-ulysses-tells-his-story-to-arete .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 0 0 / 20% 20% 0 0;
}
.scn-ulysses-tells-his-story-to-arete .throne-arete {
  position: absolute; bottom: 20%; left: 60%; transform: translateX(-50%);
  width: 60px; height: 36px;
  background: linear-gradient(180deg, #7a5040 0%, #4a3020 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: u3-throne 4s ease-in-out infinite;
}
.scn-ulysses-tells-his-story-to-arete .figure-ul-true {
  position: absolute; bottom: 18%; left: 35%; width: 22px; height: 36px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: u3-ul-true 3s ease-in-out infinite;
}
.scn-ulysses-tells-his-story-to-arete .torch {
  position: absolute; bottom: 55%; left: 25%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #603020 0%, #402010 100%);
  border-radius: 2px;
  animation: u3-torch 1.5s ease-in-out infinite;
}
.scn-ulysses-tells-his-story-to-arete .torch::after {
  content: ''; position: absolute; top: -10px; left: -6px; width: 20px; height: 16px;
  background: radial-gradient(circle, #ff8040 0%, #ff6020 40%, transparent 70%);
  border-radius: 50%;
  animation: u3-flame 1.2s ease-in-out infinite;
}
.scn-ulysses-tells-his-story-to-arete .shadow-cast {
  position: absolute; bottom: 18%; left: 32%; width: 30px; height: 12px;
  background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(4px);
  animation: u3-shadow 3s ease-in-out infinite;
}
.scn-ulysses-tells-his-story-to-arete .chandelier {
  position: absolute; top: 2%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 20px;
  border: 2px solid #806040; border-radius: 0 0 50% 50%;
  box-shadow: 0 0 40px 10px rgba(192,96,48,0.3);
  animation: u3-chandelier 5s ease-in-out infinite;
}
@keyframes u3-wall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes u3-throne { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes u3-ul-true { 0%, 100% { transform: rotate(0deg) translateY(0); } 20% { transform: rotate(4deg) translateY(-2px); } 40% { transform: rotate(-3deg) translateY(0); } 60% { transform: rotate(5deg) translateY(-1px); } 80% { transform: rotate(-2deg) translateY(0); } }
@keyframes u3-torch { 0% { transform: scaleY(1) translateX(0); } 25% { transform: scaleY(1.02) translateX(1px); } 75% { transform: scaleY(0.98) translateX(-1px); } 100% { transform: scaleY(1) translateX(0); } }
@keyframes u3-flame { 0%, 100% { transform: scale(1) translateX(0); opacity: 0.9; } 25% { transform: scale(1.2) translateX(2px); opacity: 1; } 75% { transform: scale(0.9) translateX(-2px); opacity: 0.8; } }
@keyframes u3-shadow { 0%, 100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.2); } }
@keyframes u3-chandelier { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }

/* ulysses-tells-of-calypso */
.scn-ulysses-tells-of-calypso {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #2a1a0a 100%),
              radial-gradient(ellipse at 70% 60%, #804020 0%, transparent 70%);
}
.scn-ulysses-tells-of-calypso .wall-deep {
  position: absolute; inset: 0 0 18% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  animation: u4-wall 15s ease-in-out infinite alternate;
}
.scn-ulysses-tells-of-calypso .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
.scn-ulysses-tells-of-calypso .figure-ul-memory {
  position: absolute; bottom: 18%; left: 30%; width: 22px; height: 36px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: u4-ul-memory 5s ease-in-out infinite;
}
.scn-ulysses-tells-of-calypso .figure-calypso {
  position: absolute; bottom: 18%; left: 55%; width: 20px; height: 34px;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: u4-calypso 7s ease-in-out infinite;
}
.scn-ulysses-tells-of-calypso .window-cave {
  position: absolute; top: 5%; right: 12%; width: 40px; height: 50px;
  background: radial-gradient(circle, #c08040 0%, #804020 60%, transparent 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: inset 0 0 20px rgba(192,128,64,0.3), 0 0 40px rgba(192,128,64,0.2);
  animation: u4-window 8s ease-in-out infinite alternate;
}
.scn-ulysses-tells-of-calypso .teardrop {
  position: absolute; bottom: 40%; left: 38%; width: 6px; height: 10px;
  background: linear-gradient(180deg, rgba(200,180,160,0.6) 0%, rgba(200,180,160,0) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: u4-teardrop 4s ease-in-out infinite;
}
.scn-ulysses-tells-of-calypso .mist {
  position: absolute; top: 20%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse, rgba(200,180,160,0.15) 0%, transparent 70%);
  filter: blur(12px);
  animation: u4-mist 25s ease-in-out infinite alternate;
}
@keyframes u4-wall { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes u4-ul-memory { 0%, 100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(4deg) translateY(-2px); } 70% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes u4-calypso { 0%, 100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 75% { transform: rotate(2deg) translateY(-1px); } }
@keyframes u4-window { 0% { opacity: 0.5; transform: scale(0.95); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes u4-teardrop { 0%, 100% { transform: translateY(0) scaleY(1); opacity: 0; } 30% { opacity: 0.8; } 50% { transform: translateY(-15px) scaleY(1.2); opacity: 1; } 80% { opacity: 0.2; } }
@keyframes u4-mist { 0% { transform: translateX(-10px) scale(1); opacity: 0.3; } 50% { transform: translateX(10px) scale(1.1); opacity: 0.6; } 100% { transform: translateX(-5px) scale(0.95); opacity: 0.4; } }

/* footnote-waste-of-substance */
.scn-footnote-waste-of-substance {
  background: linear-gradient(180deg, #1a1310 0%, #2c1f18 40%, #3a2a1e 100%), radial-gradient(ellipse at 60% 75%, #4a3520 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-footnote-waste-of-substance .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2c1f18 0%, #1a1310 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
}
.scn-footnote-waste-of-substance .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f1813 100%);
  border-top: 2px solid #4a3520;
}
.scn-footnote-waste-of-substance .desk {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 50px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1e 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: fws-desk 12s ease-in-out infinite;
}
.scn-footnote-waste-of-substance .lamp {
  position: absolute; bottom: 36%; left: 48%; transform: translateX(-50%);
  width: 20px; height: 26px;
  background: radial-gradient(ellipse at 50% 0%, #c08050 0%, #4a3520 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 8px rgba(192,128,80,.4), 0 0 60px 15px rgba(192,128,80,.2);
  animation: fws-glow 4s ease-in-out infinite alternate;
}
.scn-footnote-waste-of-substance .scroll {
  position: absolute; bottom: 22%; left: 40%; transform: translateX(-50%);
  width: 40px; height: 14px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,.6);
  animation: fws-sway 6s ease-in-out infinite;
}
.scn-footnote-waste-of-substance .quill {
  position: absolute; bottom: 24%; left: 62%;
  width: 2px; height: 40px;
  background: linear-gradient(180deg, #6a5030 0%, #3a2a1e 100%);
  transform: rotate(15deg);
  transform-origin: bottom center;
  border-radius: 0 0 50% 50%;
  box-shadow: 0 0 4px rgba(0,0,0,.5);
  animation: fws-quill 8s ease-in-out infinite alternate;
}
.scn-footnote-waste-of-substance .shadow {
  position: absolute; bottom: 14%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: fws-shade 10s ease-in-out infinite alternate;
}
@keyframes fws-desk {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes fws-glow {
  0% { opacity: .8; box-shadow: 0 0 20px 6px rgba(192,128,80,.3), 0 0 40px 12px rgba(192,128,80,.15); }
  50% { opacity: 1; box-shadow: 0 0 35px 12px rgba(192,128,80,.5), 0 0 70px 20px rgba(192,128,80,.3); }
  100% { opacity: .85; box-shadow: 0 0 25px 8px rgba(192,128,80,.35), 0 0 50px 15px rgba(192,128,80,.2); }
}
@keyframes fws-sway {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes fws-quill {
  0% { transform: rotate(12deg) scaleY(1); }
  50% { transform: rotate(18deg) scaleY(1.05); }
  100% { transform: rotate(14deg) scaleY(1); }
}
@keyframes fws-shade {
  0% { opacity: .6; transform: translateX(-50%) scaleX(1); }
  50% { opacity: .8; transform: translateX(-50%) scaleX(1.02); }
  100% { opacity: .65; transform: translateX(-50%) scaleX(.98); }
}

/* footnote-orsothyra */
.scn-footnote-orsothyra {
  background: linear-gradient(180deg, #1a1412 0%, #2a1e1a 50%, #3a2a24 100%), radial-gradient(ellipse at 50% 80%, #3a2a24 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-footnote-orsothyra .wall-curve {
  position: absolute; inset: 0 0 30% 0;
  background: radial-gradient(ellipse at 50% 0%, #2a1e1a 0%, #1a1412 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
}
.scn-footnote-orsothyra .floor-stone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a24 0%, #1f1815 100%);
  border-top: 3px solid #4a3528;
}
.scn-footnote-orsothyra .trapdoor {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 40px;
  background: linear-gradient(180deg, #4a3528 0%, #2a1e1a 100%);
  border: 2px solid #5a4030;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: ors-trap 15s ease-in-out infinite alternate;
}
.scn-footnote-orsothyra .window-niche {
  position: absolute; top: 12%; left: 20%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e1a 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.7);
  animation: ors-window 8s ease-in-out infinite alternate;
}
.scn-footnote-orsothyra .pallet {
  position: absolute; bottom: 22%; left: 65%;
  width: 70px; height: 30px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: ors-bed 12s ease-in-out infinite;
}
.scn-footnote-orsothyra .ladder {
  position: absolute; bottom: 30%; left: 10%;
  width: 6px; height: 80px;
  background: linear-gradient(180deg, #4a3528 0%, #2a1e1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: ors-ladder 18s ease-in-out infinite alternate;
}
@keyframes ors-trap {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes ors-window {
  0% { opacity: .7; box-shadow: inset 0 0 15px rgba(0,0,0,.5), 0 0 10px rgba(80,60,40,.1); }
  50% { opacity: 1; box-shadow: inset 0 0 25px rgba(0,0,0,.7), 0 0 20px rgba(80,60,40,.3); }
  100% { opacity: .8; box-shadow: inset 0 0 18px rgba(0,0,0,.6), 0 0 12px rgba(80,60,40,.15); }
}
@keyframes ors-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ors-ladder {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}

/* footnote-greek-phrase */
.scn-footnote-greek-phrase {
  background: linear-gradient(180deg, #1c1612 0%, #2e221c 50%, #3f2e26 100%), radial-gradient(ellipse at 40% 60%, #3f2e26 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-footnote-greek-phrase .wall-shelf {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2e221c 0%, #1c1612 100%);
  box-shadow: inset 0 40px 80px rgba(0,0,0,.6);
}
.scn-footnote-greek-phrase .desk {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 55px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1e 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: gph-desk 14s ease-in-out infinite;
}
.scn-footnote-greek-phrase .book-stack {
  position: absolute; bottom: 30%; left: 35%; transform: translateX(-50%);
  width: 50px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3528 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: gph-stack 16s ease-in-out infinite alternate;
}
.scn-footnote-greek-phrase .candle {
  position: absolute; bottom: 26%; left: 60%; transform: translateX(-50%);
  width: 10px; height: 30px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(192,128,80,.5);
  animation: gph-flame 3s ease-in-out infinite alternate;
}
.scn-footnote-greek-phrase .inkwell {
  position: absolute; bottom: 22%; left: 42%; transform: translateX(-50%);
  width: 16px; height: 18px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1e 0%, #1a1310 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.6);
  animation: gph-ink 10s ease-in-out infinite alternate;
}
.scn-footnote-greek-phrase .parchment {
  position: absolute; bottom: 22%; left: 70%;
  width: 50px; height: 8px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: gph-parch 12s ease-in-out infinite;
}
@keyframes gph-desk {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes gph-stack {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes gph-flame {
  0% { opacity: .8; box-shadow: 0 0 15px 4px rgba(192,128,80,.4), 0 0 30px 10px rgba(192,128,80,.2); }
  50% { opacity: 1; box-shadow: 0 0 25px 8px rgba(192,128,80,.6), 0 0 50px 18px rgba(192,128,80,.35); }
  100% { opacity: .85; box-shadow: 0 0 18px 5px rgba(192,128,80,.45), 0 0 36px 12px rgba(192,128,80,.25); }
}
@keyframes gph-ink {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.03); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes gph-parch {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}

/* footnote-hanging-maids */
.scn-footnote-hanging-maids {
  background: linear-gradient(180deg, #141210 0%, #1e1814 40%, #2c221c 100%), radial-gradient(ellipse at 50% 20%, #2c221c 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-footnote-hanging-maids .ceiling-beam {
  position: absolute; top: 5%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(180deg, #4a3528 0%, #2a1e1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: hma-beam 20s ease-in-out infinite alternate;
}
.scn-footnote-hanging-maids .rope-loop {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 3px; height: 40px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f1815 100%);
  border-radius: 1px;
  box-shadow: 0 0 4px rgba(0,0,0,.4);
  animation: hma-rope 5s ease-in-out infinite alternate;
}
.scn-footnote-hanging-maids .wall-dark {
  position: absolute; inset: 15% 0 30% 0;
  background: linear-gradient(180deg, #1e1814 0%, #141210 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.7);
}
.scn-footnote-hanging-maids .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2c221c 0%, #141210 100%);
  border-top: 3px solid #3a2a1e;
}
.scn-footnote-hanging-maids .stool {
  position: absolute; bottom: 18%; left: 45%;
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3528 0%, #2a1e1a 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: hma-stool 8s ease-in-out infinite alternate;
}
.scn-footnote-hanging-maids .bucket {
  position: absolute; bottom: 15%; left: 65%;
  width: 24px; height: 18px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1e 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: hma-bucket 12s ease-in-out infinite;
}
@keyframes hma-beam {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hma-rope {
  0% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes hma-stool {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes hma-bucket {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(4deg); }
  100% { transform: rotate(-2deg); }
}

.scn-jove-promises-vengeance {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #3a2a5e 30%, #6a4a3e 70%, #d4a050 100%),
    radial-gradient(ellipse at 70% 30%, #f0d090 0%, transparent 50%);
}

.scn-jove-promises-vengeance .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #4a3a5e 40%, transparent 100%);
  animation: jpv-sky 14s ease-in-out infinite alternate;
}

.scn-jove-promises-vengeance .sun {
  position: absolute;
  top: 12%;
  right: 20%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #f0c860 40%, #d08030 70%, transparent 90%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,200,80,0.5);
  animation: jpv-sunpulse 6s ease-in-out infinite alternate;
}

.scn-jove-promises-vengeance .cloud-jpv-1 {
  position: absolute;
  top: 8%;
  left: 10%;
  width: 120px;
  height: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(60,40,20,0.6) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: jpv-drift1 40s linear infinite;
}

.scn-jove-promises-vengeance .cloud-jpv-2 {
  position: absolute;
  top: 18%;
  right: 10%;
  width: 90px;
  height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(40,30,15,0.5) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: jpv-drift2 55s linear infinite reverse;
}

.scn-jove-promises-vengeance .jove-figure {
  position: absolute;
  bottom: 35%;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 60px;
  background: radial-gradient(ellipse 60% 50% at 50% 30%, #c0a070 0%, #4a3020 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: jpv-figure 5s ease-in-out infinite;
}

.scn-jove-promises-vengeance .thunderbolt {
  position: absolute;
  bottom: 45%;
  left: 55%;
  width: 4px;
  height: 90px;
  background: linear-gradient(180deg, #ffe080 0%, #ffaa00 40%, #ff6600 70%, transparent 100%);
  clip-path: polygon(50% 0%, 60% 30%, 50% 40%, 70% 60%, 50% 70%, 65% 100%, 40% 70%, 50% 60%, 30% 40%, 40% 30%);
  filter: drop-shadow(0 0 8px #ffaa00);
  animation: jpv-bolt 2s ease-in-out infinite;
}

.scn-jove-promises-vengeance .lightning-flash {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 55% 45%, rgba(255,255,200,0.15) 0%, transparent 70%);
  animation: jpv-flash 2.5s ease-in-out infinite alternate;
}

@keyframes jpv-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

@keyframes jpv-sunpulse {
  0% { transform: scale(0.95) rotate(0deg); box-shadow: 0 0 40px 10px rgba(240,200,80,0.4); }
  50% { transform: scale(1.05) rotate(5deg); box-shadow: 0 0 80px 30px rgba(240,200,80,0.7); }
  100% { transform: scale(1) rotate(0deg); box-shadow: 0 0 60px 20px rgba(240,200,80,0.5); }
}

@keyframes jpv-drift1 {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(120vw); }
}

@keyframes jpv-drift2 {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

@keyframes jpv-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-48%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(2deg); }
  75% { transform: translateX(-52%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}

@keyframes jpv-bolt {
  0% { opacity: 0; transform: scaleY(0.5) translateY(20px); }
  10% { opacity: 1; transform: scaleY(1) translateY(0); }
  20% { opacity: 0.3; transform: scaleY(0.8) translateY(5px); }
  30% { opacity: 0.8; transform: scaleY(1.1) translateY(-2px); }
  40% { opacity: 0; transform: scaleY(0.6) translateY(15px); }
  100% { opacity: 0; }
}

@keyframes jpv-flash {
  0% { opacity: 0.1; }
  50% { opacity: 0.5; }
  100% { opacity: 0.15; }
}

.scn-departure-thrinacia {
  background:
    linear-gradient(180deg, #1a2030 0%, #2a4050 30%, #6080a0 60%, #c0d8e0 80%, #e8f0e8 100%),
    radial-gradient(ellipse at 30% 80%, #f0e8b0 0%, transparent 40%);
}

.scn-departure-thrinacia .sea {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 55%;
  background: linear-gradient(180deg, #3a6080 0%, #2a5070 40%, #1a3a5a 100%);
  animation: dt-sea 12s ease-in-out infinite alternate;
}

.scn-departure-thrinacia .ship-hull {
  position: absolute;
  bottom: 20%;
  left: 38%;
  width: 80px;
  height: 30px;
  background: linear-gradient(180deg, #5a3020 0%, #3a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  transform-origin: bottom center;
  animation: dt-ship 8s ease-in-out infinite;
}

.scn-departure-thrinacia .sail-main {
  position: absolute;
  bottom: 35%;
  left: 42%;
  width: 30px;
  height: 50px;
  background: radial-gradient(ellipse 100% 100% at 50% 100%, #e8dcc8 0%, #c8b098 100%);
  border-radius: 10% 10% 20% 20%;
  transform-origin: bottom center;
  animation: dt-sail 10s ease-in-out infinite alternate;
}

.scn-departure-thrinacia .sail-jib {
  position: absolute;
  bottom: 30%;
  left: 32%;
  width: 20px;
  height: 35px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c0a8 100%);
  border-radius: 0 30% 50% 0;
  transform-origin: bottom left;
  animation: dt-sail 10s ease-in-out infinite alternate-reverse;
}

.scn-departure-thrinacia .mast {
  position: absolute;
  bottom: 20%;
  left: 43%;
  width: 4px;
  height: 80px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a1a0a 100%);
  border-radius: 2px;
  animation: dt-mast 8s ease-in-out infinite;
}

.scn-departure-thrinacia .cows {
  position: absolute;
  bottom: 18%;
  left: 10%;
  width: 30px;
  height: 18px;
  background: linear-gradient(180deg, #c8a080 0%, #8a6040 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 20px -2px 0 #b09070, 40px 0 0 #a08060;
  animation: dt-cows 15s ease-in-out infinite;
}

.scn-departure-thrinacia .wave-dt-1 {
  position: absolute;
  bottom: 12%;
  left: 0;
  right: 0;
  height: 20px;
  background: linear-gradient(180deg, transparent 0%, #2a6080 40%, #1a4a6a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  filter: blur(2px);
  animation: dt-wave1 8s ease-in-out infinite alternate;
}

.scn-departure-thrinacia .wave-dt-2 {
  position: absolute;
  bottom: 8%;
  left: 0;
  right: 0;
  height: 30px;
  background: linear-gradient(180deg, transparent 0%, #4a7090 50%, #2a5070 100%);
  border-radius: 30% 70% 0 0 / 80% 80% 0 0;
  filter: blur(3px);
  animation: dt-wave2 10s ease-in-out infinite alternate;
}

.scn-departure-thrinacia .horizon-glow {
  position: absolute;
  bottom: 55%;
  left: 0;
  right: 0;
  height: 10%;
  background: linear-gradient(180deg, rgba(240,220,160,0.4) 0%, transparent 100%);
  animation: dt-glow 6s ease-in-out infinite alternate;
}

@keyframes dt-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}

@keyframes dt-ship {
  0% { transform: translate(0, 0) rotate(-1deg); }
  25% { transform: translate(2px, -1px) rotate(0deg); }
  50% { transform: translate(0, 1px) rotate(1deg); }
  75% { transform: translate(-2px, -1px) rotate(0deg); }
  100% { transform: translate(0, 0) rotate(-1deg); }
}

@keyframes dt-sail {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.04) rotate(2deg); }
  100% { transform: scaleY(0.98) rotate(-2deg); }
}

@keyframes dt-mast {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}

@keyframes dt-cows {
  0% { opacity: 0.8; transform: translate(0,0); }
  50% { opacity: 1; transform: translate(3px,-2px); }
  100% { opacity: 0.7; transform: translate(-2px,1px); }
}

@keyframes dt-wave1 {
  0% { transform: translateX(-10px) scaleY(0.9); }
  50% { transform: translateX(5px) scaleY(1.1); }
  100% { transform: translateX(-5px) scaleY(0.95); }
}

@keyframes dt-wave2 {
  0% { transform: translateX(5px) scaleY(1.05); }
  50% { transform: translateX(-10px) scaleY(0.9); }
  100% { transform: translateX(0px) scaleY(1); }
}

@keyframes dt-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

.scn-shipwreck {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 30%, #2a1a1a 70%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, #8a3a1a 0%, transparent 50%);
}

.scn-shipwreck .dark-sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 50%, #2a1a1a 100%);
  animation: sw-sky 10s ease-in-out infinite alternate;
}

.scn-shipwreck .lightning-bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 40% 30%, rgba(255,200,100,0.3) 0%, transparent 60%);
  animation: sw-flash 2s ease-in-out infinite;
}

.scn-shipwreck .ship-wreck {
  position: absolute;
  bottom: 35%;
  left: 45%;
  width: 60px;
  height: 25px;
  background: linear-gradient(180deg, #6a4020 0%, #3a2010 100%);
  border-radius: 0 0 40% 40% / 0 0 80% 80%;
  transform-origin: bottom center;
  animation: sw-shipwreck 4s ease-in-out infinite;
}

.scn-shipwreck .flames {
  position: absolute;
  bottom: 45%;
  left: 48%;
  width: 20px;
  height: 30px;
  background: radial-gradient(ellipse 60% 100% at 50% 100%, #ff6600 0%, #ff4400 50%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(3px);
  box-shadow: 0 0 30px 10px rgba(255,100,0,0.6);
  animation: sw-fire 0.8s ease-in-out infinite alternate;
}

.scn-shipwreck .men-falling {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 10px;
  height: 14px;
  background: radial-gradient(ellipse 60% 60% at 50% 30%, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 30px -10px 0 #2a1a0a, 60px 5px 0 #3a2a1a, -20px 15px 0 #1a0a0a;
  animation: sw-fall 3s ease-in-out infinite;
}

.scn-shipwreck .splashes {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 40px;
  height: 10px;
  background: radial-gradient(ellipse 100% 100% at 50% 0%, rgba(200,220,230,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  box-shadow: 60px -5px 0 rgba(200,220,230,0.4), -30px 10px 0 rgba(200,220,230,0.3);
  animation: sw-splash 2s ease-in-out infinite alternate;
}

.scn-shipwreck .debris {
  position: absolute;
  bottom: 15%;
  left: 40%;
  width: 8px;
  height: 3px;
  background: #5a3a20;
  border-radius: 20%;
  box-shadow: 20px 5px 0 #4a2a10, -15px -3px 0 #6a4a30;
  animation: sw-debris 6s linear infinite;
}

.scn-shipwreck .ring-smoke {
  position: absolute;
  top: 20%;
  left: 50%;
  transform: translateX(-50%);
  width: 100px;
  height: 100px;
  background: radial-gradient(circle, rgba(60,40,30,0.3) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(15px);
  animation: sw-smoke 12s ease-in-out infinite alternate;
}

@keyframes sw-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}

@keyframes sw-flash {
  0% { opacity: 0; }
  10% { opacity: 0.8; }
  20% { opacity: 0; }
  30% { opacity: 0.4; }
  40% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes sw-shipwreck {
  0% { transform: rotate(0deg) translate(0,0); }
  25% { transform: rotate(2deg) translate(2px,-1px); }
  50% { transform: rotate(0deg) translate(0,1px); }
  75% { transform: rotate(-2deg) translate(-2px,-1px); }
  100% { transform: rotate(0deg) translate(0,0); }
}

@keyframes sw-fire {
  0% { transform: scaleY(0.8) translateY(2px); opacity: 0.9; }
  50% { transform: scaleY(1.2) translateY(-3px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(0); opacity: 0.7; }
}

@keyframes sw-fall {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.8; }
  50% { transform: translateY(10px) rotate(15deg); opacity: 0.5; }
  100% { transform: translateY(20px) rotate(30deg); opacity: 0; }
}

@keyframes sw-splash {
  0% { transform: scaleY(0.8) translate(0,0); opacity: 0.6; }
  50% { transform: scaleY(1.2) translate(3px,-2px); opacity: 0.9; }
  100% { transform: scaleY(0.9) translate(-2px,1px); opacity: 0.5; }
}

@keyframes sw-debris {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(10px,-5px) rotate(45deg); }
  50% { transform: translate(20px,-10px) rotate(90deg); }
  75% { transform: translate(30px,-5px) rotate(135deg); }
  100% { transform: translate(40px,0) rotate(180deg); }
}

@keyframes sw-smoke {
  0% { transform: translateX(-50%) scale(0.9); opacity: 0.4; }
  50% { transform: translateX(-50%) scale(1.2); opacity: 0.7; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.5; }
}

.scn-ulysses-escapes-charybdis {
  background:
    linear-gradient(180deg, #050510 0%, #0a1530 30%, #0d1a2e 60%, #0f1520 100%),
    radial-gradient(ellipse at 50% 80%, #0a2a3a 0%, transparent 70%);
}

.scn-ulysses-escapes-charybdis .night-water {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 70%;
  background: linear-gradient(180deg, #0a1a2a 0%, #0d2035 40%, #152a40 100%);
  animation: uec-water 15s ease-in-out infinite alternate;
}

.scn-ulysses-escapes-charybdis .whirlpool {
  position: absolute;
  bottom: 15%;
  left: 50%;
  transform: translateX(-50%);
  width: 140px;
  height: 140px;
  background: radial-gradient(circle, #0a2535 0%, #0f3040 40%, #1a4050 70%, transparent 80%);
  border-radius: 50%;
  filter: blur(2px);
  animation: uec-whirlpool 6s ease-in-out infinite alternate;
}

.scn-ulysses-escapes-charybdis .charybdis-center {
  position: absolute;
  bottom: 18%;
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 30px;
  background: radial-gradient(circle, #152a3a 0%, #0a151a 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(10,30,50,0.8);
  animation: uec-center 3s ease-in-out infinite alternate;
}

.scn-ulysses-escapes-charybdis .ulysses-figure {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 16px;
  height: 20px;
  background: radial-gradient(ellipse 60% 50% at 50% 30%, #2a1a10 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: uec-figure 8s ease-in-out infinite;
}

.scn-ulysses-escapes-charybdis .raft-debris {
  position: absolute;
  bottom: 32%;
  left: 33%;
  width: 30px;
  height: 6px;
  background: linear-gradient(90deg, #3a2010 0%, #5a3a20 100%);
  border-radius: 10% 20% 20% 10%;
  transform-origin: center;
  animation: uec-raft 6s ease-in-out infinite;
}

.scn-ulysses-escapes-charybdis .wave-uec-1 {
  position: absolute;
  bottom: 10%;
  left: 0;
  right: 0;
  height: 25px;
  background: linear-gradient(180deg, transparent 0%, #1a2a3a 50%, #0d1a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 80% 0 0;
  filter: blur(3px);
  animation: uec-wave1 7s ease-in-out infinite alternate;
}

.scn-ulysses-escapes-charybdis .wave-uec-2 {
  position: absolute;
  bottom: 5%;
  left: 0;
  right: 0;
  height: 30px;
  background: linear-gradient(180deg, transparent 0%, #2a4050 50%, #1a3040 100%);
  border-radius: 30% 70% 0 0 / 70% 70% 0 0;
  filter: blur(4px);
  animation: uec-wave2 9s ease-in-out infinite alternate-reverse;
}

.scn-ulysses-escapes-charybdis .spray {
  position: absolute;
  bottom: 15%;
  left: 55%;
  width: 40px;
  height: 20px;
  background: radial-gradient(ellipse 100% 100% at 50% 0%, rgba(180,210,230,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: uec-spray 4s ease-in-out infinite alternate;
}

@keyframes uec-water {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}

@keyframes uec-whirlpool {
  0% { transform: translateX(-50%) rotate(0deg) scale(1); }
  50% { transform: translateX(-50%) rotate(180deg) scale(1.04); }
  100% { transform: translateX(-50%) rotate(360deg) scale(0.98); }
}

@keyframes uec-center {
  0% { transform: translateX(-50%) scale(0.9); opacity: 0.7; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.8; }
}

@keyframes uec-figure {
  0% { transform: translate(0, 0) rotate(-3deg); }
  25% { transform: translate(4px, -2px) rotate(0deg); }
  50% { transform: translate(0, 1px) rotate(3deg); }
  75% { transform: translate(-4px, -2px) rotate(0deg); }
  100% { transform: translate(0, 0) rotate(-3deg); }
}

@keyframes uec-raft {
  0% { transform: translate(0, 0) rotate(-1deg); }
  50% { transform: translate(3px, -1px) rotate(2deg); }
  100% { transform: translate(-3px, 1px) rotate(-2deg); }
}

@keyframes uec-wave1 {
  0% { transform: translateX(-5px) scaleY(0.95); }
  50% { transform: translateX(5px) scaleY(1.05); }
  100% { transform: translateX(-3px) scaleY(1); }
}

@keyframes uec-wave2 {
  0% { transform: translateX(10px) scaleY(1.05); }
  50% { transform: translateX(-10px) scaleY(0.9); }
  100% { transform: translateX(0) scaleY(1); }
}

@keyframes uec-spray {
  0% { transform: translate(0,0) scale(0.8); opacity: 0.4; }
  50% { transform: translate(2px,-3px) scale(1.2); opacity: 0.7; }
  100% { transform: translate(-2px,1px) scale(0.9); opacity: 0.3; }
}

.scn-menelaus-shocked-by-suitors { background: linear-gradient(180deg, #ffb56b 0%, #f5a450 15%, #e8933a 40%, #996644 70%, #593a2a 100%), radial-gradient(ellipse at 70% 20%, #ffcc80 0%, transparent 60%); }

.scn-menelaus-shocked-by-suitors .dawn-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffbb77 0%, #ffcc99 30%, #ffeebb 50%, #ffddbb 70%, #eebb99 100%); animation: mss-sky 8s ease-in-out infinite alternate; }
.scn-menelaus-shocked-by-suitors .palace-wall { position:absolute; inset:20% 10% 0 10%; background: linear-gradient(90deg, #b98a6b 0%, #d4a77a 50%, #bf8e6a 100%); border-radius: 4px; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.3); }
.scn-menelaus-shocked-by-suitors .window { position:absolute; top:15%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #ffddcc 0%, #ffccaa 40%, #ffbb99 70%, #cca888 100%); border: 8px solid #7a5533; border-radius: 6px; box-shadow: inset 0 0 60px rgba(255,200,150,0.6); animation: mss-window 6s ease-in-out infinite alternate; }
.scn-menelaus-shocked-by-suitors .man-silhouette { position:absolute; bottom:22%; left:45%; width:20px; height:42px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mss-man 4s ease-in-out infinite; }
.scn-menelaus-shocked-by-suitors .table { position:absolute; bottom:18%; left:40%; width:30%; height:8%; background: linear-gradient(180deg, #6b4a2a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,0.5); animation: mss-table 5s ease-in-out infinite; }
.scn-menelaus-shocked-by-suitors .overturned-cup { position:absolute; bottom:19%; left:55%; width:12px; height:16px; background: linear-gradient(180deg, #b87878 0%, #a05a5a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-30deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: mss-cup 3s ease-in-out infinite alternate; }
.scn-menelaus-shocked-by-suitors .candle { position:absolute; bottom:23%; left:30%; width:6px; height:24px; background: linear-gradient(180deg, #ffeecc 0%, #ffdd99 50%, #8a6a3a 100%); border-radius: 2px; box-shadow: 0 0 12px 4px rgba(255,220,150,0.6); animation: mss-candle 7s ease-in-out infinite alternate; }
.scn-menelaus-shocked-by-suitors .shadow-suitors { position:absolute; bottom:10%; left:15%; width:70%; height:30%; background: linear-gradient(180deg, rgba(30,20,10,0.4) 0%, rgba(30,20,10,0.1) 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; filter: blur(6px); animation: mss-shadow 9s ease-in-out infinite; }

@keyframes mss-sky { 0% { opacity:0.8; background-position:0% 0%; } 50% { opacity:1; background-position:50% 0%; } 100% { opacity:0.9; background-position:100% 0%; } }
@keyframes mss-window { 0% { opacity:0.9; transform: translateY(-2px); box-shadow: inset 0 0 40px rgba(255,200,150,0.5); } 50% { opacity:1; transform: translateY(0); box-shadow: inset 0 0 80px rgba(255,200,150,0.7); } 100% { opacity:0.95; transform: translateY(-1px); box-shadow: inset 0 0 60px rgba(255,200,150,0.6); } }
@keyframes mss-man { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-3px) rotate(3deg); } 50% { transform: translateX(2px) translateY(0) rotate(-1deg); } 75% { transform: translateX(8px) translateY(-4px) rotate(4deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes mss-table { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes mss-cup { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-40deg) translateX(3px); } 100% { transform: rotate(-25deg) translateX(-2px); } }
@keyframes mss-candle { 0% { opacity:0.9; box-shadow: 0 0 10px 2px rgba(255,220,150,0.4); } 50% { opacity:1; box-shadow: 0 0 20px 6px rgba(255,220,150,0.7); } 100% { opacity:0.8; box-shadow: 0 0 14px 4px rgba(255,220,150,0.5); } }
@keyframes mss-shadow { 0% { transform: translateX(0) scaleX(1); opacity:0.4; } 50% { transform: translateX(-10px) scaleX(1.05); opacity:0.6; } 100% { transform: translateX(5px) scaleX(0.95); opacity:0.45; } }

.scn-menelaus-tells-of-proteus-1 { background: linear-gradient(180deg, #ffeebb 0%, #ffcc88 25%, #eebb77 50%, #bbaa77 75%, #998866 100%), radial-gradient(ellipse at 50% 100%, #ffeebb 0%, transparent 70%); }

.scn-menelaus-tells-of-proteus-1 .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffeecc 0%, #ffddbb 30%, #ffccaa 60%, #eebb99 100%); animation: mtp-sky 12s ease-in-out infinite alternate; }
.scn-menelaus-tells-of-proteus-1 .sea { position:absolute; bottom:0%; left:0; right:0; height:50%; background: linear-gradient(180deg, #6699cc 0%, #4477aa 40%, #336688 70%, #1a3d5c 100%); border-radius: 30% 40% 0 0 / 20% 30% 0 0; box-shadow: inset 0 8px 30px rgba(0,0,0,0.4); animation: mtp-sea 8s ease-in-out infinite alternate; }
.scn-menelaus-tells-of-proteus-1 .shore { position:absolute; bottom:30%; left:10%; right:40%; height:10%; background: linear-gradient(180deg, #ddccaa 0%, #bbaa88 100%); border-radius: 40% 60% 0 0 / 100% 100% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.2); animation: mtp-shore 10s ease-in-out infinite; }
.scn-menelaus-tells-of-proteus-1 .ship { position:absolute; bottom:38%; left:55%; width:80px; height:30px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: mtp-ship 15s ease-in-out infinite; }
.scn-menelaus-tells-of-proteus-1 .sail { position:absolute; bottom:48%; left:60%; width:30px; height:40px; background: linear-gradient(180deg, #ffeecc 0%, #eeddbb 100%); border-radius: 40% 40% 20% 20%; transform: skewX(-10deg); animation: mtp-sail 12s ease-in-out infinite alternate; }
.scn-menelaus-tells-of-proteus-1 .figure-sitting { position:absolute; bottom:20%; left:20%; width:18px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mtp-figure 5s ease-in-out infinite; }
.scn-menelaus-tells-of-proteus-1 .rock { position:absolute; bottom:25%; left:5%; width:40px; height:20px; background: linear-gradient(180deg, #666655 0%, #443322 100%); border-radius: 30% 70% 50% 50% / 40% 60% 40% 60%; box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: mtp-rock 20s ease-in-out infinite; }

@keyframes mtp-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes mtp-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes mtp-shore { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(3px); } }
@keyframes mtp-ship { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes mtp-sail { 0% { transform: skewX(-10deg) translateY(0); } 50% { transform: skewX(-5deg) translateY(-2px); } 100% { transform: skewX(-12deg) translateY(1px); } }
@keyframes mtp-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes mtp-rock { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(0.98); } }

.scn-menelaus-meets-idothea { background: linear-gradient(180deg, #68aadd 0%, #5577aa 30%, #4466aa 60%, #334488 100%), radial-gradient(ellipse at 20% 30%, #aaccee 0%, transparent 50%); }

.scn-menelaus-meets-idothea .dawn-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #ffddbb 0%, #ffccaa 40%, #ddbb99 70%, #bbaadd 100%); animation: mmi-sky 14s ease-in-out infinite alternate; }
.scn-menelaus-meets-idothea .sea { position:absolute; bottom:0%; left:0; right:0; height:60%; background: linear-gradient(180deg, #5577aa 0%, #335588 40%, #224466 100%); border-radius: 40% 30% 0 0 / 30% 20% 0 0; animation: mmi-sea 9s ease-in-out infinite alternate; }
.scn-menelaus-meets-idothea .rock-foreground { position:absolute; bottom:30%; left:10%; width:30%; height:20%; background: linear-gradient(180deg, #776655 0%, #443322 100%); border-radius: 30% 70% 60% 40% / 40% 60% 40% 60%; box-shadow: 0 8px 15px rgba(0,0,0,0.5); animation: mmi-rock1 12s ease-in-out infinite; }
.scn-menelaus-meets-idothea .rock-background { position:absolute; bottom:25%; left:60%; width:20%; height:15%; background: linear-gradient(180deg, #887766 0%, #554433 100%); border-radius: 50% 50% 40% 60% / 60% 40% 60% 40%; filter: blur(2px); opacity:0.7; animation: mmi-rock2 16s ease-in-out infinite; }
.scn-menelaus-meets-idothea .figure-menelaus { position:absolute; bottom:22%; left:20%; width:18px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mmi-menelaus 4s ease-in-out infinite; }
.scn-menelaus-meets-idothea .figure-idothea { position:absolute; bottom:30%; left:45%; width:16px; height:34px; background: linear-gradient(180deg, #aabbcc 0%, #8899aa 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 4px rgba(170,200,255,0.4); animation: mmi-idothea 7s ease-in-out infinite; }
.scn-menelaus-meets-idothea .mist { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, rgba(200,220,255,0.3) 0%, transparent 60%); animation: mmi-mist 20s ease-in-out infinite; }
.scn-menelaus-meets-idothea .fish-swimming { position:absolute; bottom:20%; left:70%; width:20px; height:6px; background: linear-gradient(90deg, #aaddcc 0%, #88bbaa 100%); border-radius: 50%; filter: blur(1px); box-shadow: 0 4px 6px rgba(0,0,0,0.1); animation: mmi-fish 25s linear infinite; }

@keyframes mmi-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes mmi-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.01); } 100% { transform: translateY(2px) scaleY(0.99); } }
@keyframes mmi-rock1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes mmi-rock2 { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(0.98); } }
@keyframes mmi-menelaus { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes mmi-idothea { 0% { transform: translateY(0) rotate(0deg); box-shadow: 0 0 15px 3px rgba(170,200,255,0.3); } 50% { transform: translateY(-3px) rotate(2deg); box-shadow: 0 0 30px 8px rgba(170,200,255,0.6); } 100% { transform: translateY(0) rotate(0deg); box-shadow: 0 0 20px 4px rgba(170,200,255,0.4); } }
@keyframes mmi-mist { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.25; } }
@keyframes mmi-fish { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-40px) translateY(-5px); } 100% { transform: translateX(-80px) translateY(0); } }

.scn-idothea-reveals-proteus { background: linear-gradient(180deg, #1a3366 0%, #224488 20%, #1a3366 50%, #0a1a33 80%, #050a1a 100%), radial-gradient(ellipse at 50% 20%, #5588cc 0%, transparent 60%); }

.scn-idothea-reveals-proteus .water-surface-light { position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #88bbdd 0%, #5588bb 40%, #225588 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; box-shadow: inset 0 -20px 40px rgba(0,0,0,0.5); animation: irp-surface 8s ease-in-out infinite alternate; }
.scn-idothea-reveals-proteus .water-deep { position:absolute; bottom:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #1a3366 0%, #0a1a33 100%); animation: irp-deep 12s ease-in-out infinite; }
.scn-idothea-reveals-proteus .seaweed { position:absolute; bottom:20%; left:15%; width:10px; height:40px; background: linear-gradient(180deg, #4a7a3a 0%, #2a5a1a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: irp-seaweed 5s ease-in-out infinite; }
.scn-idothea-reveals-proteus .rock-cave { position:absolute; bottom:10%; left:45%; width:30%; height:40%; background: linear-gradient(180deg, #334455 0%, #223344 40%, #112233 100%); border-radius: 30% 70% 50% 50% / 60% 40% 60% 40%; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); animation: irp-cave 20s ease-in-out infinite; }
.scn-idothea-reveals-proteus .figure-idothea { position:absolute; bottom:25%; left:50%; width:18px; height:36px; background: linear-gradient(180deg, #8899bb 0%, #6677aa 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 15px 3px rgba(100,150,200,0.3); animation: irp-idothea 6s ease-in-out infinite; }
.scn-idothea-reveals-proteus .figure-proteus { position:absolute; bottom:15%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #445566 0%, #334455 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(1.2); opacity:0.8; box-shadow: 0 0 10px 2px rgba(0,0,0,0.5); animation: irp-proteus 9s ease-in-out infinite; }
.scn-idothea-reveals-proteus .bubbles { position:absolute; bottom:10%; left:30%; width:6px; height:6px; background: rgba(200,220,255,0.4); border-radius:50%; box-shadow: 10px -5px 0 0 rgba(200,220,255,0.3), -8px -10px 0 0 rgba(200,220,255,0.2); animation: irp-bubbles 4s ease-in-out infinite; }

@keyframes irp-surface { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes irp-deep { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes irp-seaweed { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes irp-cave { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(0.99); } }
@keyframes irp-idothea { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes irp-proteus { 0% { transform: scale(1.2) translateY(0) rotate(0deg); } 50% { transform: scale(1.22) translateY(-3px) rotate(2deg); } 100% { transform: scale(1.2) translateY(0) rotate(0deg); } }
@keyframes irp-bubbles { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-15px) scale(1.3); } 100% { transform: translateY(-30px) scale(0.8); } }

/* Scene: eurylochus-resists (tense + sunlit) */
.scn-eurylochus-resists { background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 50%), radial-gradient(ellipse at 50% 80%, #228B22 0%, transparent 70%); }
.scn-eurylochus-resists .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 100%); animation: er-sky 8s ease-in-out infinite alternate; }
.scn-eurylochus-resists .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #9ACD32 0%, #228B22 100%); }
.scn-eurylochus-resists .path { position:absolute; bottom:30%; left:10%; right:30%; height:15%; background: #c0a080; transform: skewX(-15deg); border-radius: 0 0 40% 40%; }
.scn-eurylochus-resists .eurylochus { position:absolute; bottom:40%; left:25%; width:22px; height:40px; background: #3a2a1a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: er-figure 2s ease-in-out infinite; }
.scn-eurylochus-resists .men-group { position:absolute; bottom:38%; left:45%; width:40px; height:36px; background: #4a3a2a; border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: er-men 3s ease-in-out infinite; }
.scn-eurylochus-resists .shadow-overlay { position:absolute; inset:0; background: linear-gradient(135deg, transparent 40%, rgba(0,0,0,0.3) 100%); pointer-events:none; animation: er-shadow 12s linear infinite alternate; }
@keyframes er-sky { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes er-figure { 0%{transform:translateX(0) rotate(-2deg)} 25%{transform:translateX(3px) rotate(1deg)} 50%{transform:translateX(-2px) rotate(-1deg)} 75%{transform:translateX(4px) rotate(2deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes er-men { 0%{transform:translateX(0) scaleY(1)} 50%{transform:translateX(-2px) scaleY(0.97)} 100%{transform:translateX(2px) scaleY(1)} }
@keyframes er-shadow { 0%{opacity:0.2} 50%{opacity:0.5} 100%{opacity:0.1} }

/* Scene: feast-at-circe (warm + bright-interior) */
.scn-feast-at-circe { background: linear-gradient(180deg, #d4a373 0%, #fefae0 80%), radial-gradient(ellipse at 50% 70%, #fefae0 0%, transparent 90%); }
.scn-feast-at-circe .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d4a373 0%, #b08d6a 100%); border-bottom: 2px solid #8c6735; }
.scn-feast-at-circe .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c29a6d 0%, #9e7a4e 100%); }
.scn-feast-at-circe .table { position:absolute; bottom:20%; left:20%; right:20%; height:12%; background: #7a5530; border-radius: 20px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-feast-at-circe .circe { position:absolute; bottom:30%; left:15%; width:20px; height:34px; background: #8c6a4a; border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: fc-circe 5s ease-in-out infinite; }
.scn-feast-at-circe .men { position:absolute; bottom:28%; right:15%; width:30px; height:32px; background: #6a4a3a; border-radius: 40% 40% 25% 25% / 50% 50% 25% 25%; transform-origin: bottom center; animation: fc-men 6s ease-in-out infinite; }
.scn-feast-at-circe .dishes { position:absolute; bottom:28%; left:35%; right:35%; height:8%; background: radial-gradient(circle at 30% 50%, #f0c060 0%, #c8a050 100%); border-radius: 50%; animation: fc-dishes 4s ease-in-out infinite alternate; }
@keyframes fc-circe { 0%{transform:translateX(0) rotate(2deg)} 50%{transform:translateX(2px) rotate(-2deg)} 100%{transform:translateX(-1px) rotate(1deg)} }
@keyframes fc-men { 0%{transform:translateX(0) scaleY(1)} 50%{transform:translateX(-1px) scaleY(0.96)} 100%{transform:translateX(1px) scaleY(0.98)} }
@keyframes fc-dishes { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-2px) scale(0.98)} 100%{transform:translateY(1px) scale(1.02)} }

/* Scene: year-with-circe (calm + bright-interior) */
.scn-year-with-circe { background: linear-gradient(180deg, #f5e6ca 0%, #d4c4a8 100%), radial-gradient(ellipse at 50% 50%, #f5e6ca 0%, transparent 80%); }
.scn-year-with-circe .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #d4c4a8 0%, #bcac90 100%); }
.scn-year-with-circe .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); }
.scn-year-with-circe .table { position:absolute; bottom:18%; left:30%; right:30%; height:10%; background: #8c7a5a; border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); }
.scn-year-with-circe .ulysses { position:absolute; bottom:25%; left:20%; width:18px; height:36px; background: #4a3a2a; border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: yc-ulysses 8s ease-in-out infinite; }
.scn-year-with-circe .man { position:absolute; bottom:23%; right:25%; width:16px; height:32px; background: #5a4a3a; border-radius: 50% 50% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; animation: yc-man 7s ease-in-out infinite; }
.scn-year-with-circe .candle { position:absolute; bottom:30%; left:50%; width:6px; height:14px; margin-left:-3px; background: linear-gradient(180deg, #f0c060 0%, #c08030 100%); border-radius: 50% 50% 20% 20%; animation: yc-candle 3s ease-in-out infinite alternate; }
.scn-year-with-circe .window { position:absolute; top:10%; right:10%; width:40px; height:30px; background: #b0d0e8; border: 3px solid #6a5a4a; border-radius: 4px; animation: yc-window 20s linear infinite alternate; }
@keyframes yc-ulysses { 0%{transform:translateX(0) rotate(1deg)} 50%{transform:translateX(1px) rotate(-1deg)} 100%{transform:translateX(-1px) rotate(0)} }
@keyframes yc-man { 0%{transform:translateY(0) scaleY(1)} 50%{transform:translateY(-2px) scaleY(0.97)} 100%{transform:translateY(1px) scaleY(1)} }
@keyframes yc-candle { 0%{transform:scaleY(1) scaleX(1)} 50%{transform:scaleY(1.05) scaleX(0.95)} 100%{transform:scaleY(0.95) scaleX(1.05)} }
@keyframes yc-window { 0%{opacity:0.6;background:#b0d0e8} 50%{opacity:1;background:#d8f0ff} 100%{opacity:0.5;background:#90b8d0} }

/* Scene: circe-tells-of-hades (dark + dim-interior) */
.scn-circe-tells-of-hades { background: linear-gradient(180deg, #1a1a3a 0%, #2a1a2a 50%), radial-gradient(ellipse at 50% 80%, #4a2a4a 0%, transparent 80%); }
.scn-circe-tells-of-hades .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2a 0%, #2a1a2a 100%); }
.scn-circe-tells-of-hades .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); }
.scn-circe-tells-of-hades .lamp { position:absolute; bottom:35%; left:50%; width:10px; height:16px; margin-left:-5px; background: radial-gradient(circle, #e8a030 0%, #b08030 60%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(232,160,48,0.6), 0 0 60px 20px rgba(232,160,48,0.3); animation: ct-lamp 3s ease-in-out infinite alternate; }
.scn-circe-tells-of-hades .circe-silhouette { position:absolute; bottom:27%; left:20%; width:20px; height:42px; background: #0a0a1a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ct-circe 8s ease-in-out infinite; }
.scn-circe-tells-of-hades .ulysses-silhouette { position:absolute; bottom:25%; right:20%; width:18px; height:40px; background: #0a0a1a; border-radius: 48% 48% 32% 32% / 58% 58% 32% 32%; transform-origin: bottom center; animation: ct-ulysses 6s ease-in-out infinite; }
.scn-circe-tells-of-hades .item { position:absolute; bottom:30%; left:40%; width:12px; height:8px; background: #2a2a1a; border-radius: 30%; box-shadow: 0 0 6px rgba(200,180,100,0.4); animation: ct-item 15s linear infinite; }
@keyframes ct-lamp { 0%{opacity:0.7;box-shadow:0 0 20px 8px rgba(232,160,48,0.5);} 50%{opacity:1;box-shadow:0 0 40px 15px rgba(232,160,48,0.8);} 100%{opacity:0.6;box-shadow:0 0 15px 5px rgba(232,160,48,0.4);} }
@keyframes ct-circe { 0%{transform:translateX(0) rotate(2deg)} 25%{transform:translateX(2px) rotate(-1deg) scaleY(1.01)} 50%{transform:translateX(-2px) rotate(3deg)} 75%{transform:translateX(3px) rotate(-2deg) scaleY(0.99)} 100%{transform:translateX(0) rotate(0)} }
@keyframes ct-ulysses { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-2px) rotate(2deg)} 100%{transform:translateY(1px) rotate(-1deg)} }
@keyframes ct-item { 0%{transform:translateX(0) translateY(0)} 25%{transform:translateX(5px) translateY(-3px)} 50%{transform:translateX(-5px) translateY(2px)} 75%{transform:translateX(3px) translateY(-1px)} 100%{transform:translateX(0) translateY(0)} }

.scn-telemachus-washed-and-dressed {
  background: linear-gradient(180deg, #f7d1a0 0%, #f2c4a0 30%, #d49a7a 60%, #b5785a 100%),
              radial-gradient(ellipse at 40% 20%, #ffe4b5 0%, transparent 50%),
              radial-gradient(ellipse at 80% 50%, #cda37a 0%, transparent 40%);
}
.scn-telemachus-washed-and-dressed .sky-dawn {
  position: absolute; inset: 0 0 70% 0;
  background: linear-gradient(180deg, #fdd9b5 0%, #f7c6a5 30%, #f0b090 60%, #da9878 100%);
  animation: tw-sky 12s ease-in-out infinite alternate;
}
.scn-telemachus-washed-and-dressed .window {
  position: absolute; top: 5%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #ffeac2 0%, #ffd9a0 40%, #f0c080 100%);
  border: 6px solid #8a6040;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.4);
  animation: tw-window 8s ease-in-out infinite alternate;
}
.scn-telemachus-washed-and-dressed .wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c9a07a 0%, #b08060 50%, #906050 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.15);
}
.scn-telemachus-washed-and-dressed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08060 0%, #886048 40%, #705038 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-telemachus-washed-and-dressed .basin {
  position: absolute; bottom: 22%; left: 30%; width: 18%; height: 15%;
  background: radial-gradient(ellipse at 50% 30%, #c09878 0%, #a07050 60%, #805038 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: tw-basin 6s ease-in-out infinite;
}
.scn-telemachus-washed-and-dressed .polycaste {
  position: absolute; bottom: 20%; left: 48%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #e8c8a0 0%, #c8a080 40%, #a88060 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: tw-poly 5s ease-in-out infinite alternate;
}
.scn-telemachus-washed-and-dressed .telemachus {
  position: absolute; bottom: 16%; left: 28%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #f0d0b0 0%, #d0b090 50%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: tw-tele 4s ease-in-out infinite alternate;
}
.scn-telemachus-washed-and-dressed .garment {
  position: absolute; bottom: 30%; left: 22%; width: 14%; height: 8%;
  background: linear-gradient(135deg, #e8d0b8 0%, #c0a088 50%, #a08068 100%);
  border-radius: 20% 80% 40% 60% / 30% 70% 30% 70%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
  animation: tw-garment 7s ease-in-out infinite;
}
.scn-telemachus-washed-and-dressed .oil-flask {
  position: absolute; bottom: 28%; left: 40%; width: 5%; height: 10%;
  background: linear-gradient(180deg, #d0a080 0%, #a07050 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: tw-flask 9s ease-in-out infinite;
}
@keyframes tw-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes tw-window { 0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3); } 50% { box-shadow: inset 0 0 40px rgba(255,255,200,0.6); } 100% { box-shadow: inset 0 0 25px rgba(255,255,200,0.35); } }
@keyframes tw-basin { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes tw-poly { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes tw-tele { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes tw-garment { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(5deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes tw-flask { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 50% { transform: translateX(2px) translateY(-2px) rotate(5deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }

.scn-telemachus-departs {
  background: linear-gradient(180deg, #fad6a5 0%, #f5c98a 30%, #e0ad70 60%, #c89050 100%),
              radial-gradient(ellipse at 60% 80%, #d4a56a 0%, transparent 50%),
              radial-gradient(ellipse at 20% 30%, #ffe0b0 0%, transparent 40%);
}
.scn-telemachus-departs .sky-dawn {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #ffddb0 0%, #f7c890 30%, #eab070 60%, #da9a5a 100%);
  animation: td-sky 15s ease-in-out infinite alternate;
}
.scn-telemachus-departs .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b08860 0%, #907050 50%, #706040 100%);
  border-radius: 30% 70% 0 0 / 10% 15% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-telemachus-departs .chariot {
  position: absolute; bottom: 20%; left: 35%; width: 20%; height: 15%;
  background: linear-gradient(180deg, #b08050 0%, #8a6038 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: td-chariot 6s ease-in-out infinite;
}
.scn-telemachus-departs .wheel-front {
  position: absolute; bottom: 14%; left: 36%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 50%, #a07848 0%, #705030 70%, #503020 100%);
  border-radius: 50%;
  border: 3px solid #604028;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: td-wheel 2s linear infinite;
}
.scn-telemachus-departs .wheel-rear {
  position: absolute; bottom: 14%; left: 46%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 50%, #a07848 0%, #705030 70%, #503020 100%);
  border-radius: 50%;
  border: 3px solid #604028;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: td-wheel 2s linear infinite reverse;
}
.scn-telemachus-departs .horse-1 {
  position: absolute; bottom: 20%; left: 52%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #d0a878 0%, #b08050 50%, #906040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: td-horse1 8s ease-in-out infinite;
}
.scn-telemachus-departs .horse-2 {
  position: absolute; bottom: 20%; left: 62%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #c89868 0%, #a07040 50%, #805030 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: td-horse2 8s ease-in-out infinite alternate;
}
.scn-telemachus-departs .fig-telemachus {
  position: absolute; bottom: 26%; left: 30%; width: 8%; height: 16%;
  background: linear-gradient(180deg, #e8c8a8 0%, #c8a080 50%, #a08058 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: td-fig1 5s ease-in-out infinite;
}
.scn-telemachus-departs .fig-pisistratus {
  position: absolute; bottom: 26%; left: 20%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #d8b898 0%, #b89878 50%, #987858 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: td-fig2 5s ease-in-out infinite alternate;
}
@keyframes td-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes td-chariot { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes td-wheel { 0% { transform: rotate(0); } 100% { transform: rotate(360deg); } }
@keyframes td-horse1 { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-6px) rotate(3deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(-4px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes td-horse2 { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-5px) rotate(-4deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes td-fig1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(0) translateY(-4px) rotate(-1deg); } 75% { transform: translateX(-3px) translateY(-2px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes td-fig2 { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(-2px) translateY(-3px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }

.scn-telemachus-arrives-at-sparta {
  background: linear-gradient(180deg, #2a2e4a 0%, #3a3e5a 30%, #4a3e5a 60%, #3a2e4a 100%),
              radial-gradient(ellipse at 50% 10%, #5a4a6a 0%, transparent 60%),
              radial-gradient(ellipse at 20% 60%, #4a3a5a 0%, transparent 50%);
}
.scn-telemachus-arrives-at-sparta .sky-dusk {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a3e5a 0%, #6a4a5a 30%, #8a5a4a 60%, #a06848 100%);
  animation: ta-sky 18s ease-in-out infinite alternate;
}
.scn-telemachus-arrives-at-sparta .city-silhouette {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  overflow: hidden;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: ta-city 20s ease-in-out infinite;
}
.scn-telemachus-arrives-at-sparta .palace-facade {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #4a3a4a 0%, #3a2a3a 50%, #2a1a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
  animation: ta-palace 10s ease-in-out infinite alternate;
}
.scn-telemachus-arrives-at-sparta .gate {
  position: absolute; bottom: 22%; left: 42%; width: 16%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 4px 8px black;
  animation: ta-gate 8s ease-in-out infinite;
}
.scn-telemachus-arrives-at-sparta .chariot {
  position: absolute; bottom: 15%; left: 38%; width: 18%; height: 12%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: ta-chariot 7s ease-in-out infinite;
}
.scn-telemachus-arrives-at-sparta .fig-telemachus {
  position: absolute; bottom: 18%; left: 36%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ta-fig1 5s ease-in-out infinite alternate;
}
.scn-telemachus-arrives-at-sparta .fig-pisistratus {
  position: absolute; bottom: 18%; left: 42%; width: 6%; height: 11%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ta-fig2 5s ease-in-out infinite alternate-reverse;
}
.scn-telemachus-arrives-at-sparta .window-lights {
  position: absolute; bottom: 35%; left: 35%; width: 4%; height: 6%;
  background: radial-gradient(circle, #d09050 0%, #b07030 60%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 0 18px 4px #b07030, 0 0 40px 10px rgba(200,120,50,0.3);
  animation: ta-light 3s ease-in-out infinite alternate;
}
@keyframes ta-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ta-city { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ta-palace { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(0.99); } }
@keyframes ta-gate { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ta-chariot { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-5px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ta-fig1 { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 50% { transform: translateX(2px) translateY(-3px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ta-fig2 { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(-2px) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ta-light { 0% { opacity: 0.5; box-shadow: 0 0 10px 2px #b07030; } 50% { opacity: 1; box-shadow: 0 0 24px 6px #d09050, 0 0 50px 12px rgba(200,120,50,0.4); } 100% { opacity: 0.7; box-shadow: 0 0 14px 3px #b07030; } }

.scn-menelaus-welcomes-guests {
  background: linear-gradient(180deg, #d0a878 0%, #c89060 30%, #b08050 60%, #906840 100%),
              radial-gradient(ellipse at 50% 50%, #e0b888 0%, transparent 50%),
              radial-gradient(ellipse at 30% 70%, #c8a068 0%, transparent 40%);
}
.scn-menelaus-welcomes-guests .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b08858 0%, #987048 50%, #786038 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,0.2);
}
.scn-menelaus-welcomes-guests .col-left {
  position: absolute; bottom: 25%; left: 10%; width: 6%; height: 60%;
  background: linear-gradient(180deg, #c0a078 0%, #a08058 50%, #806048 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.15);
}
.scn-menelaus-welcomes-guests .col-right {
  position: absolute; bottom: 25%; right: 10%; width: 6%; height: 60%;
  background: linear-gradient(180deg, #c0a078 0%, #a08058 50%, #806048 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.15);
}
.scn-menelaus-welcomes-guests .back-wall {
  position: absolute; bottom: 25%; left: 16%; right: 16%; height: 60%;
  background: linear-gradient(180deg, #d0b088 0%, #b89870 50%, #987858 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
}
.scn-menelaus-welcomes-guests .doorway {
  position: absolute; bottom: 25%; left: 38%; width: 24%; height: 50%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  border: 4px solid #8a7a5a;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.4);
}
.scn-menelaus-welcomes-guests .fig-telemachus {
  position: absolute; bottom: 30%; left: 20%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #d8b898 0%, #b89878 50%, #987858 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-fig1 5s ease-in-out infinite;
}
.scn-menelaus-welcomes-guests .fig-pisistratus {
  position: absolute; bottom: 30%; left: 28%; width: 8%; height: 17%;
  background: linear-gradient(180deg, #c8a888 0%, #a88868 50%, #886848 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-fig2 5s ease-in-out infinite alternate;
}
.scn-menelaus-welcomes-guests .fig-menelaus {
  position: absolute; bottom: 30%; right: 22%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #e0c0a0 0%, #c0a080 50%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-men 4s ease-in-out infinite;
}
.scn-menelaus-welcomes-guests .fig-eteoneus {
  position: absolute; bottom: 30%; right: 32%; width: 7%; height: 15%;
  background: linear-gradient(180deg, #c89878 0%, #a87858 50%, #886848 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-ete 6s ease-in-out infinite alternate;
}
.scn-menelaus-welcomes-guests .brazier {
  position: absolute; bottom: 22%; left: 50%; width: 6%; height: 10%;
  background: radial-gradient(ellipse at 50% 20%, #ffa050 0%, #d07020 50%, #804010 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  box-shadow: 0 0 30px 10px #d07020, 0 0 60px 20px rgba(200,80,20,0.3);
  animation: mw-brazier 2s ease-in-out infinite alternate;
}
@keyframes mw-fig1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(2px) translateY(-3px) rotate(1deg); } 50% { transform: translateX(0) translateY(-5px) rotate(-1deg); } 75% { transform: translateX(-2px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes mw-fig2 { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(-1px) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes mw-men { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mw-ete { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(3px) translateY(-3px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes mw-brazier { 0% { scale: 1; opacity: 0.8; box-shadow: 0 0 20px 6px #d07020; } 50% { scale: 1.05; opacity: 1; box-shadow: 0 0 40px 12px #ffa050, 0 0 70px 20px rgba(200,80,20,0.4); } 100% { scale: 0.98; opacity: 0.85; box-shadow: 0 0 25px 8px #d07020; } }

/* ---------- footnote-scheria-meaning ---------- */
.scn-footnote-scheria-meaning { background: linear-gradient(180deg, #1a0e06 0%, #2a1a0a 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, transparent 70%); }
.scn-footnote-scheria-meaning .walls { position:absolute; inset:0; background:linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%); animation:sh-walls 20s ease-in-out infinite alternate; }
.scn-footnote-scheria-meaning .window { position:absolute; top:15%; left:55%; width:28%; height:45%; background:linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a4a5a 100%); border-radius:4% 4% 8% 8%; box-shadow:inset 0 0 30px rgba(0,0,0,.5); animation:sh-window 12s ease-in-out infinite alternate; }
.scn-footnote-scheria-meaning .window::after { content:''; position:absolute; bottom:15%; left:10%; width:45%; height:40%; background:linear-gradient(135deg, #4a5a3a 0%, #3a4a2a 100%); border-radius:60% 40% 20% 80% / 70% 50% 50% 30%; }  /* peninsula shape */
.scn-footnote-scheria-meaning .curtain { position:absolute; top:13%; left:54%; width:30%; height:50%; background:linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%); border-radius:4% 4% 12% 12% / 8% 8% 20% 20%; opacity:.7; animation:sh-curtain 16s ease-in-out infinite alternate; }
.scn-footnote-scheria-meaning .desk { position:absolute; bottom:18%; left:20%; width:50%; height:22%; background:linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4%; box-shadow:0 -4px 12px rgba(0,0,0,.6); animation:sh-desk 9s ease-in-out infinite; }
.scn-footnote-scheria-meaning .book { position:absolute; bottom:26%; left:32%; width:20%; height:12%; background:linear-gradient(135deg, #d0b090 0%, #c0a080 40%, #b09070 100%); border-radius:2% 12% 8% 2%; box-shadow:0 2px 6px rgba(0,0,0,.4); transform:rotate(-2deg); animation:sh-book 8s ease-in-out infinite alternate; }
.scn-footnote-scheria-meaning .figure { position:absolute; bottom:18%; left:62%; width:12%; height:28%; background:linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:sh-figure 6s ease-in-out infinite; }
.scn-footnote-scheria-meaning .lamp { position:absolute; bottom:40%; left:22%; width:4%; height:6%; background:radial-gradient(circle, #ffd080 0%, #c08040 100%); border-radius:50%; box-shadow:0 0 30px 10px rgba(255,200,100,.4), 0 0 60px 20px rgba(200,150,80,.2); animation:sh-lamp 4s ease-in-out infinite alternate; }
.scn-footnote-scheria-meaning .map { position:absolute; top:14%; right:8%; width:16%; height:24%; background:linear-gradient(135deg, #8a7a5a 0%, #7a6a4a 100%); border-radius:4%; box-shadow:inset 0 0 10px rgba(0,0,0,.3); animation:sh-map 15s ease-in-out infinite alternate; }
@keyframes sh-walls { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes sh-window { 0% { opacity:.75; transform:scaleY(1); } 50% { opacity:.95; transform:scaleY(1.02); } 100% { opacity:.8; transform:scaleY(.98); } }
@keyframes sh-curtain { 0% { transform:translateX(0) rotate(0); } 50% { transform:translateX(-4px) rotate(.5deg); } 100% { transform:translateX(2px) rotate(-.3deg); } }
@keyframes sh-desk { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes sh-book { 0% { transform:rotate(-2deg) scale(1); } 50% { transform:rotate(0) scale(1.01); } 100% { transform:rotate(-3deg) scale(.99); } }
@keyframes sh-figure { 0% { transform:translateX(0) rotate(0); } 25% { transform:translateX(2px) rotate(-1deg); } 50% { transform:translateX(0) rotate(1deg); } 75% { transform:translateX(-2px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes sh-lamp { 0% { opacity:.85; box-shadow:0 0 20px 8px rgba(255,200,100,.3), 0 0 40px 15px rgba(200,150,80,.15); } 50% { opacity:1; box-shadow:0 0 35px 12px rgba(255,200,100,.45), 0 0 70px 25px rgba(200,150,80,.25); } 100% { opacity:.9; box-shadow:0 0 25px 10px rgba(255,200,100,.35), 0 0 50px 20px rgba(200,150,80,.2); } }
@keyframes sh-map { 0% { opacity:.7; transform:rotate(-1deg); } 50% { opacity:.9; transform:rotate(0); } 100% { opacity:.75; transform:rotate(1deg); } }

/* ---------- footnote-eurymedusa-apiera ---------- */
.scn-footnote-eurymedusa-apiera { background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%); }
.scn-footnote-eurymedusa-apiera .room { position:absolute; inset:0; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%); animation:eu-room 18s ease-in-out infinite alternate; }
.scn-footnote-eurymedusa-apiera .table { position:absolute; bottom:20%; left:15%; width:55%; height:20%; background:linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:6%; box-shadow:0 -4px 10px rgba(0,0,0,.5); animation:eu-table 10s ease-in-out infinite; }
.scn-footnote-eurymedusa-apiera .figure { position:absolute; bottom:20%; left:40%; width:14%; height:34%; background:linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:eu-figure 7s ease-in-out infinite; }
.scn-footnote-eurymedusa-apiera .figure::before { content:''; position:absolute; top:-15%; left:50%; width:60%; height:25%; background:radial-gradient(ellipse, #5a4a4a 0%, #3a2a2a 100%); border-radius:50%; transform:translateX(-50%); }  /* head in profile */
.scn-footnote-eurymedusa-apiera .plate { position:absolute; bottom:24%; left:52%; width:12%; height:4%; background:radial-gradient(ellipse, #c0a080 0%, #a08060 100%); border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.4); transform:rotate(15deg); animation:eu-plate 5s ease-in-out infinite; }
.scn-footnote-eurymedusa-apiera .basket { position:absolute; bottom:22%; left:25%; width:10%; height:12%; background:linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:20% 20% 40% 40%; box-shadow:0 2px 8px rgba(0,0,0,.4); animation:eu-basket 9s ease-in-out infinite alternate; }
.scn-footnote-eurymedusa-apiera .lamp { position:absolute; top:12%; left:45%; width:5%; height:8%; background:radial-gradient(circle, #ffd080 0%, #c08040 100%); border-radius:50%; box-shadow:0 0 40px 15px rgba(255,200,100,.3), 0 0 80px 30px rgba(200,150,80,.15); animation:eu-lamp 6s ease-in-out infinite alternate; }
.scn-footnote-eurymedusa-apiera .shelf { position:absolute; top:25%; right:8%; width:20%; height:4%; background:linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:2px; box-shadow:0 4px 6px rgba(0,0,0,.3); animation:eu-shelf 14s ease-in-out infinite alternate; }
@keyframes eu-room { 0% { opacity:.95; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes eu-table { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes eu-figure { 0% { transform:translateX(0) rotate(0); } 25% { transform:translateX(3px) rotate(-2deg); } 50% { transform:translateX(-2px) rotate(2deg); } 75% { transform:translateX(4px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes eu-plate { 0%,100% { transform:rotate(15deg) translateY(0); } 50% { transform:rotate(10deg) translateY(3px); } }
@keyframes eu-basket { 0% { transform:rotate(-2deg) scale(1); } 50% { transform:rotate(0) scale(1.02); } 100% { transform:rotate(2deg) scale(.98); } }
@keyframes eu-lamp { 0% { opacity:.8; box-shadow:0 0 30px 10px rgba(255,200,100,.25), 0 0 60px 25px rgba(200,150,80,.12); } 50% { opacity:1; box-shadow:0 0 45px 15px rgba(255,200,100,.4), 0 0 90px 35px rgba(200,150,80,.2); } 100% { opacity:.85; box-shadow:0 0 35px 12px rgba(255,200,100,.3), 0 0 70px 28px rgba(200,150,80,.15); } }
@keyframes eu-shelf { 0% { transform:translateY(0) scaleX(1); } 50% { transform:translateY(-2px) scaleX(1.02); } 100% { transform:translateY(1px) scaleX(.98); } }

/* ---------- footnote-hidden-malice ---------- */
.scn-footnote-hidden-malice { background: linear-gradient(180deg, #1a0a00 0%, #2a1508 40%, #3a1a0a 100%), radial-gradient(ellipse at 50% 25%, #4a2a1a 0%, transparent 70%); }
.scn-footnote-hidden-malice .walls { position:absolute; inset:0; background:linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); animation:ml-walls 22s ease-in-out infinite alternate; }
.scn-footnote-hidden-malice .table { position:absolute; bottom:15%; left:10%; width:65%; height:28%; background:linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:8% 8% 4% 4%; box-shadow:0 -6px 15px rgba(0,0,0,.6); animation:ml-table 11s ease-in-out infinite; }
.scn-footnote-hidden-malice .figure { position:absolute; bottom:25%; left:22%; width:16%; height:36%; background:linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:ml-figure 8s ease-in-out infinite; }
.scn-footnote-hidden-malice .cup-a { position:absolute; bottom:32%; left:35%; width:6%; height:8%; background:linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 2px 8px rgba(0,0,0,.4); animation:ml-cup-a 6s ease-in-out infinite alternate; }
.scn-footnote-hidden-malice .cup-b { position:absolute; bottom:30%; left:50%; width:7%; height:9%; background:linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 2px 8px rgba(0,0,0,.4); animation:ml-cup-b 7s ease-in-out infinite alternate; }
.scn-footnote-hidden-malice .hand { position:absolute; bottom:40%; left:45%; width:8%; height:12%; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:40% 60% 20% 80% / 50% 70% 30% 50%; transform:rotate(-15deg); animation:ml-hand 5s ease-in-out infinite; }
.scn-footnote-hidden-malice .lamp { position:absolute; top:10%; left:38%; width:6%; height:10%; background:radial-gradient(circle, #ffc060 0%, #b08040 100%); border-radius:50%; box-shadow:0 0 50px 20px rgba(255,180,80,.35), 0 0 100px 40px rgba(200,140,60,.15); animation:ml-lamp 5s ease-in-out infinite alternate; }
.scn-footnote-hidden-malice .shadow { position:absolute; bottom:12%; right:12%; width:25%; height:30%; background:linear-gradient(135deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.6) 100%); border-radius:60% 20% 40% 80% / 80% 30% 70% 20%; animation:ml-shadow 14s ease-in-out infinite alternate; }
@keyframes ml-walls { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes ml-table { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3px); } }
@keyframes ml-figure { 0% { transform:translateX(0) rotate(0); } 25% { transform:translateX(2px) rotate(-1deg); } 50% { transform:translateX(-3px) rotate(2deg); } 75% { transform:translateX(1px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes ml-cup-a { 0% { transform:rotate(0) translateY(0); } 50% { transform:rotate(3deg) translateY(-3px); } 100% { transform:rotate(-2deg) translateY(0); } }
@keyframes ml-cup-b { 0% { transform:rotate(0) translateY(0); } 50% { transform:rotate(-4deg) translateY(-2px); } 100% { transform:rotate(2deg) translateY(0); } }
@keyframes ml-hand { 0%,100% { transform:rotate(-15deg) translateX(0); } 50% { transform:rotate(-10deg) translateX(5px); } }
@keyframes ml-lamp { 0% { opacity:.75; box-shadow:0 0 35px 15px rgba(255,180,80,.25), 0 0 70px 30px rgba(200,140,60,.1); } 50% { opacity:1; box-shadow:0 0 55px 25px rgba(255,180,80,.45), 0 0 110px 50px rgba(200,140,60,.2); } 100% { opacity:.8; box-shadow:0 0 40px 18px rgba(255,180,80,.3), 0 0 80px 35px rgba(200,140,60,.15); } }
@keyframes ml-shadow { 0% { opacity:.4; transform:scale(1) rotate(0); } 50% { opacity:.7; transform:scale(1.05) rotate(2deg); } 100% { opacity:.5; transform:scale(.95) rotate(-1deg); } }

/* ---------- footnote-alcinous-knows-cyclopes ---------- */
.scn-footnote-alcinous-knows-cyclopes { background: linear-gradient(180deg, #1a0e06 0%, #2a1a0a 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, transparent 70%); }
.scn-footnote-alcinous-knows-cyclopes .walls { position:absolute; inset:0; background:linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%); animation:al-walls 20s ease-in-out infinite alternate; }
.scn-footnote-alcinous-knows-cyclopes .table { position:absolute; bottom:18%; left:12%; width:60%; height:24%; background:linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:6%; box-shadow:0 -4px 12px rgba(0,0,0,.5); animation:al-table 12s ease-in-out infinite; }
.scn-footnote-alcinous-knows-cyclopes .map { position:absolute; bottom:26%; left:18%; width:42%; height:15%; background:linear-gradient(135deg, #8a7a5a 0%, #7a6a4a 40%, #6a5a3a 100%); border-radius:4%; box-shadow:inset 0 0 15px rgba(0,0,0,.3); transform:rotate(-2deg); animation:al-map 18s ease-in-out infinite alternate; }
.scn-footnote-alcinous-knows-cyclopes .map::after { content:''; position:absolute; top:20%; left:30%; width:15%; height:25%; background:linear-gradient(135deg, #4a6a3a 0%, #3a5a2a 100%); border-radius:60% 40% 40% 60% / 50% 50% 50% 50%; }  /* island shape */
.scn-footnote-alcinous-knows-cyclopes .figure { position:absolute; bottom:20%; left:60%; width:15%; height:34%; background:linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:al-figure 9s ease-in-out infinite; }
.scn-footnote-alcinous-knows-cyclopes .lamp { position:absolute; top:12%; left:42%; width:5%; height:8%; background:radial-gradient(circle, #ffd080 0%, #c08040 100%); border-radius:50%; box-shadow:0 0 45px 18px rgba(255,200,100,.35), 0 0 90px 36px rgba(200,150,80,.15); animation:al-lamp 6s ease-in-out infinite alternate; }
.scn-footnote-alcinous-knows-cyclopes .marker { position:absolute; bottom:32%; left:38%; width:3%; height:5%; background:radial-gradient(circle, #d0a060 0%, #a08040 100%); border-radius:50%; box-shadow:0 0 12px 4px rgba(200,150,80,.5); animation:al-marker 7s ease-in-out infinite alternate; }
.scn-footnote-alcinous-knows-cyclopes .island-a { position:absolute; bottom:30%; left:28%; width:10%; height:8%; background:linear-gradient(135deg, #5a6a4a 0%, #4a5a3a 100%); border-radius:60% 40% 50% 50% / 50% 60% 40% 50%; opacity:.6; animation:al-island-a 25s ease-in-out infinite alternate; }
.scn-footnote-alcinous-knows-cyclopes .island-b { position:absolute; bottom:30%; left:50%; width:12%; height:7%; background:linear-gradient(135deg, #5a6a4a 0%, #4a5a3a 100%); border-radius:50% 60% 40% 60% / 40% 50% 50% 60%; opacity:.6; animation:al-island-b 30s ease-in-out infinite alternate; }
@keyframes al-walls { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes al-table { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3px); } }
@keyframes al-map { 0% { transform:rotate(-2deg) scale(1); } 50% { transform:rotate(0) scale(1.02); } 100% { transform:rotate(-3deg) scale(.98); } }
@keyframes al-figure { 0% { transform:translateX(0) rotate(0); } 25% { transform:translateX(3px) rotate(-1deg); } 50% { transform:translateX(-2px) rotate(2deg); } 75% { transform:translateX(4px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes al-lamp { 0% { opacity:.8; box-shadow:0 0 30px 12px rgba(255,200,100,.25), 0 0 60px 25px rgba(200,150,80,.12); } 50% { opacity:1; box-shadow:0 0 50px 20px rgba(255,200,100,.45), 0 0 100px 40px rgba(200,150,80,.2); } 100% { opacity:.85; box-shadow:0 0 35px 15px rgba(255,200,100,.3), 0 0 70px 30px rgba(200,150,80,.15); } }
@keyframes al-marker { 0% { opacity:.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.3); } 100% { opacity:.8; transform:scale(.9); } }
@keyframes al-island-a { 0% { opacity:.4; transform:translateX(0) scale(1); } 50% { opacity:.7; transform:translateX(5px) scale(1.05); } 100% { opacity:.5; transform:translateX(-3px) scale(.95); } }
@keyframes al-island-b { 0% { opacity:.4; transform:translateX(0) scale(1); } 50% { opacity:.6; transform:translateX(-5px) scale(1.03); } 100% { opacity:.5; transform:translateX(3px) scale(.97); } }

.scn-suitor-set-ambush {
  background: 
    linear-gradient(180deg, #e8834a 0%, #a64b2a 35%, #3a1a1a 65%, #0f0f1a 100%),
    radial-gradient(ellipse at 40% 60%, #f5b979 0%, transparent 60%);
}
.scn-suitor-set-ambush .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d97a4a 0%, #7a3a2a 70%, transparent 100%);
  animation: sa-sky 15s ease-in-out infinite alternate;
}
.scn-suitor-set-ambush .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a0a1a 100%);
  animation: sa-sea 12s ease-in-out infinite;
}
.scn-suitor-set-ambush .ship {
  position: absolute; bottom: 35%; left: 50%; width: 120px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a2a 50%, #2a1a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: sa-ship 8s ease-in-out infinite;
}
.scn-suitor-set-ambush .mast {
  position: absolute; bottom: 50%; left: 54%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  transform-origin: bottom center;
  animation: sa-mast 8s ease-in-out infinite;
}
.scn-suitor-set-ambush .sail-f {
  position: absolute; bottom: 58%; left: 50%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #f5f0e0 0%, #c0b8a0 100%);
  clip-path: polygon(0% 0%, 100% 10%, 80% 100%, 20% 100%);
  transform-origin: bottom left;
  animation: sa-sail-f 5s ease-in-out infinite alternate;
}
.scn-suitor-set-ambush .sail-a {
  position: absolute; bottom: 58%; left: 54%; width: 45px; height: 45px;
  background: linear-gradient(180deg, #f5f0e0 0%, #a8a090 100%);
  clip-path: polygon(30% 0%, 100% 0%, 100% 100%, 40% 100%);
  transform-origin: bottom right;
  animation: sa-sail-a 6s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-suitor-set-ambush .wave-1 {
  position: absolute; bottom: 10%; left: 0; width: 100%; height: 12px;
  background: linear-gradient(90deg, transparent, rgba(100,140,180,0.4), transparent);
  border-radius: 50%;
  filter: blur(3px);
  animation: sa-wave1 4s ease-in-out infinite;
}
.scn-suitor-set-ambush .wave-2 {
  position: absolute; bottom: 5%; left: 0; width: 100%; height: 10px;
  background: linear-gradient(90deg, transparent, rgba(80,120,160,0.3), transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: sa-wave2 5s ease-in-out infinite;
  animation-delay: -1s;
}
.scn-suitor-set-ambush .lookout {
  position: absolute; bottom: 48%; left: 46%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sa-figure 6s ease-in-out infinite;
}
@keyframes sa-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes sa-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes sa-ship { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px) } }
@keyframes sa-mast { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } }
@keyframes sa-sail-f { 0% { transform: rotate(0deg) scaleX(0.95) } 100% { transform: rotate(3deg) scaleX(1.05) } }
@keyframes sa-sail-a { 0% { transform: rotate(0deg) scaleX(0.95) } 100% { transform: rotate(-3deg) scaleX(1.05) } }
@keyframes sa-wave1 { 0%,100% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(20px) scaleY(0.8) } }
@keyframes sa-wave2 { 0%,100% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-15px) scaleY(0.7) } }
@keyframes sa-figure { 0%,100% { transform: translateY(0) } 25% { transform: translateY(-2px) rotate(2deg) } 75% { transform: translateY(1px) rotate(-1deg) } }

.scn-penelope-anxious {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #1a1a2a 70%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, transparent 50%);
}
.scn-penelope-anxious .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  animation: pa-wall 20s ease-in-out infinite alternate;
}
.scn-penelope-anxious .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-penelope-anxious .window {
  position: absolute; top: 15%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a3a4a 0%, #1a1a2a 100%);
  border: 4px solid #3a2a1a;
  border-radius: 4px;
  animation: pa-window 8s ease-in-out infinite;
}
.scn-penelope-anxious .bed {
  position: absolute; bottom: 10%; left: 15%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 8px 8px 20px 20px;
}
.scn-penelope-anxious .head {
  position: absolute; bottom: 26%; left: 44%; width: 22px; height: 24px;
  background: radial-gradient(circle at 50% 30%, #3a2a2a 0%, #1a1a2a 100%);
  border-radius: 50%;
  animation: pa-head 4s ease-in-out infinite;
}
.scn-penelope-anxious .body {
  position: absolute; bottom: 12%; left: 42%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: pa-body 4s ease-in-out infinite;
}
.scn-penelope-anxious .lamp {
  position: absolute; bottom: 40%; right: 20%; width: 8px; height: 14px;
  background: radial-gradient(circle at 50% 30%, #e8c060 0%, #a07020 60%, transparent 80%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(232,192,96,0.6);
  animation: pa-lamp 3s ease-in-out infinite alternate;
}
.scn-penelope-anxious .shadow {
  position: absolute; bottom: 10%; left: 35%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: pa-shadow 6s ease-in-out infinite;
}
@keyframes pa-wall { 0% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes pa-window { 0%,100% { box-shadow: inset 0 0 10px rgba(0,0,0,0.3); } 50% { box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } }
@keyframes pa-head { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(3deg); } }
@keyframes pa-body { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.98); } }
@keyframes pa-lamp { 0% { box-shadow: 0 0 15px 3px rgba(232,192,96,0.4); } 100% { box-shadow: 0 0 25px 8px rgba(232,192,96,0.8); } }
@keyframes pa-shadow { 0%,100% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(5px); } }

.scn-vision-visits-penelope {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #1a1a2a 70%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a5e 0%, transparent 60%);
}
.scn-vision-visits-penelope .wall,
.scn-vision-visits-penelope .floor,
.scn-vision-visits-penelope .window,
.scn-vision-visits-penelope .bed { /* reuse same positions, different keyframes */
  position: absolute; 
}
.scn-vision-visits-penelope .wall { inset: 0 0 30% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); animation: vp-wall 30s ease-in-out infinite; }
.scn-vision-visits-penelope .floor { bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-vision-visits-penelope .window { top:15%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #2a3a4a 0%, #1a1a2a 100%); border:4px solid #3a2a1a; border-radius:4px; }
.scn-vision-visits-penelope .bed { bottom:10%; left:15%; width:100px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:8px 8px 20px 20px; }
.scn-vision-visits-penelope .penelope {
  position: absolute; bottom: 18%; left: 42%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: vp-penelope 12s ease-in-out infinite;
}
.scn-vision-visits-penelope .vision {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, rgba(200,180,255,0.6) 0%, rgba(150,130,200,0.2) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  box-shadow: 0 0 30px 10px rgba(180,160,255,0.3);
  animation: vp-vision 10s ease-in-out infinite alternate;
}
.scn-vision-visits-penelope .glow {
  position: absolute; top: 20%; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(ellipse, rgba(200,180,255,0.15) 0%, transparent 70%);
  animation: vp-glow 8s ease-in-out infinite alternate;
}
.scn-vision-visits-penelope .motes {
  position: absolute; top: 10%; left: 0; width: 100%; height: 100%;
  background: radial-gradient(circle at 20% 30%, rgba(255,255,255,0.3) 0%, transparent 3%);
  background-size: 40px 40px;
  animation: vp-motes 40s linear infinite;
}
@keyframes vp-wall { 0% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes vp-penelope { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } }
@keyframes vp-vision { 0% { opacity: 0.3; transform: translateY(5px) scale(0.95); } 100% { opacity: 0.9; transform: translateY(-5px) scale(1.05); } }
@keyframes vp-glow { 0% { opacity: 0.5; transform: scale(1); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes vp-motes { 0% { transform: translateY(0); } 100% { transform: translateY(-100px); } }

.scn-penelope-answers-vision {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 20%, #1a1a2a 60%, #0a0a1a 100%),
    radial-gradient(ellipse at 40% 60%, #4a2a2a 0%, transparent 50%);
}
.scn-penelope-answers-vision .wall,
.scn-penelope-answers-vision .floor,
.scn-penelope-answers-vision .window,
.scn-penelope-answers-vision .bed {
  position: absolute;
}
.scn-penelope-answers-vision .wall { inset:0 0 30% 0; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); }
.scn-penelope-answers-vision .floor { bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0a0a1a 0%, #05050a 100%); }
.scn-penelope-answers-vision .window { top:15%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a2a3a 0%, #0a0a1a 100%); border:4px solid #2a1a0a; border-radius:4px; }
.scn-penelope-answers-vision .bed { bottom:10%; left:15%; width:100px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0505 100%); border-radius:8px 8px 20px 20px; }
.scn-penelope-answers-vision .penelope {
  position: absolute; bottom: 15%; left: 42%; width: 28px; height: 44px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: av-penelope 3s ease-in-out infinite;
}
.scn-penelope-answers-vision .vision {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, rgba(200,180,255,0.3) 0%, rgba(150,130,200,0.1) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(4px);
  box-shadow: 0 0 20px 8px rgba(180,160,255,0.1);
  animation: av-vision 4s ease-in-out infinite alternate;
}
.scn-penelope-answers-vision .shadow-corner {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  animation: av-shadow 5s ease-in-out infinite;
}
.scn-penelope-answers-vision .tear {
  position: absolute; bottom: 22%; left: 44%; width: 6px; height: 8px;
  background: radial-gradient(circle, rgba(200,200,255,0.8) 0%, transparent 100%);
  border-radius: 50%;
  animation: av-tear 4s ease-in-out infinite;
}
@keyframes av-penelope { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(5deg); } 75% { transform: translateY(2px) rotate(-3deg); } }
@keyframes av-vision { 0% { opacity: 0.5; transform: translateY(0) scale(1); } 100% { opacity: 0.2; transform: translateY(10px) scale(0.9); } }
@keyframes av-shadow { 0%,100% { opacity: 0.8; } 50% { opacity: 0.5; } }
@keyframes av-tear { 0% { transform: translateY(0) scaleY(1); opacity:0; } 20% { opacity:1; } 80% { transform: translateY(30px) scaleY(1.2); opacity:0.8; } 100% { transform: translateY(40px) scaleY(0.8); opacity:0; } }

/* suitors-ghosts-arrive - dark/dark */
.scn-suitors-ghosts-arrive {
  background: linear-gradient(160deg, #0a0a14 0%, #141428 40%, #1a1a3e 100%), radial-gradient(ellipse at 50% 100%, #2a2a5a 0%, transparent 70%);
}
.scn-suitors-ghosts-arrive .bg-abyss { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a14 0%, #1a1a3e 80%, #141428 100%); }
.scn-suitors-ghosts-arrive .mist-floor { position:absolute; bottom:10%; left:0; right:0; height:40%; background: linear-gradient(0deg, rgba(60,80,120,.5) 0%, transparent 100%); filter: blur(12px); animation: mist-roll-sga 14s ease-in-out infinite alternate; }
.scn-suitors-ghosts-arrive .ghost-cluster { position:absolute; bottom:20%; right:10%; width:30%; height:50%; background: radial-gradient(ellipse at 50% 50%, rgba(160,180,220,.15) 0%, transparent 70%); filter: blur(8px); animation: cluster-fade-sga 6s ease-in-out infinite alternate; }
.scn-suitors-ghosts-arrive .ghost-leader { position:absolute; bottom:22%; left:25%; width:60px; height:130px; background: linear-gradient(180deg, rgba(180,200,240,.4) 0%, rgba(100,120,180,.1) 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; filter: blur(3px); transform-origin: bottom center; animation: leader-float-sga 9s ease-in-out infinite; }
.scn-suitors-ghosts-arrive .ground-ridge { position:absolute; bottom:8%; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 30% 70% 0 0 / 50% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); animation: ridge-pulse-sga 20s ease-in-out infinite alternate; }
.scn-suitors-ghosts-arrive .fog-wisp-a { position:absolute; bottom:15%; left:-10%; width:50%; height:30%; background: radial-gradient(ellipse at 50% 50%, rgba(80,100,160,.3) 0%, transparent 100%); filter: blur(20px); animation: drift-wisp-a 25s linear infinite; }
.scn-suitors-ghosts-arrive .fog-wisp-b { position:absolute; bottom:25%; right:-10%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(80,100,160,.2) 0%, transparent 100%); filter: blur(15px); animation: drift-wisp-b 35s linear infinite reverse; }
@keyframes mist-roll-sga { 0% { transform: translateY(0) scaleY(1); opacity:.6 } 50% { transform: translateY(-6px) scaleY(1.1); opacity:1 } 100% { transform: translateY(3px) scaleY(.95); opacity:.7 } }
@keyframes cluster-fade-sga { 0% { opacity:.3; transform: scale(.95) } 50% { opacity:.7; transform: scale(1.05) } 100% { opacity:.4; transform: scale(1) } }
@keyframes leader-float-sga { 0% { transform: translateY(0) rotate(-2deg); opacity:.5 } 30% { transform: translateY(-10px) rotate(1deg); opacity:.8 } 60% { transform: translateY(-4px) rotate(-1deg); opacity:.6 } 100% { transform: translateY(0) rotate(0); opacity:.5 } }
@keyframes ridge-pulse-sga { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes drift-wisp-a { 0% { transform: translateX(0) translateY(0) scale(1) } 33% { transform: translateX(40vw) translateY(-10px) scale(1.3) } 66% { transform: translateX(80vw) translateY(5px) scale(.9) } 100% { transform: translateX(120vw) translateY(0) scale(1) } }
@keyframes drift-wisp-b { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-60vw) translateY(-15px) } 100% { transform: translateX(-120vw) translateY(0) } }

/* agamemnon-asks-amphimedon - calm/dark */
.scn-agamemnon-asks-amphimedon {
  background: linear-gradient(180deg, #05050a 0%, #0a0a18 60%, #12122a 100%), radial-gradient(ellipse at 70% 20%, #2a3a6a 0%, transparent 60%);
}
.scn-agamemnon-asks-amphimedon .bg-void { position:absolute; inset:0; background: linear-gradient(160deg, #05050a 0%, #0a0a18 100%); }
.scn-agamemnon-asks-amphimedon .starlight { position:absolute; top:10%; right:20%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,220,255,.4) 0%, rgba(200,220,255,.1) 40%, transparent 70%); border-radius:50%; filter: blur(4px); animation: star-glow-aaa 8s ease-in-out infinite alternate; }
.scn-agamemnon-asks-amphimedon .figure-left { position:absolute; bottom:22%; left:20%; width:70px; height:140px; background: linear-gradient(180deg, rgba(160,180,220,.3) 0%, rgba(80,100,140,.1) 100%); border-radius: 45% 40% 35% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: drift-left-aaa 12s ease-in-out infinite; }
.scn-agamemnon-asks-amphimedon .figure-right { position:absolute; bottom:20%; right:25%; width:60px; height:120px; background: linear-gradient(180deg, rgba(180,200,240,.25) 0%, rgba(100,120,180,.05) 100%); border-radius: 40% 45% 40% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: drift-right-aaa 14s ease-in-out infinite; }
.scn-agamemnon-asks-amphimedon .echo-ring { position:absolute; bottom:50%; left:50%; transform:translate(-50%, -50%); width:20px; height:20px; border: 1px solid rgba(150,180,220,.2); border-radius:50%; animation: grow-ring-aaa 10s ease-out infinite; }
.scn-agamemnon-asks-amphimedon .mote { position:absolute; top:30%; left:60%; width:4px; height:4px; background: rgba(200,220,255,.6); border-radius:50%; box-shadow: 0 0 6px 2px rgba(200,220,255,.3); animation: mote-drift-aaa 18s linear infinite; }
@keyframes star-glow-aaa { 0% { opacity:.4; transform: scale(.9) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.5; transform: scale(1) } }
@keyframes drift-left-aaa { 0% { transform: translateY(0) rotate(-1deg); opacity:.5 } 40% { transform: translateY(-8px) rotate(1deg); opacity:.7 } 70% { transform: translateY(-2px) rotate(0); opacity:.6 } 100% { transform: translateY(0) rotate(-1deg); opacity:.5 } }
@keyframes drift-right-aaa { 0% { transform: translateY(0) rotate(1deg); opacity:.4 } 50% { transform: translateY(-10px) rotate(-1deg); opacity:.7 } 100% { transform: translateY(0) rotate(1deg); opacity:.4 } }
@keyframes grow-ring-aaa { 0% { width:20px; height:20px; opacity:.6; border-width:2px } 50% { width:200px; height:200px; opacity:.1; border-width:1px } 100% { width:400px; height:400px; opacity:0; border-width:0 } }
@keyframes mote-drift-aaa { 0% { transform: translate(0, 0) scale(1); opacity:0 } 10% { opacity:1 } 50% { transform: translate(-100px, 80px) scale(1.5); opacity:.8 } 90% { opacity:1 } 100% { transform: translate(-200px, 160px) scale(1); opacity:0 } }

/* amphimedon-tells-story - tense/dark */
.scn-amphimedon-tells-story {
  background: linear-gradient(105deg, #0a0a14 0%, #1a1a2e 40%, #0f0f1a 100%), radial-gradient(ellipse at 20% 50%, #2a1a3a 0%, transparent 70%);
}
.scn-amphimedon-tells-story .bg-stark { position:absolute; inset:0; background: linear-gradient(160deg, #0a0a14 0%, #14142a 100%); }
.scn-amphimedon-tells-story .shadow-shaft { position:absolute; top:0; left:40%; width:25%; height:100%; background: linear-gradient(180deg, rgba(30,20,40,.8) 0%, transparent 100%); transform: skewX(-15deg); transform-origin: top left; animation: shaft-sway-ats 5s ease-in-out infinite alternate; }
.scn-amphimedon-tells-story .narrator { position:absolute; bottom:15%; left:35%; width:80px; height:150px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 45% 35% 40% / 60% 55% 40% 45%; transform-origin: bottom center; box-shadow: -10px 0 20px rgba(0,0,0,.5); animation: gesture-jab-ats 3s ease-in-out infinite; }
.scn-amphimedon-tells-story .story-echo { position:absolute; bottom:20%; right:15%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 50%, rgba(80,60,120,.2) 0%, transparent 70%); filter: blur(10px); animation: echo-pulse-ats 6s ease-in-out infinite alternate; }
.scn-amphimedon-tells-story .vibration-line { position:absolute; top:45%; left:5%; right:5%; height:2px; background: linear-gradient(90deg, transparent, rgba(200,180,220,.3), transparent); animation: line-vibrate-ats .4s ease-in-out infinite alternate; }
.scn-amphimedon-tells-story .accent-flash { position:absolute; top:30%; left:50%; width:10px; height:10px; background: rgba(180,160,200,.5); border-radius:50%; box-shadow: 0 0 30px 10px rgba(180,160,200,.2); animation: flash-flicker-ats 2s steps(2) infinite; }
@keyframes shaft-sway-ats { 0% { transform: skewX(-15deg) translateX(0); opacity:.8 } 50% { transform: skewX(-12deg) translateX(10px); opacity:1 } 100% { transform: skewX(-18deg) translateX(-5px); opacity:.7 } }
@keyframes gesture-jab-ats { 0% { transform: translateY(0) rotate(2deg) scale(1) } 20% { transform: translateY(-15px) rotate(-5deg) scale(1.05) } 40% { transform: translateY(-5px) rotate(3deg) scale(1) } 60% { transform: translateY(-20px) rotate(-8deg) scale(1.1) } 80% { transform: translateY(-8px) rotate(1deg) scale(1) } 100% { transform: translateY(0) rotate(2deg) scale(1) } }
@keyframes echo-pulse-ats { 0% { transform: scale(.95); opacity:.2 } 50% { transform: scale(1.1); opacity:.5 } 100% { transform: scale(1); opacity:.3 } }
@keyframes line-vibrate-ats { 0% { transform: translateY(0) scaleX(1) } 25% { transform: translateY(2px) scaleX(.98) } 50% { transform: translateY(-2px) scaleX(1.02) } 75% { transform: translateY(1px) scaleX(.99) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes flash-flicker-ats { 0% { opacity:0 } 50% { opacity:1 } 100% { opacity:0 } }

/* amphimedon-tells-penelopes-trick - tense/dim-interior */
.scn-amphimedon-tells-penelopes-trick {
  background: linear-gradient(180deg, #1a0f0a 0%, #2a1a10 50%, #1a0f0a 100%), radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 80%);
}
.scn-amphimedon-tells-penelopes-trick .bg-wall { position:absolute; inset:0; background: linear-gradient(125deg, #1a0f0a 0%, #2a1a10 100%); }
.scn-amphimedon-tells-penelopes-trick .fire-glow { position:absolute; bottom:0; left:0; right:0; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(180,100,40,.4) 0%, rgba(180,100,40,.1) 50%, transparent 100%); animation: glow-flicker-atp 3s ease-in-out infinite alternate; }
.scn-amphimedon-tells-penelopes-trick .loom-frame { position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:120px; height:160px; border: 6px solid #3a2a1a; border-radius: 4px; background: linear-gradient(180deg, #2a1a10 0%, #1a0f0a 100%); box-shadow: 0 0 30px rgba(0,0,0,.6), inset 0 0 20px rgba(0,0,0,.4); }
.scn-amphimedon-tells-penelopes-trick .shroud-day { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:100px; height:80px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 2px; opacity:.8; animation: weave-day-atp 8s ease-in-out infinite; }
.scn-amphimedon-tells-penelopes-trick .shroud-night { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:100px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%); border-radius: 2px; opacity:.6; animation: unravel-night-atp 8s ease-in-out infinite; }
.scn-amphimedon-tells-penelopes-trick .penelope-silhouette { position:absolute; bottom:22%; left:30%; width:40px; height:80px; background: #0a0505; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 20px rgba(0,0,0,.8); animation: silhouette-breathe-atp 5s ease-in-out infinite; }
.scn-amphimedon-tells-penelopes-trick .shadow-suitors { position:absolute; top:10%; right:10%; width:30%; height:70%; background: linear-gradient(180deg, rgba(20,10,5,.6) 0%, transparent 100%); border-radius: 60% 20% 40% 20% / 80% 30% 70% 20%; filter: blur(6px); transform-origin: top right; animation: shadow-loom-atp 7s ease-in-out infinite alternate; }
@keyframes glow-flicker-atp { 0% { opacity:.5; transform: scaleY(.95) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.7; transform: scaleY(1) } }
@keyframes weave-day-atp { 0% { clip-path: inset(0 0 80% 0); transform:translateX(-50%) translateY(0) } 25% { clip-path: inset(0 0 60% 0); transform:translateX(-50%) translateY(-2px) } 50% { clip-path: inset(0 0 40% 0); transform:translateX(-50%) translateY(0) } 75% { clip-path: inset(0 0 20% 0); transform:translateX(-50%) translateY(2px) } 100% { clip-path: inset(0 0 0 0); transform:translateX(-50%) translateY(0) } }
@keyframes unravel-night-atp { 0% { clip-path: inset(0 0 0 0); transform:translateX(-50%) translateY(0) } 25% { clip-path: inset(0 0 20% 0); transform:translateX(-50%) translateY(2px) } 50% { clip-path: inset(0 0 40% 0); transform:translateX(-50%) translateY(0) } 75% { clip-path: inset(0 0 60% 0); transform:translateX(-50%) translateY(-2px) } 100% { clip-path: inset(0 0 80% 0); transform:translateX(-50%) translateY(0) } }
@keyframes silhouette-breathe-atp { 0% { transform: translateY(0) rotate(0); opacity:.8 } 30% { transform: translateY(-3px) rotate(2deg); opacity:1 } 60% { transform: translateY(-1px) rotate(-1deg); opacity:.9 } 100% { transform: translateY(0) rotate(0); opacity:.8 } }
@keyframes shadow-loom-atp { 0% { transform: scale(1) translateX(0); opacity:.4 } 50% { transform: scale(1.05) translateX(-10px); opacity:.7 } 100% { transform: scale(.95) translateX(5px); opacity:.3 } }

.scn-footnote-fishing-with-paste {
  background: linear-gradient(180deg, #2a1e14 0%, #3d2b1f 50%, #1a120c 100%), radial-gradient(ellipse at 30% 60%, #4a3628 0%, transparent 60%);
}
.scn-footnote-fishing-with-paste .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3d2b1f 0%, #1a120c 100%); opacity: 0.6; animation: ffp-wall 12s ease-in-out infinite alternate;
}
.scn-footnote-fishing-with-paste .window-frame {
  position: absolute; top: 8%; left: 25%; width: 50%; height: 45%; border: 6px solid #5a3d2a; border-radius: 4px; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-footnote-fishing-with-paste .window-glass {
  position: absolute; top: 10%; left: 27%; width: 46%; height: 41%; background: linear-gradient(135deg, rgba(100,130,160,0.3) 0%, rgba(180,200,220,0.1) 100%); border-radius: 2px; animation: ffp-glass 20s ease-in-out infinite alternate;
}
.scn-footnote-fishing-with-paste .table {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 20%; background: linear-gradient(180deg, #5a3d2a 0%, #3a2a1a 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-footnote-fishing-with-paste .bowl {
  position: absolute; bottom: 26%; left: 38%; width: 60px; height: 20px; background: radial-gradient(ellipse at 50% 30%, #8a6a4a 0%, #5a3d2a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: ffp-bowl 6s ease-in-out infinite;
}
.scn-footnote-fishing-with-paste .spear {
  position: absolute; bottom: 30%; left: 55%; width: 4px; height: 80px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); transform: rotate(-15deg); transform-origin: bottom center; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: ffp-spear 8s ease-in-out infinite alternate;
}
.scn-footnote-fishing-with-paste .fish {
  position: absolute; bottom: 28%; left: 32%; width: 24px; height: 10px; background: radial-gradient(ellipse at 70% 50%, #6a8a6a 0%, #3a5a3a 100%); border-radius: 50% 50% 50% 50% / 40% 60% 40% 60%; transform: rotate(-5deg); animation: ffp-fish 5s ease-in-out infinite alternate;
}
.scn-footnote-fishing-with-paste .candle {
  position: absolute; bottom: 28%; left: 20%; width: 10px; height: 30px; background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); transform: rotate(2deg);
}
.scn-footnote-fishing-with-paste .flame {
  position: absolute; bottom: 50%; left: calc(20% + 3px); width: 8px; height: 20px; background: radial-gradient(ellipse at 50% 40%, #ffd080 0%, #ffa040 60%, #ff8020 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 20px 8px rgba(255,160,64,0.4); animation: ffp-flame 1.5s ease-in-out infinite alternate;
}
@keyframes ffp-wall { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; } }
@keyframes ffp-glass { 0% { opacity: 0.3; background-position: 0% 0%; } 50% { opacity: 0.5; background-position: 50% 50%; } 100% { opacity: 0.3; background-position: 100% 100%; } }
@keyframes ffp-bowl { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ffp-spear { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes ffp-fish { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes ffp-flame { 0% { transform: scaleY(1) rotate(-2deg); opacity: 0.9; } 50% { transform: scaleY(1.2) rotate(0deg); opacity: 1; } 100% { transform: scaleY(0.9) rotate(2deg); opacity: 0.8; } }

.scn-footnote-charybdis-line-missing {
  background: linear-gradient(180deg, #1e1610 0%, #2e2218 50%, #140e08 100%), radial-gradient(ellipse at 60% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-footnote-charybdis-line-missing .bg-desk {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2e2218 0%, #140e08 100%); opacity: 0.7; animation: clm-bg 15s ease-in-out infinite alternate;
}
.scn-footnote-charybdis-line-missing .book-left {
  position: absolute; bottom: 20%; left: 25%; width: 80px; height: 60px; background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(-8deg); transform-origin: bottom left; box-shadow: 2px 2px 6px rgba(0,0,0,0.5); animation: clm-book-l 10s ease-in-out infinite alternate;
}
.scn-footnote-charybdis-line-missing .book-right {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 60px; background: linear-gradient(135deg, #5a3a2a 0%, #2a1a10 100%); border-radius: 2px; transform: rotate(4deg); transform-origin: bottom left; box-shadow: 2px 2px 6px rgba(0,0,0,0.5); animation: clm-book-r 10s ease-in-out infinite alternate;
}
.scn-footnote-charybdis-line-missing .quill {
  position: absolute; bottom: 35%; left: 42%; width: 3px; height: 70px; background: linear-gradient(180deg, #c8b090 0%, #8a7a6a 100%); transform: rotate(20deg); transform-origin: bottom center; border-radius: 1px; animation: clm-quill 7s ease-in-out infinite;
}
.scn-footnote-charybdis-line-missing .inkwell {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 24px; background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a120c 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-footnote-charybdis-line-missing .candle {
  position: absolute; bottom: 24%; left: 60%; width: 8px; height: 28px; background: linear-gradient(180deg, #e8d0b0 0%, #b89878 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-footnote-charybdis-line-missing .flame {
  position: absolute; bottom: 44%; left: calc(60% + 2px); width: 6px; height: 16px; background: radial-gradient(ellipse at 50% 40%, #ffd080 0%, #ffa040 60%, #ff8020 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 16px 6px rgba(255,160,64,0.4); animation: clm-flame 1.8s ease-in-out infinite alternate;
}
.scn-footnote-charybdis-line-missing .whirlpool {
  position: absolute; top: 18%; left: 10%; width: 40px; height: 40px; background: radial-gradient(circle, #4a6a7a 0%, #2a4a5a 40%, transparent 60%); border-radius: 50%; animation: clm-whirl 25s linear infinite;
}
.scn-footnote-charybdis-line-missing .broken-line {
  position: absolute; bottom: 40%; left: 30%; width: 80px; height: 2px; background: linear-gradient(90deg, transparent 0%, #a08060 20%, #a08060 40%, transparent 45%, #a08060 55%, #a08060 80%, transparent 100%); border-radius: 1px; animation: clm-line 12s ease-in-out infinite;
}
@keyframes clm-bg { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes clm-book-l { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes clm-book-r { 0% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-2px); } 100% { transform: rotate(4deg) translateY(0); } }
@keyframes clm-quill { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-4px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes clm-flame { 0% { transform: scaleY(1) rotate(-3deg); opacity: 0.9; } 50% { transform: scaleY(1.3) rotate(0deg); opacity: 1; } 100% { transform: scaleY(0.8) rotate(3deg); opacity: 0.8; } }
@keyframes clm-whirl { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.1); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes clm-line { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(0.8); } 100% { opacity: 0.6; transform: scaleX(1); } }

.scn-footnote-afterthought-simile {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 50%, #0e0a08 100%), radial-gradient(ellipse at 40% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-footnote-afterthought-simile .bg-study {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2018 0%, #0e0a08 100%); opacity: 0.8; animation: afs-bg 18s ease-in-out infinite alternate;
}
.scn-footnote-afterthought-simile .chair {
  position: absolute; bottom: 12%; left: 10%; width: 40px; height: 70px; background: radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, #1a1410 100%); border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; transform: rotate(5deg); animation: afs-chair 8s ease-in-out infinite alternate;
}
.scn-footnote-afterthought-simile .desk {
  position: absolute; bottom: 8%; left: 20%; right: 5%; height: 25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6px; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-footnote-afterthought-simile .papers {
  position: absolute; bottom: 24%; left: 30%; width: 60px; height: 8px; background: linear-gradient(135deg, #c8b8a0 0%, #a09080 100%); border-radius: 1px; transform: rotate(-12deg); box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: afs-papers 14s ease-in-out infinite;
}
.scn-footnote-afterthought-simile .pen {
  position: absolute; bottom: 32%; left: 50%; width: 3px; height: 50px; background: linear-gradient(180deg, #b09880 0%, #786858 100%); transform: rotate(-30deg); transform-origin: bottom center; border-radius: 1px; animation: afs-pen 9s ease-in-out infinite;
}
.scn-footnote-afterthought-simile .ink {
  position: absolute; bottom: 22%; left: 42%; width: 16px; height: 18px; background: radial-gradient(ellipse at 50% 30%, #2a1a10 0%, #0a0604 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-footnote-afterthought-simile .candle {
  position: absolute; bottom: 24%; left: 65%; width: 8px; height: 26px; background: linear-gradient(180deg, #e0c8a8 0%, #b09878 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-footnote-afterthought-simile .flame {
  position: absolute; bottom: 44%; left: calc(65% + 2px); width: 6px; height: 14px; background: radial-gradient(ellipse at 50% 40%, #ffd080 0%, #ffa040 60%, #ff8020 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 14px 5px rgba(255,160,64,0.4); animation: afs-flame 2s ease-in-out infinite alternate;
}
.scn-footnote-afterthought-simile .hand-shadow {
  position: absolute; bottom: 28%; left: 22%; width: 20px; height: 30px; background: linear-gradient(180deg, rgba(30,20,10,0.6) 0%, rgba(10,8,6,0.8) 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(15deg); animation: afs-hand 6s ease-in-out infinite alternate;
}
@keyframes afs-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes afs-chair { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes afs-papers { 0% { transform: rotate(-12deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes afs-pen { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-5px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes afs-flame { 0% { transform: scaleY(1) rotate(-2deg); opacity: 0.9; } 50% { transform: scaleY(1.25) rotate(1deg); opacity: 1; } 100% { transform: scaleY(0.85) rotate(2deg); opacity: 0.85; } }
@keyframes afs-hand { 0% { opacity: 0.5; transform: rotate(15deg) translateX(0); } 50% { opacity: 0.8; transform: rotate(10deg) translateX(3px); } 100% { opacity: 0.5; transform: rotate(15deg) translateX(0); } }

.scn-footnote-gold-ornaments {
  background: linear-gradient(180deg, #1a1412 0%, #2a201c 50%, #0e0a08 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-footnote-gold-ornaments .bg-treasure {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a201c 0%, #0e0a08 100%); opacity: 0.7; animation: goo-bg 14s ease-in-out infinite alternate;
}
.scn-footnote-gold-ornaments .table-gold {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 22%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8px; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-footnote-gold-ornaments .bowl-gold {
  position: absolute; bottom: 28%; left: 32%; width: 50px; height: 18px; background: radial-gradient(ellipse at 50% 30%, #d0a870 0%, #a08050 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4), inset 0 2px 4px rgba(255,215,140,0.3); animation: goo-bowl 7s ease-in-out infinite;
}
.scn-footnote-gold-ornaments .ring {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 20px; background: radial-gradient(circle, #e0b880 0%, #a08050 50%, #705030 100%); border-radius: 50%; box-shadow: 0 0 8px 3px rgba(200,160,80,0.3); transform: rotate(20deg); animation: goo-ring 6s ease-in-out infinite alternate;
}
.scn-footnote-gold-ornaments .scroll {
  position: absolute; bottom: 22%; left: 45%; width: 30px; height: 8px; background: linear-gradient(180deg, #c8b090 0%, #a08878 100%); border-radius: 1px; transform: rotate(-25deg); box-shadow: 0 1px 3px rgba(0,0,0,0.3); animation: goo-scroll 12s ease-in-out infinite;
}
.scn-footnote-gold-ornaments .book {
  position: absolute; bottom: 24%; left: 60%; width: 30px; height: 22px; background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(5deg); box-shadow: 1px 1px 4px rgba(0,0,0,0.5);
}
.scn-footnote-gold-ornaments .candle {
  position: absolute; bottom: 26%; left: 22%; width: 8px; height: 24px; background: linear-gradient(180deg, #e0c8a8 0%, #b09878 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-footnote-gold-ornaments .flame {
  position: absolute; bottom: 44%; left: calc(22% + 2px); width: 6px; height: 14px; background: radial-gradient(ellipse at 50% 40%, #ffd080 0%, #ffa040 60%, #ff8020 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 16px 6px rgba(255,160,64,0.4); animation: goo-flame 1.6s ease-in-out infinite alternate;
}
.scn-footnote-gold-ornaments .staff-shadow {
  position: absolute; bottom: 20%; left: 8%; width: 6px; height: 80px; background: linear-gradient(180deg, rgba(40,30,20,0.6) 0%, rgba(20,14,10,0.8) 100%); border-radius: 2px; transform: rotate(8deg); transform-origin: bottom center; animation: goo-staff 9s ease-in-out infinite alternate;
}
@keyframes goo-bg { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes goo-bowl { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes goo-ring { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(30deg) scale(1.05); } 100% { transform: rotate(20deg) scale(1); } }
@keyframes goo-scroll { 0% { transform: rotate(-25deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-3px); } 100% { transform: rotate(-25deg) translateY(0); } }
@keyframes goo-flame { 0% { transform: scaleY(1) rotate(-2deg); opacity: 0.9; } 50% { transform: scaleY(1.2) rotate(1deg); opacity: 1; } 100% { transform: scaleY(0.85) rotate(2deg); opacity: 0.85; } }
@keyframes goo-staff { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-4px); } 100% { transform: rotate(8deg) translateY(0); } }

/* scene: therstites-eurybates */
.scn-footnote-therstites-eurybates {
  background:
    linear-gradient(180deg, #2a1f16 0%, #3d2c1e 30%, #4a3625 60%, #2e1f14 100%),
    radial-gradient(ellipse at 50% 0%, #6b4c32 0%, transparent 70%);
}
.scn-footnote-therstites-eurybates .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5e412a 0%, #3a281b 100%);
  border-radius: 0 0 8% 8% / 0 0 20% 20%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
  animation: te-wall 14s ease-in-out infinite alternate;
}
.scn-footnote-therstites-eurybates .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2e1f14 0%, #1c130c 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
  animation: te-floor 12s ease-in-out infinite alternate;
}
.scn-footnote-therstites-eurybates .figure-hunch {
  position: absolute;
  bottom: 25%;
  left: 42%;
  width: 24px;
  height: 42px;
  background: linear-gradient(180deg, #1a120c 0%, #0b0806 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: 0 0 10px rgba(0,0,0,0.8);
  animation: te-hunch 6s ease-in-out infinite;
}
.scn-footnote-therstites-eurybates .cloak {
  position: absolute;
  bottom: 22%;
  left: 38%;
  width: 34px;
  height: 28px;
  background: linear-gradient(180deg, #2e1f14 0%, #3d2c1e 50%, #1c130c 100%);
  border-radius: 20% 20% 50% 50% / 30% 30% 70% 70%;
  transform: rotate(8deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: te-cloak 5s ease-in-out infinite;
}
.scn-footnote-therstites-eurybates .lantern-light {
  position: absolute;
  top: 40%;
  right: 15%;
  width: 10px;
  height: 12px;
  background: radial-gradient(circle, #f0c868 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(176,128,64,0.6), 0 0 60px 20px rgba(176,128,64,0.3);
  animation: te-glow 4s ease-in-out infinite alternate;
}
.scn-footnote-therstites-eurybates .shadow {
  position: absolute;
  bottom: 22%;
  left: 36%;
  width: 50px;
  height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  animation: te-shadow 6s ease-in-out infinite alternate;
}
.scn-footnote-therstites-eurybates .grille {
  position: absolute;
  top: 8%;
  left: 10%;
  width: 60px;
  height: 40px;
  border: 3px solid rgba(100,70,40,0.4);
  border-radius: 4px;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 6px, rgba(100,70,40,0.3) 6px, rgba(100,70,40,0.3) 8px);
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: te-grille 30s linear infinite;
}
@keyframes te-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes te-floor { 0% { transform: translateY(0px); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0px); } }
@keyframes te-hunch { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes te-cloak { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(10deg) translateX(2px); } 100% { transform: rotate(8deg) translateX(0); } }
@keyframes te-glow { 0% { box-shadow: 0 0 20px 6px rgba(176,128,64,0.4), 0 0 40px 12px rgba(176,128,64,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 40px 14px rgba(240,200,104,0.6), 0 0 80px 24px rgba(240,200,104,0.3); opacity: 1; } 100% { box-shadow: 0 0 25px 8px rgba(176,128,64,0.5), 0 0 50px 16px rgba(176,128,64,0.25); opacity: 0.9; } }
@keyframes te-shadow { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.2) translateY(2px); } 100% { transform: scaleY(1); } }
@keyframes te-grille { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }

/* scene: eurynome-euryclea-confusion */
.scn-footnote-eurynome-euryclea-confusion {
  background:
    linear-gradient(180deg, #1f1511 0%, #3a281d 40%, #4a3524 70%, #2a1b12 100%),
    radial-gradient(ellipse at 60% 80%, #6b4a30 0%, transparent 70%);
}
.scn-footnote-eurynome-euryclea-confusion .bed {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 60%;
  height: 30%;
  background: linear-gradient(180deg, #4a3524 0%, #2a1b12 100%);
  border-radius: 8% 8% 4% 4% / 20% 20% 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: ecc-bed 16s ease-in-out infinite alternate;
}
.scn-footnote-eurynome-euryclea-confusion .ulysses {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 40px;
  height: 25px;
  background: linear-gradient(180deg, #1c130c 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ecc-ulysses 8s ease-in-out infinite;
}
.scn-footnote-eurynome-euryclea-confusion .nurse {
  position: absolute;
  bottom: 28%;
  right: 26%;
  width: 28px;
  height: 48px;
  background: linear-gradient(180deg, #2e221a 0%, #1a100b 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: scaleX(-1);
  box-shadow: 0 6px 10px rgba(0,0,0,0.6);
  animation: ecc-nurse 10s ease-in-out infinite;
}
.scn-footnote-eurynome-euryclea-confusion .cloak-throw {
  position: absolute;
  bottom: 32%;
  right: 32%;
  width: 45px;
  height: 20px;
  background: linear-gradient(180deg, #5e4028 0%, #3d2c1e 100%);
  border-radius: 60% 20% 40% 60% / 40% 30% 70% 50%;
  transform: rotate(-30deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ecc-cloak 7s ease-in-out infinite;
}
.scn-footnote-eurynome-euryclea-confusion .lamp {
  position: absolute;
  top: 30%;
  left: 50%;
  width: 8px;
  height: 12px;
  background: radial-gradient(circle, #f0c868 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(176,128,64,0.5), 0 0 60px 20px rgba(176,128,64,0.2);
  animation: ecc-lamp 5s ease-in-out infinite alternate;
}
.scn-footnote-eurynome-euryclea-confusion .wall-rug {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 80%;
  height: 10%;
  background: linear-gradient(180deg, #4a3625 0%, #2e1f14 100%);
  border-radius: 10% 10% 0 0;
  filter: blur(4px);
  opacity: 0.6;
  animation: ecc-rug 20s linear infinite;
}
.scn-footnote-eurynome-euryclea-confusion .footstool {
  position: absolute;
  bottom: 22%;
  left: 40%;
  width: 20px;
  height: 12px;
  background: linear-gradient(180deg, #3d2c1e 0%, #1c130c 100%);
  border-radius: 10%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
  animation: ecc-stool 9s ease-in-out infinite;
}
@keyframes ecc-bed { 0% { opacity: 0.9; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.9; transform: scaleY(1); } }
@keyframes ecc-ulysses { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes ecc-nurse { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-4px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes ecc-cloak { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-28deg) translateX(3px); } 100% { transform: rotate(-30deg) translateX(0); } }
@keyframes ecc-lamp { 0% { box-shadow: 0 0 20px 6px rgba(176,128,64,0.4), 0 0 40px 12px rgba(176,128,64,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 40px 14px rgba(240,200,104,0.6), 0 0 80px 24px rgba(240,200,104,0.3); opacity: 1; } 100% { box-shadow: 0 0 25px 8px rgba(176,128,64,0.5), 0 0 50px 16px rgba(176,128,64,0.25); opacity: 0.9; } }
@keyframes ecc-rug { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes ecc-stool { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }

/* scene: court-floor */
.scn-footnote-court-floor {
  background:
    linear-gradient(180deg, #2a1f16 0%, #3d2c1e 30%, #4a3625 60%, #2e1f14 100%),
    radial-gradient(ellipse at 50% 100%, #1c130c 0%, transparent 80%);
}
.scn-footnote-court-floor .ground {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #4a3625 0%, #2a1b12 100%);
  border-radius: 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: cf-ground 18s ease-in-out infinite;
}
.scn-footnote-court-floor .court-wall {
  position: absolute;
  inset: 0 0 70% 0;
  background: linear-gradient(180deg, #5e412a 0%, #3a281b 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
  animation: cf-wall 14s ease-in-out infinite alternate;
}
.scn-footnote-court-floor .column-left {
  position: absolute;
  bottom: 10%;
  left: 10%;
  width: 8px;
  height: 60%;
  background: linear-gradient(180deg, #6b4c32 0%, #3d2c1e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: cf-col 20s ease-in-out infinite;
}
.scn-footnote-court-floor .column-right {
  position: absolute;
  bottom: 10%;
  right: 10%;
  width: 8px;
  height: 60%;
  background: linear-gradient(180deg, #6b4c32 0%, #3d2c1e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: cf-col 20s ease-in-out infinite reverse;
}
.scn-footnote-court-floor .table-slab {
  position: absolute;
  bottom: 35%;
  left: 35%;
  width: 30%;
  height: 8%;
  background: linear-gradient(180deg, #5e412a 0%, #4a3625 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: cf-table 12s ease-in-out infinite;
}
.scn-footnote-court-floor .bench {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 40px;
  height: 6%;
  background: linear-gradient(180deg, #3d2c1e 0%, #2e1f14 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: cf-bench 16s ease-in-out infinite;
}
.scn-footnote-court-floor .shadow-patch {
  position: absolute;
  bottom: 15%;
  left: 25%;
  width: 50%;
  height: 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 80%);
  filter: blur(6px);
  animation: cf-shadow 22s ease-in-out infinite;
}
.scn-footnote-court-floor .crack {
  position: absolute;
  bottom: 20%;
  left: 15%;
  width: 30px;
  height: 4px;
  background: linear-gradient(90deg, transparent, #1c130c 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: cf-crack 30s linear infinite;
}
@keyframes cf-ground { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes cf-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes cf-col { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cf-table { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(0.98); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes cf-bench { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cf-shadow { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cf-crack { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* scene: axe-feat */
.scn-footnote-axe-feat {
  background:
    linear-gradient(180deg, #1f1511 0%, #3a281d 40%, #4a3524 70%, #2a1b12 100%),
    radial-gradient(ellipse at 50% 80%, #6b4a30 0%, transparent 70%);
}
.scn-footnote-axe-feat .bg-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #5e412a 0%, #3a281b 100%);
  border-radius: 0 0 10% 10% / 0 0 20% 20%;
  box-shadow: inset 0 -30px 60px rgba(0,0,0,0.7);
  animation: af-wall 15s ease-in-out infinite alternate;
}
.scn-footnote-axe-feat .floor-line {
  position: absolute;
  bottom: 25%;
  left: 0;
  right: 0;
  height: 75%;
  background: linear-gradient(180deg, #2e1f14 0%, #1c130c 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: af-floor 12s ease-in-out infinite;
}
.scn-footnote-axe-feat .axe-1 {
  position: absolute;
  bottom: 25%;
  left: 25%;
  width: 12px;
  height: 40px;
  background: linear-gradient(180deg, #6b4c32 0%, #3d2c1e 100%);
  border-radius: 2px 2px 8px 8px;
  box-shadow: inset -2px 0 4px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: af-axe 6s ease-in-out infinite;
}
.scn-footnote-axe-feat .axe-2 {
  position: absolute;
  bottom: 25%;
  left: 38%;
  width: 12px;
  height: 40px;
  background: linear-gradient(180deg, #6b4c32 0%, #3d2c1e 100%);
  border-radius: 2px 2px 8px 8px;
  box-shadow: inset -2px 0 4px rgba(0,0,0,0.5);
  transform: rotate(2deg);
  animation: af-axe 6s ease-in-out infinite 0.5s;
}
.scn-footnote-axe-feat .axe-3 {
  position: absolute;
  bottom: 25%;
  left: 51%;
  width: 12px;
  height: 40px;
  background: linear-gradient(180deg, #6b4c32 0%, #3d2c1e 100%);
  border-radius: 2px 2px 8px 8px;
  box-shadow: inset -2px 0 4px rgba(0,0,0,0.5);
  transform: rotate(4deg);
  animation: af-axe 6s ease-in-out infinite 1s;
}
.scn-footnote-axe-feat .bow {
  position: absolute;
  bottom: 30%;
  left: 10%;
  width: 50px;
  height: 8px;
  background: linear-gradient(180deg, #5e412a 0%, #3d2c1e 100%);
  border-radius: 50%;
  transform: rotate(20deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: af-bow 10s ease-in-out infinite;
}
.scn-footnote-axe-feat .arrow {
  position: absolute;
  bottom: 32%;
  left: 12%;
  width: 60px;
  height: 3px;
  background: linear-gradient(90deg, #1c130c 0%, #4a3625 50%, #1c130c 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  box-shadow: 0 1px 2px rgba(0,0,0,0.4);
  animation: af-arrow 8s ease-in-out infinite;
}
.scn-footnote-axe-feat .table-small {
  position: absolute;
  bottom: 25%;
  left: 55%;
  width: 20px;
  height: 10px;
  background: linear-gradient(180deg, #5e412a 0%, #3d2c1e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: af-table 14s ease-in-out infinite;
}
.scn-footnote-axe-feat .ulysses-silhouette {
  position: absolute;
  bottom: 20%;
  right: 10%;
  width: 18px;
  height: 50px;
  background: linear-gradient(180deg, #1a120c 0%, #0b0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.8);
  animation: af-ulysses 9s ease-in-out infinite;
}
@keyframes af-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes af-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes af-axe { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes af-bow { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(22deg) translateX(2px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes af-arrow { 0% { transform: rotate(15deg) scaleX(1); } 50% { transform: rotate(17deg) scaleX(0.95); } 100% { transform: rotate(15deg) scaleX(1); } }
@keyframes af-table { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes af-ulysses { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-4px); } 100% { transform: rotate(-3deg) translateY(0); } }

.scn-footnote-odyssean-dactylism {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 50%, #0f0b08 100%), radial-gradient(ellipse at 50% 80%, #3a2a1e 0%, transparent 70%);
}
.scn-footnote-odyssean-dactylism .bg {
  position: absolute; inset: 0; background: radial-gradient(circle at 60% 70%, #4a3420 0%, transparent 60%);
  animation: ods-bg 8s ease-in-out infinite alternate;
}
.scn-footnote-odyssean-dactylism .table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #3a2618 0%, #1a120a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: ods-table 12s ease-in-out infinite alternate;
}
.scn-footnote-odyssean-dactylism .book {
  position: absolute; bottom: 18%; left: 25%; width: 35%; height: 28%; background: linear-gradient(135deg, #c8a87a 0%, #a08050 50%, #7a6040 100%);
  border-radius: 4% 4% 8% 8% / 6% 6% 12% 12%; transform: rotate(-2deg); box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: ods-book 6s ease-in-out infinite;
}
.scn-footnote-odyssean-dactylism .scroll {
  position: absolute; bottom: 22%; left: 10%; width: 15%; height: 12%; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform: rotate(15deg); box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: ods-scroll 9s ease-in-out infinite alternate;
}
.scn-footnote-odyssean-dactylism .candle {
  position: absolute; bottom: 30%; left: 65%; width: 4%; height: 14%; background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 50%, #8a6030 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 8px 2px rgba(255,200,100,.5);
  animation: ods-candle 3s ease-in-out infinite;
}
.scn-footnote-odyssean-dactylism .glow {
  position: absolute; bottom: 30%; left: 63%; width: 12%; height: 20%; background: radial-gradient(circle, rgba(255,200,100,.6) 0%, transparent 70%);
  mix-blend-mode: screen; pointer-events: none;
  animation: ods-glow 3s ease-in-out infinite alternate;
}
.scn-footnote-odyssean-dactylism .hand {
  position: absolute; bottom: 20%; left: 55%; width: 8%; height: 14%; background: linear-gradient(180deg, #2a1e18 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); transform-origin: bottom center;
  animation: ods-hand 4s ease-in-out infinite;
}
.scn-footnote-odyssean-dactylism .quill {
  position: absolute; bottom: 22%; left: 58%; width: 10%; height: 2%; background: linear-gradient(90deg, #c8a870 0%, #a08050 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%; transform: rotate(30deg); transform-origin: left center;
  animation: ods-quill 4s ease-in-out infinite;
}
@keyframes ods-bg { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes ods-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ods-book { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes ods-scroll { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ods-candle { 0% { height: 14%; opacity: .9; } 50% { height: 15%; opacity: 1; } 100% { height: 13%; opacity: .95; } }
@keyframes ods-glow { 0% { transform: scale(1); opacity: .6; } 50% { transform: scale(1.2); opacity: .9; } 100% { transform: scale(1); opacity: .7; } }
@keyframes ods-hand { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(2px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes ods-quill { 0% { transform: rotate(30deg) scaleY(1); } 50% { transform: rotate(28deg) scaleY(1.1); } 100% { transform: rotate(30deg) scaleY(1); } }

.scn-footnote-bound-to-mast {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 40%, #2a2a5e 70%, #0a0a2a 100%), radial-gradient(ellipse at 50% 30%, #2a3a5a 0%, transparent 80%);
}
.scn-footnote-bound-to-mast .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #1a2a4a 0%, transparent 100%);
  animation: btm-sky 12s ease-in-out infinite alternate;
}
.scn-footnote-bound-to-mast .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 30% 70% 0 0 / 20% 30% 0 0; box-shadow: inset 0 4px 20px rgba(0,0,0,.4);
  animation: btm-sea 18s ease-in-out infinite;
}
.scn-footnote-bound-to-mast .ship {
  position: absolute; bottom: 25%; left: 50%; width: 35%; height: 20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: translateX(-50%);
  animation: btm-ship 10s ease-in-out infinite alternate;
}
.scn-footnote-bound-to-mast .mast {
  position: absolute; bottom: 35%; left: 50%; width: 2%; height: 40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  transform: translateX(-50%);
  animation: btm-mast 8s ease-in-out infinite;
}
.scn-footnote-bound-to-mast .figure {
  position: absolute; bottom: 52%; left: 50%; width: 4%; height: 10%; background: #1a120a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%);
  animation: btm-figure 6s ease-in-out infinite;
}
.scn-footnote-bound-to-mast .spear {
  position: absolute; bottom: 56%; left: 52%; width: 1%; height: 14%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  transform: rotate(20deg); transform-origin: bottom center;
  animation: btm-spear 4s ease-in-out infinite;
}
.scn-footnote-bound-to-mast .moon {
  position: absolute; top: 8%; right: 20%; width: 6%; height: 6%; background: radial-gradient(circle, #d0d8e0 0%, #a0b0c0 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(200,220,240,.3);
  animation: btm-moon 15s ease-in-out infinite alternate;
}
.scn-footnote-bound-to-mast .star {
  position: absolute; top: 12%; left: 30%; width: 1%; height: 1%; background: #ffffff;
  border-radius: 50%; box-shadow: 0 0 4px 2px rgba(255,255,255,.5);
  animation: btm-star 4s ease-in-out infinite;
}
.scn-footnote-bound-to-mast .sparkle {
  position: absolute; top: 6%; left: 60%; width: 1.5%; height: 1.5%; background: #ffffff;
  border-radius: 50%; box-shadow: 0 0 6px 3px rgba(255,255,255,.6);
  animation: btm-sparkle 5s ease-in-out infinite reverse;
}
@keyframes btm-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes btm-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes btm-ship { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes btm-mast { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes btm-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes btm-spear { 0% { transform: rotate(20deg) scaleY(1); } 50% { transform: rotate(25deg) scaleY(1.05); } 100% { transform: rotate(20deg) scaleY(1); } }
@keyframes btm-moon { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }
@keyframes btm-star { 0% { opacity: .5; } 50% { opacity: 1; } 100% { opacity: .6; } }
@keyframes btm-sparkle { 0% { opacity: .4; } 50% { opacity: .9; } 100% { opacity: .5; } }

.scn-footnote-wandering-rocks {
  background: linear-gradient(180deg, #0c1a2c 0%, #1a2a4a 50%, #0a1a2a 100%), radial-gradient(ellipse at 70% 60%, #1a2a3a 0%, transparent 80%);
}
.scn-footnote-wandering-rocks .bg-water {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a1a2a 0%, transparent 60%);
  animation: wro-water 15s ease-in-out infinite alternate;
}
.scn-footnote-wandering-rocks .rock-left {
  position: absolute; bottom: 20%; left: 5%; width: 25%; height: 35%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; transform: rotate(-5deg);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: wro-rock-l 20s ease-in-out infinite;
}
.scn-footnote-wandering-rocks .rock-right {
  position: absolute; bottom: 15%; right: 5%; width: 30%; height: 45%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 50%, #1a2a1a 100%);
  border-radius: 40% 20% 10% 10% / 50% 30% 20% 20%; transform: rotate(8deg);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: wro-rock-r 22s ease-in-out infinite alternate;
}
.scn-footnote-wandering-rocks .ship-hull {
  position: absolute; bottom: 40%; left: 40%; width: 20%; height: 10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  animation: wro-ship 12s ease-in-out infinite;
}
.scn-footnote-wandering-rocks .sail {
  position: absolute; bottom: 48%; left: 44%; width: 8%; height: 14%; background: linear-gradient(180deg, #c8c0a0 0%, #a09878 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform: rotate(-10deg);
  animation: wro-sail 10s ease-in-out infinite alternate;
}
.scn-footnote-wandering-rocks .whirlpool {
  position: absolute; bottom: 30%; left: 48%; width: 12%; height: 12%; background: radial-gradient(circle at 50% 50%, #1a2a3a 0%, transparent 70%);
  border-radius: 50%; mix-blend-mode: overlay;
  animation: wro-whirl 8s linear infinite;
}
.scn-footnote-wandering-rocks .spray {
  position: absolute; top: 30%; left: 20%; width: 10%; height: 8%; background: radial-gradient(circle, rgba(255,255,255,.2) 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: wro-spray 6s ease-in-out infinite alternate;
}
@keyframes wro-water { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes wro-rock-l { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes wro-rock-r { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes wro-ship { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wro-sail { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(-8deg) scaleY(1.05); } 100% { transform: rotate(-10deg) scaleY(1); } }
@keyframes wro-whirl { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.2); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes wro-spray { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-10px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }

.scn-footnote-sirens-salinas {
  background: linear-gradient(180deg, #1a2030 0%, #2a3a50 40%, #3a4a60 70%, #1a2a3a 100%), radial-gradient(ellipse at 50% 70%, #2a3a4a 0%, transparent 80%);
}
.scn-footnote-sirens-salinas .grad-sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #2a3a4a 0%, transparent 100%);
  animation: srs-sky 14s ease-in-out infinite alternate;
}
.scn-footnote-sirens-salinas .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 4px 20px rgba(0,0,0,.3);
  animation: srs-sea 20s ease-in-out infinite;
}
.scn-footnote-sirens-salinas .island-left {
  position: absolute; bottom: 25%; left: 15%; width: 20%; height: 25%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform: rotate(-5deg);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: srs-island-l 18s ease-in-out infinite;
}
.scn-footnote-sirens-salinas .island-right {
  position: absolute; bottom: 25%; right: 15%; width: 22%; height: 28%; background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%);
  border-radius: 60% 40% 20% 20% / 70% 50% 30% 30%; transform: rotate(5deg);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: srs-island-r 16s ease-in-out infinite alternate;
}
.scn-footnote-sirens-salinas .siren-left {
  position: absolute; bottom: 38%; left: 22%; width: 4%; height: 12%; background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg);
  animation: srs-siren-l 6s ease-in-out infinite;
}
.scn-footnote-sirens-salinas .siren-right {
  position: absolute; bottom: 38%; right: 22%; width: 4%; height: 12%; background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg);
  animation: srs-siren-r 7s ease-in-out infinite reverse;
}
.scn-footnote-sirens-salinas .waves {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 10%; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.05) 0%, transparent 70%);
  filter: blur(4px); animation: srs-waves 12s ease-in-out infinite alternate;
}
.scn-footnote-sirens-salinas .mist {
  position: absolute; top: 20%; left: 0; right: 0; height: 20%; background: radial-gradient(ellipse at 50% 50%, rgba(200,220,240,.1) 0%, transparent 70%);
  filter: blur(8px); animation: srs-mist 25s ease-in-out infinite alternate;
}
@keyframes srs-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes srs-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes srs-island-l { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-4px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes srs-island-r { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes srs-siren-l { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(2px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes srs-siren-r { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(-2px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes srs-waves { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .4; } }
@keyframes srs-mist { 0% { opacity: .2; transform: scale(1); } 50% { opacity: .4; transform: scale(1.05); } 100% { opacity: .2; transform: scale(1); } }

/* circe-instructs-sacrifice */
.scn-circe-instructs-sacrifice { background: linear-gradient(180deg, #1a1325 0%, #0d0a12 100%), radial-gradient(ellipse at 40% 60%, #3a1a0a 0%, transparent 60%); }
.scn-circe-instructs-sacrifice .wall    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a1e30 0%, #0d0a12 100%); }
.scn-circe-instructs-sacrifice .floor   { position:absolute; bottom:0; left:0; right:0; height:50%; background: #1a1018; }
.scn-circe-instructs-sacrifice .trench  { position:absolute; bottom:25%; left:30%; width:40%; height:8%; background: #0d080d; border-radius: 20% 20% 0 0; }
.scn-circe-instructs-sacrifice .altar   { position:absolute; bottom:20%; left:50%; width:50px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a, #1a1010); border-radius: 10% 10% 5% 5%; }
.scn-circe-instructs-sacrifice .fire    { position:absolute; bottom:30%; left:45%; width:20px; height:30px; background: radial-gradient(circle, #e08040 0%, #b05020 50%, transparent 80%); border-radius:50%; animation: cs-fire 3s ease-in-out infinite alternate; }
.scn-circe-instructs-sacrifice .figure  { position:absolute; bottom:15%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a2a 0%, #0d0a0d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-figure 5s ease-in-out infinite; }
.scn-circe-instructs-sacrifice .vessel  { position:absolute; bottom:22%; left:55%; width:12px; height:10px; background: #4a3a2a; border-radius: 50% 50% 30% 30%; box-shadow: 0 0 6px #6a4a2a; animation: cs-vessel 4s ease-in-out infinite alternate; }
.scn-circe-instructs-sacrifice .ghost-shape { position:absolute; bottom:30%; right:20%; width:30px; height:40px; background: rgba(100,80,120,0.3); border-radius: 50% 50% 40% 40%; filter: blur(4px); animation: cs-ghost 8s ease-in-out infinite alternate; }
@keyframes cs-fire   { 0% { opacity:.8; transform:scale(1) } 50% { opacity:1; transform:scale(1.2) } 100% { opacity:.7; transform:scale(1) } }
@keyframes cs-figure { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(5px) rotate(2deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes cs-vessel { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(5deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes cs-ghost  { 0% { opacity:.2; transform:translateX(0) translateY(0) } 50% { opacity:.5; transform:translateX(10px) translateY(-5px) } 100% { opacity:.2; transform:translateX(0) translateY(0) } }

/* circe-instructs-nekyia */
.scn-circe-instructs-nekyia { background: linear-gradient(180deg, #12102a 0%, #080518 100%), radial-gradient(ellipse at 50% 70%, #2a1a3a 0%, transparent 50%); }
.scn-circe-instructs-nekyia .bg-deep    { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #1a1430 0%, #0d0a1a 100%); }
.scn-circe-instructs-nekyia .floor      { position:absolute; bottom:0; left:0; right:0; height:45%; background: #100b12; }
.scn-circe-instructs-nekyia .altar      { position:absolute; bottom:22%; left:50%; width:60px; height:25px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a20, #1a1010); border-radius: 10% 10% 5% 5%; }
.scn-circe-instructs-nekyia .ewe        { position:absolute; bottom:25%; left:35%; width:22px; height:14px; background: #4a3a3a; border-radius: 50% 50% 30% 30%; animation: cn-ewe 6s ease-in-out infinite; }
.scn-circe-instructs-nekyia .ram        { position:absolute; bottom:25%; left:50%; width:24px; height:16px; background: #2a1a1a; border-radius: 50% 50% 30% 30%; animation: cn-ram 6s ease-in-out infinite 3s; }
.scn-circe-instructs-nekyia .fire       { position:absolute; bottom:28%; left:42%; width:14px; height:18px; background: radial-gradient(circle, #e07030 0%, #b04820 50%, transparent 80%); border-radius:50%; animation: cn-fire 3s ease-in-out infinite alternate; }
.scn-circe-instructs-nekyia .figure-back { position:absolute; bottom:15%; left:60%; width:18px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(180deg); animation: cn-figure-back 7s ease-in-out infinite; }
.scn-circe-instructs-nekyia .ghost-haze { position:absolute; inset:30% 10% 20% 10%; background: radial-gradient(ellipse at 50% 50%, rgba(80,60,120,0.2) 0%, transparent 70%); filter: blur(8px); animation: cn-haze 12s ease-in-out infinite alternate; }
@keyframes cn-ewe        { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes cn-ram        { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes cn-fire       { 0% { opacity:.7; transform:scale(1) } 50% { opacity:1; transform:scale(1.3) } 100% { opacity:.6; transform:scale(1) } }
@keyframes cn-figure-back { 0% { transform:rotate(180deg) translateX(0) } 50% { transform:rotate(180deg) translateX(-4px) } 100% { transform:rotate(180deg) translateX(0) } }
@keyframes cn-haze       { 0% { opacity:.3; transform:scale(1) } 50% { opacity:.6; transform:scale(1.1) } 100% { opacity:.3; transform:scale(1) } }

/* departure-from-circe */
.scn-departure-from-circe { background: linear-gradient(180deg, #6ea8d6 0%, #b8d4e8 40%, #f0d8a0 100%), radial-gradient(ellipse at 80% 20%, #ffd080 0%, transparent 50%); }
.scn-departure-from-circe .sky           { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #8abee0 0%, #c0d8e8 100%); }
.scn-departure-from-circe .sea           { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #4880a8 0%, #2a5878 100%); }
.scn-departure-from-circe .sun           { position:absolute; top:15%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #ffe8a0 0%, #f0c060 50%, #d09030 100%); border-radius:50%; box-shadow: 0 0 60px 15px #f0c060; animation: dc-sun 8s ease-in-out infinite alternate; }
.scn-departure-from-circe .doorway       { position:absolute; bottom:55%; left:50%; width:100px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.4); }
.scn-departure-from-circe .figure-odysseus { position:absolute; bottom:52%; left:42%; width:16px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dc-walk 6s ease-in-out infinite; }
.scn-departure-from-circe .figure-circe  { position:absolute; bottom:52%; left:56%; width:16px; height:42px; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dc-walk 6s ease-in-out infinite 2s; }
.scn-departure-from-circe .mantle        { position:absolute; bottom:54%; left:53%; width:30px; height:25px; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,220,0.4) 0%, transparent 70%); transform: rotate(20deg); animation: dc-mantle 7s ease-in-out infinite alternate; }
.scn-departure-from-circe .cloud-a       { position:absolute; top:10%; left:10%; width:80px; height:20px; background: rgba(255,255,255,0.3); border-radius:50%; filter: blur(6px); animation: dc-drift-a 40s linear infinite; }
.scn-departure-from-circe .cloud-b       { position:absolute; top:18%; right:5%; width:60px; height:16px; background: rgba(255,255,255,0.25); border-radius:50%; filter: blur(5px); animation: dc-drift-b 55s linear infinite reverse; }
@keyframes dc-sun     { 0% { opacity:.85; transform:scale(1) translateY(0) } 50% { opacity:1; transform:scale(1.05) translateY(-3px) } 100% { opacity:.9; transform:scale(1) translateY(0) } }
@keyframes dc-walk    { 0% { transform:translateX(0) rotate(-1deg) } 50% { transform:translateX(8px) rotate(1deg) } 100% { transform:translateX(16px) rotate(-1deg) } }
@keyframes dc-mantle  { 0% { opacity:.3; transform:rotate(15deg) translateX(0) } 50% { opacity:.6; transform:rotate(25deg) translateX(3px) } 100% { opacity:.3; transform:rotate(15deg) translateX(0) } }
@keyframes dc-drift-a { 0% { transform:translateX(-30px) } 100% { transform:translateX(120vw) } }
@keyframes dc-drift-b { 0% { transform:translateX(0) } 100% { transform:translateX(-100vw) } }

/* men-learn-of-hades */
.scn-men-learn-of-hades { background: linear-gradient(180deg, #d0c8a0 0%, #a08060 100%), radial-gradient(ellipse at 70% 30%, #e8d8b0 0%, transparent 50%); }
.scn-men-learn-of-hades .sky-bright      { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #c8d0d8 0%, #e8e0c0 100%); }
.scn-men-learn-of-hades .sun             { position:absolute; top:10%; left:65%; width:36px; height:36px; background: radial-gradient(circle, #ffe8a0 0%, #f0c060 60%, #d09030 100%); border-radius:50%; box-shadow: 0 0 40px 12px #f0c060; animation: mh-sun 10s ease-in-out infinite alternate; }
.scn-men-learn-of-hades .ground-dark     { position:absolute; bottom:0; left:0; right:0; height:40%; background: #3a2e20; box-shadow: inset 0 30px 50px rgba(0,0,0,0.5); }
.scn-men-learn-of-hades .ship-prow       { position:absolute; bottom:32%; left:20%; width:80px; height:20px; background: linear-gradient(180deg, #4a3820, #2a1a0a); border-radius: 80% 0 0 0; transform: rotate(5deg); }
.scn-men-learn-of-hades .figure-odysseus { position:absolute; bottom:30%; left:35%; width:16px; height:38px; background: linear-gradient(180deg, #2a2a30 0%, #0a0a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mh-odysseus 4s ease-in-out infinite; }
.scn-men-learn-of-hades .figures-men     { position:absolute; bottom:30%; left:45%; width:40px; height:30px; background: linear-gradient(180deg, #1a1a24 0%, #0a0a12 100%); border-radius: 50% 50% 30% 30%; filter: blur(2px); animation: mh-men 6s ease-in-out infinite; }
.scn-men-learn-of-hades .shadow-heavy    { position:absolute; inset:0; background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,0.6) 70%, rgba(0,0,0,0.8) 100%); pointer-events:none; animation: mh-shadow 5s ease-in-out infinite alternate; }
.scn-men-learn-of-hades .wave-wash       { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, rgba(60,60,70,0.3) 0%, transparent 100%); animation: mh-wave 7s ease-in-out infinite alternate; }
@keyframes mh-sun     { 0% { opacity:.8; transform:scale(1) } 50% { opacity:1; transform:scale(1.08) } 100% { opacity:.85; transform:scale(1) } }
@keyframes mh-odysseus { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(3px) rotate(2deg) } 100% { transform:translateX(0) rotate(-2deg) } }
@keyframes mh-men     { 0% { transform:scale(1) opacity:.6 } 50% { transform:scale(1.03) opacity:.8 } 100% { transform:scale(1) opacity:.6 } }
@keyframes mh-shadow  { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes mh-wave    { 0% { transform:translateY(0) opacity:.3 } 50% { transform:translateY(-4px) opacity:.5 } 100% { transform:translateY(0) opacity:.3 } }

.scn-menelaus-asks-about-ulysses { background: linear-gradient(180deg, #2a1a3e 0%, #5a3a2e 50%, #6a4a2e 100%), radial-gradient(ellipse at 50% 60%, #d08a50 0%, transparent 60%); }
.scn-menelaus-asks-about-ulysses .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a4e 0%, transparent 100%); animation: mnu-sky 12s ease-in-out infinite alternate; }
.scn-menelaus-asks-about-ulysses .sun { position:absolute; bottom:45%; left:55%; width:20px; height:20px; border-radius:50%; background: radial-gradient(circle, #ffd080 0%, #d08a50 70%); box-shadow: 0 0 30px 10px rgba(208,138,80,.7); animation: mnu-sun 10s ease-in-out infinite; }
.scn-menelaus-asks-about-ulysses .sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); animation: mnu-sea 6s ease-in-out infinite alternate; }
.scn-menelaus-asks-about-ulysses .shore { position:absolute; bottom:20%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; animation: mnu-shore 8s ease-in-out infinite; }
.scn-menelaus-asks-about-ulysses .figure-a { position:absolute; bottom:26%; left:30%; width:16px; height:34px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mnu-figure-a 4s ease-in-out infinite; transform-origin: bottom center; }
.scn-menelaus-asks-about-ulysses .figure-b { position:absolute; bottom:22%; left:52%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: mnu-figure-b 5s ease-in-out infinite; transform-origin: bottom left; }
.scn-menelaus-asks-about-ulysses .mist { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, rgba(255,255,255,.1) 0%, transparent 70%); filter: blur(8px); animation: mnu-mist 15s ease-in-out infinite; }
@keyframes mnu-sky { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes mnu-sun { 0%{transform:translateY(20px) scale(.8);opacity:.7} 50%{transform:translateY(0) scale(1);opacity:1} 100%{transform:translateY(-8px) scale(.9);opacity:.8} }
@keyframes mnu-sea { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes mnu-shore { 0%{transform:translateX(0)} 50%{transform:translateX(6px)} 100%{transform:translateX(-3px)} }
@keyframes mnu-figure-a { 0%{transform:translate(0,0) rotate(0deg)} 25%{transform:translate(3px,-2px) rotate(2deg)} 50%{transform:translate(-2px,1px) rotate(-2deg)} 75%{transform:translate(4px,-1px) rotate(1deg)} 100%{transform:translate(0,0) rotate(0deg)} }
@keyframes mnu-figure-b { 0%{transform:translate(0,0) scale(1)} 50%{transform:translate(10px,0) scale(1.06)} 100%{transform:translate(0,0) scale(1)} }
@keyframes mnu-mist { 0%{opacity:.3} 50%{opacity:.05} 100%{opacity:.25} }

.scn-proteus-tells-of-ulysses { background: linear-gradient(180deg, #1a1a3e 0%, #4a2a4e 50%, #2a2a5a 100%), radial-gradient(ellipse at 40% 30%, #6a4a6a 0%, transparent 70%); }
.scn-proteus-tells-of-ulysses .sky-dawn { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a1a4e 0%, #8a5a7a 50%, transparent 100%); animation: ptu-sky 15s ease-in-out infinite alternate; }
.scn-proteus-tells-of-ulysses .sea-dark { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #0a1a2e 0%, #1a2a3e 50%, #0a1a2a 100%); animation: ptu-sea 8s ease-in-out infinite; }
.scn-proteus-tells-of-ulysses .island { position:absolute; bottom:30%; right:20%; width:50px; height:30px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; animation: ptu-island 12s ease-in-out infinite; }
.scn-proteus-tells-of-ulysses .mountain { position:absolute; bottom:25%; left:8%; width:70px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 70% 0 0 / 40% 80% 0 0; animation: ptu-mountain 20s linear infinite alternate; }
.scn-proteus-tells-of-ulysses .proteus-fig { position:absolute; bottom:20%; left:35%; width:22px; height:48px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ptu-fig 6s ease-in-out infinite; }
.scn-proteus-tells-of-ulysses .light-beam { position:absolute; top:10%; left:45%; width:2px; height:60%; background: linear-gradient(180deg, rgba(255,220,150,.6) 0%, transparent 100%); filter: blur(2px); animation: ptu-beam 5s ease-in-out infinite alternate; transform-origin: top center; }
@keyframes ptu-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes ptu-sea { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes ptu-island { 0%{transform:scale(1) translateX(0)} 50%{transform:scale(1.05) translateX(3px)} 100%{transform:scale(1) translateX(0)} }
@keyframes ptu-mountain { 0%{transform:translateX(0) scaleY(1)} 50%{transform:translateX(8px) scaleY(.95)} 100%{transform:translateX(0) scaleY(1)} }
@keyframes ptu-fig { 0%{transform:translate(0,0) rotate(0deg) scaleY(1)} 30%{transform:translate(5px,-3px) rotate(1deg) scaleY(1.02)} 60%{transform:translate(-3px,1px) rotate(-1deg) scaleY(1)} 100%{transform:translate(0,0) rotate(0deg) scaleY(1)} }
@keyframes ptu-beam { 0%{transform:rotate(-5deg);opacity:.8} 50%{transform:rotate(5deg);opacity:1} 100%{transform:rotate(-3deg);opacity:.7} }

.scn-menelaus-returns-to-egypt { background: linear-gradient(180deg, #5a7a8a 0%, #8a9a8a 30%, #c0a070 70%, #d0b080 100%), radial-gradient(ellipse at 50% 80%, #f0d090 0%, transparent 50%); }
.scn-menelaus-returns-to-egypt .sky-calm { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #7a9aaa 0%, #b0c0b0 40%, transparent 100%); animation: mer-sky 20s ease-in-out infinite alternate; }
.scn-menelaus-returns-to-egypt .sea-calm { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a3a4a 0%, #2a5a5a 50%, #1a3a3a 100%); animation: mer-sea 12s ease-in-out infinite; }
.scn-menelaus-returns-to-egypt .ship-left { position:absolute; bottom:10%; left:15%; width:40px; height:20px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30%; animation: mer-ship 10s ease-in-out infinite; }
.scn-menelaus-returns-to-egypt .ship-right { position:absolute; bottom:12%; right:20%; width:36px; height:18px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30%; animation: mer-ship 12s ease-in-out infinite reverse; }
.scn-menelaus-returns-to-egypt .sunrise { position:absolute; bottom:35%; left:50%; width:26px; height:26px; border-radius:50%; background: radial-gradient(circle, #ffd080 0%, #d0a050 70%); box-shadow: 0 0 40px 15px rgba(208,160,80,.6); animation: mer-sunrise 16s ease-in-out infinite; }
.scn-menelaus-returns-to-egypt .reflection { position:absolute; bottom:0; left:40%; width:20%; height:12%; background: linear-gradient(180deg, rgba(255,220,150,.4) 0%, transparent 100%); filter: blur(4px); animation: mer-reflection 8s ease-in-out infinite alternate; }
@keyframes mer-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes mer-sea { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes mer-ship { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes mer-sunrise { 0%{transform:translateY(15px) scale(.85);opacity:.8} 50%{transform:translateY(0) scale(1);opacity:1} 100%{transform:translateY(-5px) scale(.95);opacity:.9} }
@keyframes mer-reflection { 0%{opacity:.5;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.1)} 100%{opacity:.4;transform:scaleY(.9)} }

.scn-menelaus-offers-gifts { background: linear-gradient(180deg, #4a2a1a 0%, #6a3a2a 30%, #8a5a3a 60%, #a0704a 100%), radial-gradient(ellipse at 50% 50%, #d0a070 0%, transparent 80%); }
.scn-menelaus-offers-gifts .wall-back { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 100%); border-radius: 0 0 20% 20%; animation: mog-wall 6s ease-in-out infinite alternate; }
.scn-menelaus-offers-gifts .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); animation: mog-floor 10s linear infinite; }
.scn-menelaus-offers-gifts .pillar-left { position:absolute; bottom:20%; left:10%; width:12px; height:50%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; animation: mog-pillar 8s ease-in-out infinite; }
.scn-menelaus-offers-gifts .pillar-right { position:absolute; bottom:20%; right:10%; width:12px; height:50%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; animation: mog-pillar 9s ease-in-out infinite reverse; }
.scn-menelaus-offers-gifts .table { position:absolute; bottom:15%; left:35%; width:30%; height:10%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 8% 8% 4% 4%; animation: mog-table 14s ease-in-out infinite; }
.scn-menelaus-offers-gifts .chalice { position:absolute; bottom:22%; left:46%; width:10px; height:14px; background: radial-gradient(circle, #ffd080 0%, #d0a050 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 16px 4px rgba(208,160,80,.8); animation: mog-chalice 4s ease-in-out infinite; }
.scn-menelaus-offers-gifts .figure-host { position:absolute; bottom:18%; left:28%; width:18px; 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: mog-fig 5s ease-in-out infinite; }
.scn-menelaus-offers-gifts .torch-glow { position:absolute; top:10%; left:20%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,200,100,.4) 0%, transparent 70%); filter: blur(10px); animation: mog-torch 3s ease-in-out infinite alternate; }
@keyframes mog-wall { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes mog-floor { 0%{background-position:0 0} 100%{background-position:0 10px} }
@keyframes mog-pillar { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(1)} }
@keyframes mog-table { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-2px) rotate(.5deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes mog-chalice { 0%{transform:translateY(0) scale(1);opacity:.9} 50%{transform:translateY(-3px) scale(1.1);opacity:1} 100%{transform:translateY(0) scale(1);opacity:.9} }
@keyframes mog-fig { 0%{transform:translate(0,0) rotate(0deg)} 25%{transform:translate(4px,-1px) rotate(1deg)} 50%{transform:translate(-2px,1px) rotate(-1deg)} 75%{transform:translate(3px,0) rotate(0deg)} 100%{transform:translate(0,0) rotate(0deg)} }
@keyframes mog-torch { 0%{opacity:.5;transform:scale(1)} 50%{opacity:1;transform:scale(1.15)} 100%{opacity:.6;transform:scale(.95)} }

/* Scene 1: hiding-treasure – calm, dim-interior cave with gold glow */
.scn-hiding-treasure {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e15 40%, #3a281c 100%),
    radial-gradient(ellipse at 50% 50%, #3a281c 0%, transparent 70%);
}
.scn-hiding-treasure .cave-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #2a1e15 0%, #1a1410 50%, #0f0a08 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: ht-cave 9s ease-in-out infinite alternate;
}
.scn-hiding-treasure .cave-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1e15 0%, #1a1410 100%);
  border-radius: 30% 20% 0 0 / 50% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-hiding-treasure .stone-door {
  position: absolute; bottom: 20%; right: 8%;
  width: 60px; height: 100px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: -2px 0 10px rgba(0,0,0,0.5);
  animation: ht-door 12s ease-in-out infinite alternate;
}
.scn-hiding-treasure .treasure-pile {
  position: absolute; bottom: 22%; left: 35%;
  width: 100px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #e8a040 0%, #b07020 40%, #7a5010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: ht-treasure 5s ease-in-out infinite alternate;
}
.scn-hiding-treasure .chest {
  position: absolute; bottom: 24%; left: 50%;
  width: 40px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2510 100%);
  border-radius: 8% 8% 4% 4%;
  transform: rotate(-10deg);
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: ht-chest 7s ease-in-out infinite;
}
.scn-hiding-treasure .ulysses {
  position: absolute; bottom: 20%; left: 18%;
  width: 22px; height: 45px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0907 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ht-ulysses 4s ease-in-out infinite;
}
.scn-hiding-treasure .glow {
  position: absolute; bottom: 25%; left: 38%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(232,176,64,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: ht-glow 3s ease-in-out infinite alternate;
}
@keyframes ht-cave { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ht-door { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes ht-treasure { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.02) scaleX(1.01) } 100% { transform: scaleY(1) scaleX(1) } }
@keyframes ht-chest { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) translateY(-2px) } }
@keyframes ht-ulysses { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(5px) translateY(0) rotate(-1deg) } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes ht-glow { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(1); } }

/* Scene 2: ulysses-asks-for-advice – dark, dim-interior with lamp glow */
.scn-ulysses-asks-for-advice {
  background: 
    linear-gradient(180deg, #1a121e 0%, #2a1c28 30%, #1a121e 100%),
    radial-gradient(ellipse at 50% 100%, #2a1c28 0%, transparent 70%);
}
.scn-ulysses-asks-for-advice .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a1c28 0%, #1a121e 50%, #0f0a0f 100%);
  animation: ua-wall 10s ease-in-out infinite alternate;
}
.scn-ulysses-asks-for-advice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a121e 0%, #0f0a0f 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
}
.scn-ulysses-asks-for-advice .column {
  position: absolute; bottom: 25%; left: 12%;
  width: 20px; height: 120px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1c2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
  animation: ua-column 15s ease-in-out infinite alternate;
}
.scn-ulysses-asks-for-advice .ulysses-figure {
  position: absolute; bottom: 28%; left: 35%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a121e 0%, #0d080d 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ua-ulysses 4s ease-in-out infinite;
}
.scn-ulysses-asks-for-advice .athena-figure {
  position: absolute; bottom: 30%; left: 55%;
  width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2e 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 12px 4px rgba(100,140,200,0.3);
  animation: ua-athena 4.5s ease-in-out infinite;
}
.scn-ulysses-asks-for-advice .lamp-glow {
  position: absolute; bottom: 38%; left: 70%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #e8a040 0%, #b07020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(232,160,64,0.3);
  animation: ua-lamp 2.5s ease-in-out infinite alternate;
}
@keyframes ua-wall { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes ua-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes ua-ulysses { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ua-athena { 0% { transform: translateX(0) rotate(1deg) scaleY(1) } 50% { transform: translateX(-2px) rotate(-1deg) scaleY(1.01) } 100% { transform: translateX(0) rotate(0) scaleY(1) } }
@keyframes ua-lamp { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }

/* Scene 3: minerva-sends-telemachus – calm, dim-interior with window light */
.scn-minerva-sends-telemachus {
  background: 
    linear-gradient(180deg, #2a2018 0%, #3a2c22 40%, #1a1410 100%),
    radial-gradient(ellipse at 50% 30%, #3a2c22 0%, transparent 70%);
}
.scn-minerva-sends-telemachus .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #3a2c22 0%, #2a2018 50%, #1a1410 100%);
  animation: ms-room 12s ease-in-out infinite alternate;
}
.scn-minerva-sends-telemachus .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 20% 30% 0 0 / 30% 40% 0 0;
}
.scn-minerva-sends-telemachus .window {
  position: absolute; top: 15%; right: 12%;
  width: 40px; height: 50px;
  background: linear-gradient(135deg, #e0c8a0 0%, #c0a880 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3), 0 0 30px 8px rgba(200,180,140,0.3);
  animation: ms-window 8s ease-in-out infinite alternate;
}
.scn-minerva-sends-telemachus .telemachus {
  position: absolute; bottom: 20%; left: 25%;
  width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-telemachus 5s ease-in-out infinite;
}
.scn-minerva-sends-telemachus .minerva {
  position: absolute; bottom: 22%; left: 50%;
  width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 8px 2px rgba(100,140,200,0.2);
  animation: ms-minerva 4.2s ease-in-out infinite;
}
.scn-minerva-sends-telemachus .bag {
  position: absolute; bottom: 18%; left: 15%;
  width: 16px; height: 20px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 20% 20% 30% 30%;
  transform: rotate(15deg);
  animation: ms-bag 6s ease-in-out infinite;
}
.scn-minerva-sends-telemachus .glow {
  position: absolute; top: 15%; right: 10%;
  width: 60px; height: 80px;
  background: radial-gradient(circle, rgba(224,200,160,0.35) 0%, transparent 70%);
  animation: ms-glow 7s ease-in-out infinite alternate;
}
@keyframes ms-room { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ms-window { 0% { opacity: 0.7; transform: scale(0.98); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.85; transform: scale(1); } }
@keyframes ms-telemachus { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ms-minerva { 0% { transform: translateX(0) rotate(1deg) scaleY(1) } 50% { transform: translateX(-2px) rotate(-1deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(0) scaleY(1) } }
@keyframes ms-bag { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(18deg) translateY(-2px) } }
@keyframes ms-glow { 0% { opacity: 0.4; transform: scale(0.9); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(1); } }

/* Scene 4: ulysses-heads-to-herdsman – calm, overcast outdoor scene */
.scn-ulysses-heads-to-herdsman {
  background: 
    linear-gradient(180deg, #6a7a7a 0%, #8a9a9a 30%, #7a8a8a 60%, #5a6a6a 100%),
    radial-gradient(ellipse at 50% 0%, #8a9a9a 0%, transparent 70%);
}
.scn-ulysses-heads-to-herdsman .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a7a7a 0%, #8a9a9a 50%, #7a8a8a 100%);
  animation: uh-sky 15s ease-in-out infinite alternate;
}
.scn-ulysses-heads-to-herdsman .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.2);
  animation: uh-hills 18s ease-in-out infinite alternate;
}
.scn-ulysses-heads-to-herdsman .trees-left {
  position: absolute; bottom: 40%; left: 8%;
  width: 30px; height: 80px;
  background: linear-gradient(135deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  transform: rotate(-5deg);
  animation: uh-trees 8s ease-in-out infinite alternate;
}
.scn-ulysses-heads-to-herdsman .trees-right {
  position: absolute; bottom: 38%; right: 12%;
  width: 35px; height: 90px;
  background: linear-gradient(135deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  transform: rotate(3deg);
  animation: uh-trees 9s ease-in-out infinite alternate-reverse;
}
.scn-ulysses-heads-to-herdsman .path {
  position: absolute; bottom: 25%; left: 25%; right: 30%; height: 10%;
  background: linear-gradient(90deg, #7a7a6a 0%, #9a9a8a 50%, #8a8a7a 100%);
  border-radius: 20% 30% 0 0 / 50% 60% 0 0;
  transform: perspective(400px) rotateX(20deg);
  animation: uh-path 12s ease-in-out infinite alternate;
}
.scn-ulysses-heads-to-herdsman .ulysses {
  position: absolute; bottom: 28%; left: 35%;
  width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uh-walk 4s ease-in-out infinite;
}
.scn-ulysses-heads-to-herdsman .hut {
  position: absolute; bottom: 30%; right: 18%;
  width: 30px; height: 25px;
  background: linear-gradient(135deg, #4a5a3a 0%, #2a3a2a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 2px -2px 6px rgba(0,0,0,0.2);
  animation: uh-hut 10s ease-in-out infinite alternate;
}
.scn-ulysses-heads-to-herdsman .clouds {
  position: absolute; top: 12%; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, transparent 0%, rgba(200,220,220,0.4) 20%, rgba(180,200,200,0.3) 50%, transparent 100%);
  filter: blur(8px);
  animation: uh-clouds 40s linear infinite;
}
@keyframes uh-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes uh-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes uh-trees { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(-3deg) scaleY(1.02) } 100% { transform: rotate(-5deg) scaleY(1) } }
@keyframes uh-path { 0% { opacity: 0.8; transform: perspective(400px) rotateX(20deg) translateX(0); } 50% { opacity: 1; transform: perspective(400px) rotateX(20deg) translateX(5px); } 100% { opacity: 0.9; transform: perspective(400px) rotateX(20deg) translateX(0); } }
@keyframes uh-walk { 0% { transform: translateX(0) rotate(-2deg) scaleY(1) } 25% { transform: translateX(6px) rotate(1deg) scaleY(1.01) } 50% { transform: translateX(12px) rotate(-1deg) scaleY(1) } 75% { transform: translateX(18px) rotate(1deg) scaleY(1.01) } 100% { transform: translateX(24px) rotate(0) scaleY(1) } }
@keyframes uh-hut { 0% { transform: scale(0.98) translateY(0) } 50% { transform: scale(1.02) translateY(-2px) } 100% { transform: scale(0.98) translateY(0) } }
@keyframes uh-clouds { 0% { transform: translateX(-30%); } 100% { transform: translateX(100%); } }

.scn-nausicaa-warns-about-gossip {
  background:
    linear-gradient(180deg, #ffd6a0 0%, #ffe0b0 30%, #b8d4e0 70%, #6a9ab0 100%),
    radial-gradient(ellipse at 50% 10%, #fff8e0 0%, transparent 40%);
}
.scn-nausicaa-warns-about-gossip .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffe0b0 0%, #b8d4e0 100%);
  animation: ng-sky 12s ease-in-out infinite alternate;
}
.scn-nausicaa-warns-about-gossip .sun {
  position: absolute; top: 8%; left: 55%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd080 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,208,128,0.5);
  animation: ng-sun 8s ease-in-out infinite alternate;
}
.scn-nausicaa-warns-about-gossip .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a9a7a 0%, #3a5a4a 100%);
  border-radius: 30% 50% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
  animation: ng-hills 15s ease-in-out infinite;
}
.scn-nausicaa-warns-about-gossip .road {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(90deg, #b09060 0%, #d0b070 50%, #b09060 100%);
  border-radius: 50% / 30% 30% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ng-road 4s ease-in-out infinite alternate;
}
.scn-nausicaa-warns-about-gossip .tree {
  position: absolute; bottom: 25%; left: 8%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 0 20px 4px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: ng-tree 20s ease-in-out infinite;
}
.scn-nausicaa-warns-about-gossip .figure-a {
  position: absolute; bottom: 22%; left: 30%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ng-fig-a 5s ease-in-out infinite;
}
.scn-nausicaa-warns-about-gossip .figure-b {
  position: absolute; bottom: 22%; left: 44%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ng-fig-b 6s ease-in-out infinite;
}
.scn-nausicaa-warns-about-gossip .shadow-figure {
  position: absolute; bottom: 20%; right: 20%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #1a1a1a 0%, #0a0a0a 70%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  filter: blur(2px);
  animation: ng-shadow 3s ease-in-out infinite alternate;
}
@keyframes ng-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ng-sun { 0% { transform: scale(0.95); box-shadow: 0 0 60px 20px rgba(255,208,128,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 100px 40px rgba(255,208,128,0.7); } 100% { transform: scale(0.95); } }
@keyframes ng-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes ng-road { 0% { opacity: 0.9; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.9; transform: scaleY(1); } }
@keyframes ng-tree { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(1px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ng-fig-a { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(6px) translateY(0) rotate(-1deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes ng-fig-b { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 30% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 60% { transform: translateX(0) translateY(0) rotate(0deg); } 100% { transform: translateX(-3px) translateY(1px) rotate(1deg); } }
@keyframes ng-shadow { 0% { opacity: 0.6; transform: scale(1) translateY(0); } 50% { opacity: 1; transform: scale(1.05) translateY(-2px); } 100% { opacity: 0.7; transform: scale(0.95) translateY(2px); } }

.scn-nausicaa-advises-approach {
  background:
    linear-gradient(180deg, #ffe8c0 0%, #d0e0a0 40%, #a0c080 70%, #608050 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 50%);
}
.scn-nausicaa-advises-approach .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d0e8f0 0%, #a0d0c0 100%);
  animation: na-sky 10s ease-in-out infinite alternate;
}
.scn-nausicaa-advises-approach .tree-left {
  position: absolute; bottom: 25%; left: 5%; width: 40px; height: 140px;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: na-trunk 18s ease-in-out infinite;
}
.scn-nausicaa-advises-approach .tree-right {
  position: absolute; bottom: 25%; right: 5%; width: 40px; height: 140px;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: na-trunk 18s ease-in-out infinite alternate;
}
.scn-nausicaa-advises-approach .arch {
  position: absolute; bottom: 50%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, #6a8a5a 50%, #3a5a2a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
  animation: na-arch 12s ease-in-out infinite;
}
.scn-nausicaa-advises-approach .well {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: na-well 7s ease-in-out infinite;
}
.scn-nausicaa-advises-approach .path {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(90deg, #c0a060 0%, #e0c080 50%, #c0a060 100%);
  border-radius: 50% / 30%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.2);
  animation: na-path 9s ease-in-out infinite alternate;
}
.scn-nausicaa-advises-approach .figure {
  position: absolute; bottom: 15%; left: 40%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: na-fig 5s ease-in-out infinite;
}
.scn-nausicaa-advises-approach .leaf {
  position: absolute; top: 10%; left: 20%; width: 12px; height: 12px;
  background: radial-gradient(circle, #7aaa4a 0%, #4a7a2a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: na-leaf 15s linear infinite;
}
@keyframes na-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes na-trunk { 0% { transform: rotate(0deg); } 25% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 75% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes na-arch { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(0.97); } }
@keyframes na-well { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes na-path { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes na-fig { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes na-leaf { 0% { transform: translate(0, 0) rotate(0deg); opacity: 1; } 50% { transform: translate(30px, 80px) rotate(180deg); opacity: 0.6; } 100% { transform: translate(60px, 160px) rotate(360deg); opacity: 0; } }

.scn-nausicaa-departs {
  background:
    linear-gradient(180deg, #ffe0b0 0%, #ffe8c0 30%, #c0d8e0 60%, #8ab0c0 100%),
    radial-gradient(ellipse at 50% 5%, #fff8e0 0%, transparent 50%);
}
.scn-nausicaa-departs .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #c0d8e0 100%);
  animation: nd-sky 14s ease-in-out infinite alternate;
}
.scn-nausicaa-departs .sun {
  position: absolute; top: 10%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd080 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,208,128,0.5);
  animation: nd-sun 7s ease-in-out infinite alternate;
}
.scn-nausicaa-departs .road {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 12%;
  background: linear-gradient(90deg, #a08050 0%, #c0a060 50%, #a08050 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.3);
  animation: nd-road 10s ease-in-out infinite alternate;
}
.scn-nausicaa-departs .wagon {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 40% 40% 60% 60%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: nd-wagon 4s ease-in-out infinite;
}
.scn-nausicaa-departs .mule-1 {
  position: absolute; bottom: 20%; left: 38%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: nd-mule 4s ease-in-out infinite alternate;
}
.scn-nausicaa-departs .mule-2 {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: nd-mule 4s ease-in-out infinite alternate-reverse;
}
.scn-nausicaa-departs .driver {
  position: absolute; bottom: 22%; left: 32%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nd-driver 5s ease-in-out infinite;
}
.scn-nausicaa-departs .maid-1 {
  position: absolute; bottom: 18%; left: 54%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nd-maid 6s ease-in-out infinite;
}
.scn-nausicaa-departs .maid-2 {
  position: absolute; bottom: 17%; left: 60%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nd-maid 6s ease-in-out infinite alternate;
}
@keyframes nd-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes nd-sun { 0% { transform: scale(0.9); box-shadow: 0 0 40px 10px rgba(255,208,128,0.4); } 50% { transform: scale(1.1); box-shadow: 0 0 80px 30px rgba(255,208,128,0.7); } 100% { transform: scale(0.9); } }
@keyframes nd-road { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.03); } 100% { opacity: 0.8; transform: scaleY(1); } }
@keyframes nd-wagon { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nd-mule { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nd-driver { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(1px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-1px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes nd-maid { 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); } }

.scn-minerva-hears-but-keeps-hidden {
  background:
    linear-gradient(180deg, #2a2a5a 0%, #3a3a6a 30%, #4a4a7a 60%, #2a2a4a 100%),
    radial-gradient(ellipse at 50% 80%, #4a4a6a 0%, transparent 60%);
}
.scn-minerva-hears-but-keeps-hidden .sky {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a4a7a 0%, #2a2a5a 100%);
  animation: mh-sky 15s ease-in-out infinite alternate;
}
.scn-minerva-hears-but-keeps-hidden .moon {
  position: absolute; top: 12%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d0d0e8 0%, #b0b0d0 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(176,176,208,0.3);
  animation: mh-moon 10s ease-in-out infinite alternate;
}
.scn-minerva-hears-but-keeps-hidden .cloud-a {
  position: absolute; top: 5%; left: 10%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(80,80,120,0.6) 0%, rgba(60,60,100,0.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mh-cloud-a 30s linear infinite;
}
.scn-minerva-hears-but-keeps-hidden .cloud-b {
  position: absolute; top: 18%; right: 5%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(80,80,120,0.5) 0%, rgba(60,60,100,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mh-cloud-b 40s linear infinite reverse;
}
.scn-minerva-hears-but-keeps-hidden .goddess {
  position: absolute; bottom: 25%; left: 45%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #b0a0d0 0%, #8a7ab0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 6px rgba(176,160,208,0.4);
  animation: mh-goddess 8s ease-in-out infinite alternate;
}
.scn-minerva-hears-but-keeps-hidden .owl {
  position: absolute; bottom: 30%; left: 38%; width: 14px; height: 18px;
  background: radial-gradient(ellipse at 50% 30%, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mh-owl 6s ease-in-out infinite;
}
.scn-minerva-hears-but-keeps-hidden .veil {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(50,50,90,0.3) 0%, transparent 40%, rgba(50,50,90,0.2) 100%);
  pointer-events: none;
  animation: mh-veil 12s ease-in-out infinite alternate;
}
.scn-minerva-hears-but-keeps-hidden .glow {
  position: absolute; bottom: 20%; left: 48%; width: 20px; height: 20px;
  background: radial-gradient(circle, #e0e0ff 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(224,224,255,0.3);
  animation: mh-glow 4s ease-in-out infinite alternate;
}
@keyframes mh-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mh-moon { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 8px rgba(176,176,208,0.3); } 50% { transform: translateY(-5px) scale(1.02); box-shadow: 0 0 50px 15px rgba(176,176,208,0.5); } 100% { transform: translateY(0) scale(1); } }
@keyframes mh-cloud-a { 0% { transform: translateX(0); } 100% { transform: translateX(60vw); } }
@keyframes mh-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-50vw); } }
@keyframes mh-goddess { 0% { opacity: 0.5; transform: scaleY(0.95) translateY(2px); } 50% { opacity: 0.9; transform: scaleY(1.05) translateY(-4px); } 100% { opacity: 0.7; transform: scaleY(1) translateY(0); } }
@keyframes mh-owl { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(5deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-4px) translateY(-2px) rotate(-5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes mh-veil { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }
@keyframes mh-glow { 0% { opacity: 0.4; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.9); } }

/* Scene 1: idothea-instructs */
.scn-idothea-instructs {
  background: 
    linear-gradient(180deg, #ffcc88 0%, #f0a060 40%, #c08050 80%, #906040 100%),
    radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, #ffcc88 50%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-idothea-instructs .sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffd5a0 0%, #ffb870 40%, #e09060 70%, transparent 100%);
  animation: s1-sky 8s ease-in-out infinite alternate;
}
.scn-idothea-instructs .sun {
  position: absolute;
  top: 15%;
  left: 50%;
  width: 80px;
  height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff5e0 0%, #ffcc44 40%, #ff9922 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffaa44, 0 0 120px 40px rgba(255,170,68,0.3);
  animation: s1-sun 12s ease-in-out infinite alternate;
}
.scn-idothea-instructs .sea {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(180deg, #4080c0 0%, #2060a0 40%, #104080 100%);
  clip-path: polygon(0 15%, 20% 10%, 40% 18%, 60% 8%, 80% 15%, 100% 10%, 100% 100%, 0 100%);
  animation: s1-sea 6s ease-in-out infinite alternate;
}
.scn-idothea-instructs .shore {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 12%;
  background: linear-gradient(180deg, #d0b090 0%, #b09070 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.2);
  animation: s1-shore 10s ease-in-out infinite alternate;
}
.scn-idothea-instructs .figure-idothea {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 18px;
  height: 40px;
  background: linear-gradient(180deg, #604030 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-figure-idothea 4s ease-in-out infinite;
  box-shadow: 0 0 8px 2px rgba(0,0,0,0.3);
}
.scn-idothea-instructs .figure-menelaus {
  position: absolute;
  bottom: 18%;
  left: 50%;
  width: 20px;
  height: 42px;
  background: linear-gradient(180deg, #503020 0%, #2a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-figure-menelaus 6s ease-in-out infinite;
  box-shadow: 0 0 8px 2px rgba(0,0,0,0.3);
}
.scn-idothea-instructs .seal {
  position: absolute;
  bottom: 14%;
  left: 65%;
  width: 40px;
  height: 20px;
  background: radial-gradient(ellipse, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: s1-seal 14s ease-in-out infinite alternate;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-idothea-instructs .mist {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 120px;
  height: 40px;
  background: radial-gradient(ellipse, rgba(255,230,200,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: s1-mist 20s linear infinite;
}

@keyframes s1-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes s1-sun {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.98); opacity: 0.85; }
}
@keyframes s1-sea {
  0% { clip-path: polygon(0 15%, 20% 10%, 40% 18%, 60% 8%, 80% 15%, 100% 10%, 100% 100%, 0 100%); }
  50% { clip-path: polygon(0 12%, 20% 18%, 40% 10%, 60% 15%, 80% 8%, 100% 14%, 100% 100%, 0 100%); }
  100% { clip-path: polygon(0 15%, 20% 10%, 40% 18%, 60% 8%, 80% 15%, 100% 10%, 100% 100%, 0 100%); }
}
@keyframes s1-shore {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes s1-figure-idothea {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-0.5deg); }
}
@keyframes s1-figure-menelaus {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes s1-seal {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(10px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes s1-mist {
  0% { transform: translateX(-30px); opacity: 0.3; }
  50% { transform: translateX(30px); opacity: 0.6; }
  100% { transform: translateX(-30px); opacity: 0.3; }
}

/* Scene 2: idothea-describes-proteus-tricks */
.scn-idothea-describes-proteus-tricks {
  background:
    linear-gradient(180deg, #f5c890 0%, #e0a870 30%, #b08050 60%, #906040 100%),
    radial-gradient(ellipse at 50% 100%, #c08050 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-idothea-describes-proteus-tricks .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fdd5a0 0%, #f0b870 50%, transparent 100%);
  animation: s2-sky 10s ease-in-out infinite alternate;
}
.scn-idothea-describes-proteus-tricks .sun {
  position: absolute;
  top: 12%;
  left: 50%;
  width: 70px;
  height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff5e0 0%, #ffcc44 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px #ffaa44, 0 0 100px 30px rgba(255,170,68,0.3);
  animation: s2-sun 15s ease-in-out infinite alternate;
}
.scn-idothea-describes-proteus-tricks .sea {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(180deg, #5090c0 0%, #2070a0 40%, #104080 100%);
  clip-path: polygon(0 20%, 10% 15%, 30% 22%, 50% 12%, 70% 18%, 90% 10%, 100% 15%, 100% 100%, 0 100%);
  animation: s2-sea 8s ease-in-out infinite alternate;
}
.scn-idothea-describes-proteus-tricks .sand {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 15%;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 5px 12px rgba(0,0,0,0.2);
  animation: s2-sand 12s ease-in-out infinite alternate;
}
.scn-idothea-describes-proteus-tricks .figure-idothea {
  position: absolute;
  bottom: 22%;
  left: 25%;
  width: 16px;
  height: 38px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s2-figure 5s ease-in-out infinite;
  box-shadow: 0 0 6px 2px rgba(0,0,0,0.3);
}
.scn-idothea-describes-proteus-tricks .proteus {
  position: absolute;
  bottom: 12%;
  left: 55%;
  width: 50px;
  height: 30px;
  background: radial-gradient(ellipse, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: s2-proteus 20s ease-in-out infinite;
  box-shadow: 0 3px 8px rgba(0,0,0,0.4);
}
.scn-idothea-describes-proteus-tricks .seal-1,
.scn-idothea-describes-proteus-tricks .seal-2,
.scn-idothea-describes-proteus-tricks .seal-3 {
  position: absolute;
  bottom: 10%;
  background: radial-gradient(ellipse, #9a8a7a 0%, #6a5a4a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: s2-seal 16s ease-in-out infinite alternate;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-idothea-describes-proteus-tricks .seal-1 { left: 40%; width: 30px; height: 16px; animation-delay: 0s; }
.scn-idothea-describes-proteus-tricks .seal-2 { left: 48%; width: 26px; height: 14px; animation-delay: -4s; }
.scn-idothea-describes-proteus-tricks .seal-3 { left: 65%; width: 28px; height: 15px; animation-delay: -8s; }

@keyframes s2-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes s2-sun { 0% { transform: translateX(-50%) scale(0.95); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(0.98); opacity: 0.9; } }
@keyframes s2-sea { 0% { clip-path: polygon(0 20%, 10% 15%, 30% 22%, 50% 12%, 70% 18%, 90% 10%, 100% 15%, 100% 100%, 0 100%); } 50% { clip-path: polygon(0 18%, 10% 22%, 30% 14%, 50% 20%, 70% 12%, 90% 18%, 100% 14%, 100% 100%, 0 100%); } 100% { clip-path: polygon(0 20%, 10% 15%, 30% 22%, 50% 12%, 70% 18%, 90% 10%, 100% 15%, 100% 100%, 0 100%); } }
@keyframes s2-sand { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes s2-figure { 0% { transform: translateX(0) rotate(-0.5deg); } 33% { transform: translateX(4px) rotate(0.5deg); } 66% { transform: translateX(-4px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(-0.5deg); } }
@keyframes s2-proteus { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-5px) rotate(-3deg); } 50% { transform: translateX(5px) rotate(3deg); } 75% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes s2-seal { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }

/* Scene 3: menelaus-returns-to-ship */
.scn-menelaus-returns-to-ship {
  background:
    linear-gradient(180deg, #f0c080 0%, #d0a060 30%, #a08040 60%, #806050 100%),
    radial-gradient(ellipse at 40% 0%, #ffe0a0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-menelaus-returns-to-ship .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fdd090 0%, #f0b060 40%, transparent 100%);
  animation: s3-sky 9s ease-in-out infinite alternate;
}
.scn-menelaus-returns-to-ship .sun {
  position: absolute;
  top: 10%;
  left: 50%;
  width: 75px;
  height: 75px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff5d0 0%, #ffcc44 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 70px 25px #ffaa44, 0 0 140px 50px rgba(255,170,68,0.25);
  animation: s3-sun 18s ease-in-out infinite alternate;
}
.scn-menelaus-returns-to-ship .sea {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, #4080b0 0%, #206090 40%, #104070 100%);
  clip-path: polygon(0 10%, 15% 18%, 35% 8%, 55% 15%, 75% 6%, 90% 12%, 100% 10%, 100% 100%, 0 100%);
  animation: s3-sea 7s ease-in-out infinite alternate;
}
.scn-menelaus-returns-to-ship .sand {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 10%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 3px 8px rgba(0,0,0,0.2);
  animation: s3-sand 14s ease-in-out infinite alternate;
}
.scn-menelaus-returns-to-ship .ship {
  position: absolute;
  bottom: 12%;
  left: 40%;
  width: 80px;
  height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%);
  border-radius: 10% 10% 40% 40% / 30% 30% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: s3-ship 5s ease-in-out infinite alternate;
}
.scn-menelaus-returns-to-ship .figure-menelaus {
  position: absolute;
  bottom: 16%;
  left: 32%;
  width: 18px;
  height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-figure 4s ease-in-out infinite;
  box-shadow: 0 0 6px 2px rgba(0,0,0,0.3);
}
.scn-menelaus-returns-to-ship .mast {
  position: absolute;
  bottom: 32%;
  left: 43%;
  width: 6px;
  height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10%;
  animation: s3-mast 8s ease-in-out infinite alternate;
}
.scn-menelaus-returns-to-ship .sail {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 40px;
  height: 50px;
  background: radial-gradient(ellipse, #e0d0c0 0%, #c0b0a0 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 50% 50%;
  animation: s3-sail 10s ease-in-out infinite alternate;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.3));
}

@keyframes s3-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes s3-sun { 0% { transform: translateX(-50%) scale(0.97); opacity: 0.85; } 50% { transform: translateX(-50%) scale(1.03); opacity: 1; } 100% { transform: translateX(-50%) scale(0.98); opacity: 0.9; } }
@keyframes s3-sea { 0% { clip-path: polygon(0 10%, 15% 18%, 35% 8%, 55% 15%, 75% 6%, 90% 12%, 100% 10%, 100% 100%, 0 100%); } 50% { clip-path: polygon(0 14%, 15% 8%, 35% 18%, 55% 6%, 75% 15%, 90% 8%, 100% 12%, 100% 100%, 0 100%); } 100% { clip-path: polygon(0 10%, 15% 18%, 35% 8%, 55% 15%, 75% 6%, 90% 12%, 100% 10%, 100% 100%, 0 100%); } }
@keyframes s3-sand { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes s3-ship { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes s3-figure { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(3px) rotate(0.5deg); } 66% { transform: translateX(-3px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes s3-mast { 0% { transform: rotate(0); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0); } }
@keyframes s3-sail { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.05) scaleY(1.02); } 100% { transform: scaleX(1) scaleY(1); } }

/* Scene 4: menelaus-prepares-ambush */
.scn-menelaus-prepares-ambush {
  background:
    linear-gradient(180deg, #ffd5a0 0%, #e0b070 30%, #b08050 60%, #906040 100%),
    radial-gradient(ellipse at 50% 0%, #ffe0c0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-menelaus-prepares-ambush .sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffd8a0 0%, #f0b870 40%, transparent 100%);
  animation: s4-sky 11s ease-in-out infinite alternate;
}
.scn-menelaus-prepares-ambush .sun {
  position: absolute;
  top: 12%;
  left: 50%;
  width: 65px;
  height: 65px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff5e0 0%, #ffcc44 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 55px 20px #ffaa44, 0 0 110px 35px rgba(255,170,68,0.2);
  animation: s4-sun 13s ease-in-out infinite alternate;
}
.scn-menelaus-prepares-ambush .sea {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(180deg, #4080b0 0%, #206090 40%, #104070 100%);
  clip-path: polygon(0 12%, 20% 18%, 40% 8%, 60% 15%, 80% 6%, 100% 14%, 100% 100%, 0 100%);
  animation: s4-sea 9s ease-in-out infinite alternate;
}
.scn-menelaus-prepares-ambush .sand {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 14%;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.2);
  animation: s4-sand 16s ease-in-out infinite alternate;
}
.scn-menelaus-prepares-ambush .figure-1,
.scn-menelaus-prepares-ambush .figure-2,
.scn-menelaus-prepares-ambush .figure-3 {
  position: absolute;
  bottom: 18%;
  width: 16px;
  height: 36px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-figure 4s ease-in-out infinite;
  box-shadow: 0 0 6px 2px rgba(0,0,0,0.3);
}
.scn-menelaus-prepares-ambush .figure-1 { left: 30%; animation-delay: 0s; }
.scn-menelaus-prepares-ambush .figure-2 { left: 42%; animation-delay: -1.5s; }
.scn-menelaus-prepares-ambush .figure-3 { left: 54%; animation-delay: -3s; }
.scn-menelaus-prepares-ambush .sealskin-1,
.scn-menelaus-prepares-ambush .sealskin-2 {
  position: absolute;
  bottom: 18%;
  width: 40px;
  height: 24px;
  background: radial-gradient(ellipse, #b09880 0%, #806050 100%);
  border-radius: 50% 50% 40% 40%;
  animation: s4-sealskin 8s ease-in-out infinite alternate;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-menelaus-prepares-ambush .sealskin-1 { left: 28%; animation-delay: 0s; }
.scn-menelaus-prepares-ambush .sealskin-2 { left: 52%; animation-delay: -4s; }

@keyframes s4-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes s4-sun { 0% { transform: translateX(-50%) scale(0.96); opacity: 0.85; } 50% { transform: translateX(-50%) scale(1.04); opacity: 1; } 100% { transform: translateX(-50%) scale(0.98); opacity: 0.9; } }
@keyframes s4-sea { 0% { clip-path: polygon(0 12%, 20% 18%, 40% 8%, 60% 15%, 80% 6%, 100% 14%, 100% 100%, 0 100%); } 50% { clip-path: polygon(0 15%, 20% 10%, 40% 18%, 60% 8%, 80% 15%, 100% 10%, 100% 100%, 0 100%); } 100% { clip-path: polygon(0 12%, 20% 18%, 40% 8%, 60% 15%, 80% 6%, 100% 14%, 100% 100%, 0 100%); } }
@keyframes s4-sand { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes s4-figure { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(4px) rotate(0.5deg); } 66% { transform: translateX(-4px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes s4-sealskin { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }

/* sirens-passing (tense, sunlit) */
.scn-sirens-passing {
  background: 
    linear-gradient(180deg, #4a8fd4 0%, #a3c8e8 40%, #f0d87a 100%),
    radial-gradient(ellipse at 70% 30%, #fce588 0%, transparent 60%);
}
.scn-sirens-passing .sky        { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6ba4d8 0%, #b7d6f0 100%); animation: sp-sky 14s ease-in-out infinite alternate; }
.scn-sirens-passing .sun        { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #ffe28a 0%, #ffc55a 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 8px #ffc55a; animation: sp-sun 6s ease-in-out infinite alternate; }
.scn-sirens-passing .sea        { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a6b8a 0%, #1a3a5a 60%, #0a1a2a 100%); animation: sp-sea 10s linear infinite; background-size: 200% 200%; }
.scn-sirens-passing .ship-hull  { position:absolute; bottom:42%; left:38%; width:80px; height:25px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: sp-ship 4s ease-in-out infinite; }
.scn-sirens-passing .mast       { position:absolute; bottom:42%; left:44%; width:4px; height:70px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); transform-origin: bottom; border-radius:2px; animation: sp-mast 5s ease-in-out infinite; }
.scn-sirens-passing .furled-sail{ position:absolute; bottom:58%; left:42%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 30%, #b09070 0%, #7a5a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: sp-sail 3s ease-in-out infinite; }
.scn-sirens-passing .island     { position:absolute; bottom:48%; right:10%; width:50px; height:30px; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 40% 60% 20% 80% / 60% 40% 60% 40%; opacity:.6; animation: sp-island 8s ease-in-out infinite alternate; }
.scn-sirens-passing .siren-shapes{ position:absolute; bottom:50%; right:14%; width:12px; height:20px; background: #1a1a2a; border-radius: 50% 50% 30% 70% / 60% 60% 40% 40%; animation: sp-siren 6s ease-in-out infinite; }
.scn-sirens-passing .dead-calm-line{ position:absolute; bottom:44%; left:0; right:0; height:1px; background: linear-gradient(90deg, transparent 0%, rgba(200,220,240,.7) 30%, rgba(200,220,240,.7) 70%, transparent 100%); animation: sp-line 20s linear infinite; }
@keyframes sp-sky    { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes sp-sun    { 0% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.15); opacity:1; } 100% { transform: scale(.95); opacity:.7; } }
@keyframes sp-sea    { 0% { background-position: 0 0; } 50% { background-position: 50% 0; } 100% { background-position: 100% 0; } }
@keyframes sp-ship   { 0% { transform: translateY(0) rotate(-.5deg); } 50% { transform: translateY(-2px) rotate(.5deg); } 100% { transform: translateY(0) rotate(-.5deg); } }
@keyframes sp-mast   { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes sp-sail   { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes sp-island { 0% { transform: scale(1); opacity:.5; } 50% { transform: scale(1.04); opacity:.7; } 100% { transform: scale(1); opacity:.5; } }
@keyframes sp-siren  { 0% { transform: translate(0, 0) rotate(-2deg); } 50% { transform: translate(3px, -1px) rotate(2deg); } 100% { transform: translate(0, 0) rotate(-2deg); } }
@keyframes sp-line   { 0% { opacity:0; } 25% { opacity:.7; } 50% { opacity:0; } 75% { opacity:.5; } 100% { opacity:0; } }

/* sirens-song (calm, sunlit) */
.scn-sirens-song {
  background: 
    linear-gradient(180deg, #6ba4d8 0%, #cde2f5 40%, #fce588 100%),
    radial-gradient(ellipse at 30% 20%, #ffe28a 0%, transparent 60%);
}
.scn-sirens-song .sky          { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8abcee 0%, #d8eafa 100%); animation: ss-sky 12s ease-in-out infinite alternate; }
.scn-sirens-song .sun          { position:absolute; top:5%; left:30%; width:45px; height:45px; background: radial-gradient(circle, #ffe28a 0%, #ffc55a 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 12px #ffc55a; animation: ss-sun 7s ease-in-out infinite alternate; }
.scn-sirens-song .sea          { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a6b8a 0%, #1a4a6a 60%, #0a2a4a 100%); animation: ss-sea 15s linear infinite; background-size: 200% 200%; }
.scn-sirens-song .island-shore{ position:absolute; bottom:30%; left:36%; width:120px; height:40px; background: linear-gradient(180deg, #6a7a5a 0%, #3a4a2a 100%); border-radius: 50% 50% 40% 60% / 60% 40% 70% 30%; box-shadow: inset 0 -8px 20px rgba(0,0,0,.3); animation: ss-shore 10s ease-in-out infinite alternate; }
.scn-sirens-song .siren-left  { position:absolute; bottom:32%; left:26%; width:16px; height:34px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 30% 40% 60% / 60% 40% 50% 50%; transform-origin: bottom left; animation: ss-siren-l 4s ease-in-out infinite; }
.scn-sirens-song .siren-right { position:absolute; bottom:32%; right:24%; width:16px; height:34px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 50% 60% 40% / 40% 60% 50% 50%; transform-origin: bottom right; animation: ss-siren-r 4s ease-in-out infinite reverse; }
.scn-sirens-song .song-ripples{ position:absolute; bottom:32%; left:50%; width:40px; height:40px; margin-left:-20px; background: radial-gradient(circle, rgba(200,230,255,.6) 0%, transparent 70%); border-radius:50%; animation: ss-ripple 3s ease-out infinite; }
@keyframes ss-sky    { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.75; } }
@keyframes ss-sun    { 0% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.1); opacity:1; box-shadow: 0 0 50px 15px #ffc55a; } 100% { transform: scale(.95); opacity:.6; } }
@keyframes ss-sea    { 0% { background-position: 0 0; } 50% { background-position: 30% 0; } 100% { background-position: 100% 0; } }
@keyframes ss-shore  { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ss-siren-l{ 0% { transform: rotate(-3deg) translate(0,0); } 50% { transform: rotate(3deg) translate(4px,-1px); } 100% { transform: rotate(-3deg) translate(0,0); } }
@keyframes ss-siren-r{ 0% { transform: rotate(3deg) translate(0,0); } 50% { transform: rotate(-3deg) translate(-4px,-1px); } 100% { transform: rotate(3deg) translate(0,0); } }
@keyframes ss-ripple { 0% { transform: scale(.2); opacity:1; } 50% { transform: scale(1.5); opacity:.5; } 100% { transform: scale(2.5); opacity:0; } }

/* approaching-scylla-charybdis (tense, sunlit) */
.scn-approaching-scylla-charybdis {
  background: 
    linear-gradient(180deg, #5a7a9a 0%, #8abcee 50%, #f0d87a 100%),
    radial-gradient(ellipse at 60% 20%, #ffd060 0%, transparent 50%);
}
.scn-approaching-scylla-charybdis .sky           { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7a9ac4 0%, #c4daf4 100%); animation: sc-sky 10s ease-in-out infinite alternate; }
.scn-approaching-scylla-charybdis .sea           { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1a4a6a 0%, #0a2a4a 60%, #051a2a 100%); animation: sc-sea 8s linear infinite; background-size: 200% 200%; }
.scn-approaching-scylla-charybdis .cliff-left    { position:absolute; bottom:30%; left:0; width:25%; height:60%; background: linear-gradient(90deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 0 40% 0 0 / 0 60% 0 0; box-shadow: inset -10px 0 20px rgba(0,0,0,.6); animation: sc-cliff 12s ease-in-out infinite alternate; }
.scn-approaching-scylla-charybdis .whirlpool-right{ position:absolute; bottom:10%; right:5%; width:100px; height:100px; background: radial-gradient(circle, #1a3a5a 0%, #0a1a2a 60%, transparent 70%); border-radius:50%; animation: sc-whirlpool 4s linear infinite; }
.scn-approaching-scylla-charybdis .ship          { position:absolute; bottom:30%; left:45%; width:60px; height:20px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: sc-ship 3s ease-in-out infinite; }
.scn-approaching-scylla-charybdis .scylla-tentacles{ position:absolute; bottom:40%; left:0; width:20%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); /* allowed for landscape */ animation: sc-tentacles 5s ease-in-out infinite alternate; }
.scn-approaching-scylla-charybdis .spray         { position:absolute; bottom:45%; left:38%; width:8px; height:8px; background: rgba(200,230,255,.6); border-radius:50%; box-shadow: 0 0 6px 2px rgba(200,230,255,.3); animation: sc-spray 2s ease-out infinite; }
@keyframes sc-sky        { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes sc-sea        { 0% { background-position: 0 0; } 50% { background-position: 40% 0; } 100% { background-position: 100% 0; } }
@keyframes sc-cliff      { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes sc-whirlpool  { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.1); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes sc-ship       { 0% { transform: translate(0, 0) rotate(-1deg); } 50% { transform: translate(-5px, -2px) rotate(1deg); } 100% { transform: translate(0, 0) rotate(-1deg); } }
@keyframes sc-tentacles  { 0% { transform: translateY(0) skewX(0deg); } 50% { transform: translateY(-5px) skewX(3deg); } 100% { transform: translateY(0) skewX(0deg); } }
@keyframes sc-spray      { 0% { transform: translate(0, 0) scale(1); opacity:1; } 50% { transform: translate(-10px, 10px) scale(1.5); opacity:.5; } 100% { transform: translate(-20px, 20px) scale(0); opacity:0; } }

/* ulysses-prepares-for-scylla (tense, sunlit) */
.scn-ulysses-prepares-for-scylla {
  background: 
    linear-gradient(180deg, #5a7a9a 0%, #8abcee 50%, #f0d87a 100%),
    radial-gradient(ellipse at 40% 30%, #ffd060 0%, transparent 50%);
}
.scn-ulysses-prepares-for-scylla .sky           { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #6a8ab8 0%, #b4cee8 100%); animation: up-sky 12s ease-in-out infinite alternate; }
.scn-ulysses-prepares-for-scylla .sea           { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #1a4a6a 0%, #0a2a4a 60%, #051a2a 100%); animation: up-sea 10s linear infinite; background-size: 200% 200%; }
.scn-ulysses-prepares-for-scylla .ship-deck     { position:absolute; bottom:30%; left:35%; width:80px; height:15px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: up-deck 4s ease-in-out infinite; }
.scn-ulysses-prepares-for-scylla .mast          { position:absolute; bottom:30%; left:48%; width:4px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); transform-origin: bottom; animation: up-mast 5s ease-in-out infinite; }
.scn-ulysses-prepares-for-scylla .ulysses-figure{ position:absolute; bottom:28%; left:42%; width:20px; height:40px; background: linear-gradient(180deg, #a08050 0%, #6a4a2a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: inset -4px 0 6px rgba(0,0,0,.4); animation: up-figure 3s ease-in-out infinite; }
.scn-ulysses-prepares-for-scylla .spear         { position:absolute; bottom:40%; left:44%; width:2px; height:30px; background: #a07a40; border-radius:1px; transform: rotate(20deg); animation: up-spear 3s ease-in-out infinite alternate; }
.scn-ulysses-prepares-for-scylla .armor-glow    { position:absolute; bottom:28%; left:42%; width:20px; height:40px; background: radial-gradient(circle at 50% 30%, #ffc080 0%, transparent 70%); border-radius:50%; opacity:.5; mix-blend-mode: screen; animation: up-glow 2s ease-in-out infinite alternate; }
.scn-ulysses-prepares-for-scylla .distant-scylla{ position:absolute; bottom:10%; right:5%; width:30px; height:20px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 40% 60% 20% 20% / 60% 40% 30% 30%; opacity:.4; animation: up-scylla 8s ease-in-out infinite alternate; }
@keyframes up-sky     { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.75; } }
@keyframes up-sea     { 0% { background-position: 0 0; } 50% { background-position: 30% 0; } 100% { background-position: 100% 0; } }
@keyframes up-deck    { 0% { transform: translateY(0) rotate(-.5deg); } 50% { transform: translateY(-1px) rotate(.5deg); } 100% { transform: translateY(0) rotate(-.5deg); } }
@keyframes up-mast    { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes up-figure  { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes up-spear   { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-3px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes up-glow    { 0% { opacity:.3; transform: scale(.9); } 50% { opacity:.7; transform: scale(1.2); } 100% { opacity:.4; transform: scale(1); } }
@keyframes up-scylla  { 0% { transform: scale(1); opacity:.3; } 50% { transform: scale(1.05); opacity:.5; } 100% { transform: scale(1); opacity:.3; } }

.scn-swineherd-hut-story { background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%, #0a0500 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%); }
.scn-swineherd-hut-story .shs-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 0 0; }
.scn-swineherd-hut-story .shs-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-swineherd-hut-story .shs-fire { position:absolute; bottom:30%; left:30%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, #ff6600 0%, #cc3300 40%, transparent 70%); border-radius:50%; animation: shs-fire 2s ease-in-out infinite alternate; }
.scn-swineherd-hut-story .shs-figure { position:absolute; bottom:30%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: shs-figure 4s ease-in-out infinite; }
.scn-swineherd-hut-story .shs-pot { position:absolute; bottom:30%; left:38%; width:25px; height:20px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius:30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: shs-pot-bob 3s ease-in-out infinite; }
.scn-swineherd-hut-story .shs-window { position:absolute; top:20%; right:15%; width:30px; height:30px; background: linear-gradient(180deg, #1a1a4a, #0a0a2a); border-radius:10%; box-shadow: inset 0 0 10px #000; animation: shs-window-glow 5s ease-in-out infinite alternate; }
.scn-swineherd-hut-story .shs-ship-outside { position:absolute; top:10%; right:5%; width:40px; height:20px; background: linear-gradient(180deg, #3a2a1a, #1a0a00); border-radius:20% 20% 0 0; animation: shs-ship-drift 15s linear infinite; }
@keyframes shs-fire { 0% { transform: scale(1) translateY(0); opacity:.8; } 50% { transform: scale(1.1) translateY(-2px); opacity:1; } 100% { transform: scale(.95) translateY(0); opacity:.9; } }
@keyframes shs-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes shs-pot-bob { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes shs-window-glow { 0% { box-shadow: inset 0 0 5px #000; } 50% { box-shadow: inset 0 0 15px #2a2a6a; } 100% { box-shadow: inset 0 0 5px #000; } }
@keyframes shs-ship-drift { 0% { transform: translateX(0); } 50% { transform: translateX(-100px) translateY(2px); } 100% { transform: translateX(-200px) translateY(0); } }

.scn-telemachus-ship-arrival { background: linear-gradient(180deg, #f0c070 0%, #b0a0d0 40%, #304070 100%), radial-gradient(ellipse at 50% 0%, #f0d080 0%, transparent 60%); }
.scn-telemachus-ship-arrival .tsa-sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #f0d080 0%, #c0a0e0 40%, #4060a0 100%); }
.scn-telemachus-ship-arrival .tsa-sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2060a0 0%, #1030a0 100%); animation: tsa-sea 8s ease-in-out infinite alternate; }
.scn-telemachus-ship-arrival .tsa-ship-hull { position:absolute; bottom:35%; left:20%; width:60px; height:20px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius:30% 30% 10% 10%; transform-origin: center bottom; animation: tsa-ship-bob 4s ease-in-out infinite; }
.scn-telemachus-ship-arrival .tsa-mast { position:absolute; bottom:55%; left:30%; width:4px; height:40px; background: #2a1a0a; transform-origin: bottom center; animation: tsa-mast-sway 6s ease-in-out infinite; }
.scn-telemachus-ship-arrival .tsa-sail { position:absolute; bottom:50%; left:25%; width:30px; height:30px; background: linear-gradient(180deg, #f0e0d0, #d0c0b0); border-radius:10% 10% 50% 50%; clip-path: polygon(0% 0%,100% 0%,100% 100%,0% 100%); transform: rotate(10deg); animation: tsa-sail-flap 3s ease-in-out infinite alternate; }
.scn-telemachus-ship-arrival .tsa-oars { position:absolute; bottom:30%; left:15%; width:30px; height:4px; background: #2a1a0a; border-radius:2px; animation: tsa-oars 2s ease-in-out infinite; }
.scn-telemachus-ship-arrival .tsa-land { position:absolute; bottom:40%; right:10%; width:80px; height:30px; background: linear-gradient(180deg, #4a5a3a, #2a3a1a); border-radius:40% 40% 0 0; }
@keyframes tsa-sea { 0% { background-position:0 0; } 50% { background-position:0 10px; } 100% { background-position:0 0; } }
@keyframes tsa-ship-bob { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tsa-mast-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes tsa-sail-flap { 0% { transform: rotate(10deg) scaleX(1); } 50% { transform: rotate(15deg) scaleX(1.1); } 100% { transform: rotate(10deg) scaleX(1); } }
@keyframes tsa-oars { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(10deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-telemachus-farewell-piraeus { background: linear-gradient(180deg, #f0e0c0 0%, #b0c0d0 40%, #7090b0 100%), radial-gradient(ellipse at 50% 50%, #f0e0d0 0%, transparent 70%); }
.scn-telemachus-farewell-piraeus .tcf-sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #f0e0c0 0%, #a0b0c0 100%); }
.scn-telemachus-farewell-piraeus .tcf-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); }
.scn-telemachus-farewell-piraeus .tcf-figure-left { position:absolute; bottom:25%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: tcf-figure-left 3s ease-in-out infinite alternate; }
.scn-telemachus-farewell-piraeus .tcf-figure-right { position:absolute; bottom:25%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a2a, #1a1a1a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: tcf-figure-right 3.5s ease-in-out infinite alternate; }
.scn-telemachus-farewell-piraeus .tcf-ship { position:absolute; bottom:30%; right:10%; width:60px; height:25px; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius:30% 30% 0 0; animation: tcf-ship-bob 6s ease-in-out infinite; }
.scn-telemachus-farewell-piraeus .tcf-mast { position:absolute; bottom:55%; right:15%; width:4px; height:50px; background: #3a2a1a; animation: tcf-mast-sway 5s ease-in-out infinite; }
.scn-telemachus-farewell-piraeus .tcf-building { position:absolute; bottom:30%; right:0; width:40px; height:60px; background: linear-gradient(180deg, #c0b0a0, #a09080); border-radius:10% 10% 0 0; }
@keyframes tcf-figure-left { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes tcf-figure-right { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes tcf-ship-bob { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes tcf-mast-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0); } }

.scn-swineherd-hut-morning { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, transparent 70%); }
.scn-swineherd-hut-morning .shm-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 0 0; }
.scn-swineherd-hut-morning .shm-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); }
.scn-swineherd-hut-morning .shm-fire { position:absolute; bottom:30%; left:35%; width:35px; height:45px; background: radial-gradient(ellipse at 50% 100%, #ff8800 0%, #cc5500 30%, transparent 60%); border-radius:50%; animation: shm-fire 2.5s ease-in-out infinite alternate; }
.scn-swineherd-hut-morning .shm-figure-ulysses { position:absolute; bottom:25%; left:20%; width:22px; height:55px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: shm-figure 4s ease-in-out infinite; }
.scn-swineherd-hut-morning .shm-figure-swineherd { position:absolute; bottom:25%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a2a, #1a1a1a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: shm-figure2 4.5s ease-in-out infinite; }
.scn-swineherd-hut-morning .shm-pot { position:absolute; bottom:28%; left:30%; width:25px; height:18px; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius:30% 30% 10% 10%; animation: shm-pot 3s ease-in-out infinite; }
.scn-swineherd-hut-morning .shm-pig { position:absolute; bottom:20%; right:10%; width:15px; height:10px; background: linear-gradient(180deg, #5a3a2a, #3a2a1a); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; animation: shm-pig 6s ease-in-out infinite alternate; }
@keyframes shm-fire { 0% { transform: scale(1) translateY(0); opacity:.7; } 50% { transform: scale(1.15) translateY(-3px); opacity:1; } 100% { transform: scale(.95) translateY(0); opacity:.8; } }
@keyframes shm-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes shm-figure2 { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes shm-pot { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes shm-pig { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }

/* Scene: telemachus-obeys-goddess */
.scn-telemachus-obeys-goddess {
  background: 
    linear-gradient(180deg, #8a9ba8 0%, #a8b7c2 40%, #c4d0d8 100%),
    radial-gradient(ellipse at 50% 0%, #d0dbe0 0%, transparent 60%);
}
.scn-telemachus-obeys-goddess .tog-sky { position:absolute; inset:0 0 55% 0; background:linear-gradient(180deg, #6b7f8c 0%, #9aadb8 100%); animation:tog-sky 14s ease-in-out infinite alternate; }
.scn-telemachus-obeys-goddess .tog-ground { position:absolute; bottom:0%; left:0; right:0; height:55%; background:linear-gradient(180deg, #7d6e5b 0%, #5b4c39 100%); border-radius:20% 20% 0 0; box-shadow:inset 0 8px 15px rgba(0,0,0,.3); }
.scn-telemachus-obeys-goddess .tog-wall { position:absolute; bottom:25%; left:10%; right:10%; height:50%; background:linear-gradient(90deg, #8c7b6a 0%, #a79680 50%, #7d6b5a 100%); border-radius:5% 5% 0 0; box-shadow:0 -4px 12px rgba(0,0,0,.2); }
.scn-telemachus-obeys-goddess .tog-column-l { position:absolute; bottom:20%; left:15%; width:12px; height:60%; background:linear-gradient(180deg, #9c8c7a 0%, #6e5e4c 100%); border-radius: 20% 20% 0 0; box-shadow:2px 0 8px rgba(0,0,0,.3); animation:tog-col 20s ease-in-out infinite alternate; }
.scn-telemachus-obeys-goddess .tog-column-r { position:absolute; bottom:20%; right:15%; width:12px; height:60%; background:linear-gradient(180deg, #9c8c7a 0%, #6e5e4c 100%); border-radius: 20% 20% 0 0; box-shadow:-2px 0 8px rgba(0,0,0,.3); animation:tog-col 20s ease-in-out infinite alternate-reverse; }
.scn-telemachus-obeys-goddess .tog-firepit { position:absolute; bottom:15%; left:50%; width:40px; height:20px; transform:translateX(-50%); background:radial-gradient(ellipse at 50% 70%, #c07a3a 0%, #6a3a1a 70%); border-radius:50% 50% 30% 30%; box-shadow:0 0 25px 8px rgba(192,122,58,.5); animation:tog-fire 3s ease-in-out infinite alternate; }
.scn-telemachus-obeys-goddess .tog-figure { position:absolute; bottom:14%; left:40%; width:22px; height:50px; background:linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation:tog-fig 5s ease-in-out infinite; }
.scn-telemachus-obeys-goddess .tog-suitors { position:absolute; bottom:18%; left:55%; width:80px; height:60px; background:radial-gradient(ellipse at 30% 40%, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 20% 20%; filter: blur(3px); opacity:0.7; animation:tog-suit 8s ease-in-out infinite alternate; }
.scn-telemachus-obeys-goddess .tog-gateway { position:absolute; bottom:25%; left:35%; width:30%; height:60%; border:8px solid #6a5a48; border-bottom:none; background:transparent; border-radius:30% 30% 0 0; box-shadow:inset 0 0 20px rgba(0,0,0,.4); }
@keyframes tog-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes tog-col { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(0.5deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes tog-fire { 0% { transform:translateX(-50%) scale(1); box-shadow:0 0 20px 6px rgba(192,122,58,.4); } 50% { transform:translateX(-50%) scale(1.05); box-shadow:0 0 35px 12px rgba(192,122,58,.6); } 100% { transform:translateX(-50%) scale(0.95); box-shadow:0 0 25px 8px rgba(192,122,58,.5); } }
@keyframes tog-fig { 0% { transform:translateX(0) translateY(0) rotate(-1deg); } 33% { transform:translateX(4px) translateY(-1px) rotate(1deg); } 66% { transform:translateX(8px) translateY(0) rotate(0deg); } 100% { transform:translateX(12px) translateY(-1px) rotate(-1deg); } }
@keyframes tog-suit { 0% { transform:translateX(0) scale(1); opacity:0.7; } 50% { transform:translateX(-3px) scale(1.02); opacity:0.8; } 100% { transform:translateX(2px) scale(0.98); opacity:0.65; } }

/* Scene: telemachus-declines-antinous */
.scn-telemachus-declines-antinous {
  background: 
    linear-gradient(180deg, #4a4e5c 0%, #5c606e 30%, #7a7d88 100%),
    radial-gradient(ellipse at 50% 60%, #3a3e4a 0%, transparent 70%);
}
.scn-telemachus-declines-antinous .tda-bg { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #3a3e4a 0%, #5e6270 100%); animation:tda-bg 6s ease-in-out infinite alternate; }
.scn-telemachus-declines-antinous .tda-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #4a3e32 0%, #2a1e12 100%); border-radius:15% 15% 0 0; }
.scn-telemachus-declines-antinous .tda-telemachus { position:absolute; bottom:10%; left:30%; width:24px; height:50px; background:linear-gradient(180deg, #2a2e3c 0%, #161824 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation:tda-tel 1.5s ease-in-out infinite; }
.scn-telemachus-declines-antinous .tda-antinous { position:absolute; bottom:12%; left:55%; width:26px; height:52px; background:linear-gradient(180deg, #3a2e2a 0%, #1a100c 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation:tda-ant 2s ease-in-out infinite; }
.scn-telemachus-declines-antinous .tda-hand { position:absolute; bottom:28%; left:40%; width:18px; height:8px; background:#2a2e3c; border-radius:40%; transform:rotate(20deg); animation:tda-hand 1.2s ease-in-out infinite; }
.scn-telemachus-declines-antinous .tda-table { position:absolute; bottom:18%; left:50%; width:60px; height:8px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; box-shadow:0 4px 6px rgba(0,0,0,.5); animation:tda-table 3s ease-in-out infinite alternate; }
.scn-telemachus-declines-antinous .tda-cup { position:absolute; bottom:26%; left:52%; width:10px; height:14px; background:linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius:10% 10% 20% 20%; transform:rotate(5deg); animation:tda-cup 1s ease-in-out infinite; }
.scn-telemachus-declines-antinous .tda-suitors-bg { position:absolute; bottom:10%; right:10%; width:30%; height:40%; background:radial-gradient(ellipse at 30% 50%, #3a2e2a 0%, transparent 70%); opacity:0.5; filter: blur(6px); animation:tda-suitors 5s ease-in-out infinite alternate; }
@keyframes tda-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes tda-tel { 0% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(-3px) rotate(1deg); } 50% { transform:translateX(0) rotate(3deg); } 75% { transform:translateX(3px) rotate(-1deg); } 100% { transform:translateX(0) rotate(-2deg); } }
@keyframes tda-ant { 0% { transform:translateX(0) rotate(1deg); } 30% { transform:translateX(4px) rotate(-1deg); } 60% { transform:translateX(-2px) rotate(2deg); } 100% { transform:translateX(0) rotate(1deg); } }
@keyframes tda-hand { 0% { transform:translateX(0) rotate(20deg) scale(1); } 50% { transform:translateX(-8px) rotate(-10deg) scale(1.1); } 100% { transform:translateX(0) rotate(20deg) scale(1); } }
@keyframes tda-table { 0% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(1.02) rotate(0.5deg); } 100% { transform:translateX(-50%) scale(0.98); } }
@keyframes tda-cup { 0% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(-5deg) translateY(-2px); } 100% { transform:rotate(5deg) translateY(0); } }
@keyframes tda-suitors { 0% { opacity:0.4; transform:scale(0.95); } 50% { opacity:0.7; transform:scale(1.05); } 100% { opacity:0.5; transform:scale(0.95); } }

/* Scene: suitors-jeer */
.scn-suitors-jeer {
  background: 
    linear-gradient(180deg, #585c68 0%, #6e727d 40%, #8a8e98 100%),
    radial-gradient(ellipse at 50% 30%, #4a4e5a 0%, transparent 70%);
}
.scn-suitors-jeer .suj-sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #4a4e5c 0%, #707480 100%); animation:suj-sky 10s ease-in-out infinite alternate; }
.scn-suitors-jeer .suj-ground { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #5a4e3e 0%, #3a2e1e 100%); border-radius:30% 30% 0 0; }
.scn-suitors-jeer .suj-table { position:absolute; bottom:18%; left:40%; width:80px; height:6px; transform:translateX(-20px); background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.4); animation:suj-table 4s ease-in-out infinite; }
.scn-suitors-jeer .suj-fire { position:absolute; bottom:14%; left:55%; width:32px; height:18px; background:radial-gradient(ellipse at 50% 60%, #c07030 0%, #5a2a0a 100%); border-radius:50% 50% 30% 30%; box-shadow:0 0 20px 6px rgba(192,112,48,.5); animation:suj-fire 2s ease-in-out infinite alternate; }
.scn-suitors-jeer .suj-telemachus { position:absolute; bottom:12%; left:30%; width:22px; height:48px; background:linear-gradient(180deg, #2a2e3c 0%, #121620 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation:suj-tel 1s ease-in-out infinite; }
.scn-suitors-jeer .suj-suitor-1 { position:absolute; bottom:10%; left:48%; width:20px; height:44px; background:linear-gradient(180deg, #3a2e2a 0%, #1a100c 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation:suj-suit 1.2s ease-in-out infinite 0.1s; }
.scn-suitors-jeer .suj-suitor-2 { position:absolute; bottom:12%; left:58%; width:22px; height:46px; background:linear-gradient(180deg, #3a2e2a 0%, #1a100c 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation:suj-suit 1s ease-in-out infinite 0.3s; }
.scn-suitors-jeer .suj-suitor-3 { position:absolute; bottom:8%; left:68%; width:18px; height:40px; background:linear-gradient(180deg, #3a2e2a 0%, #1a100c 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation:suj-suit 1.4s ease-in-out infinite 0.5s; }
.scn-suitors-jeer .suj-column { position:absolute; bottom:15%; left:15%; width:10px; height:40%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 0 0; box-shadow:2px 0 6px rgba(0,0,0,.3); }
@keyframes suj-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes suj-table { 0% { transform:translateX(-20px) rotate(-1deg); } 50% { transform:translateX(-20px) rotate(1deg) scale(1.01); } 100% { transform:translateX(-20px) rotate(-1deg); } }
@keyframes suj-fire { 0% { transform:scale(1) rotate(0deg); box-shadow:0 0 15px 4px rgba(192,112,48,.4); } 50% { transform:scale(1.08) rotate(-3deg); box-shadow:0 0 30px 10px rgba(192,112,48,.6); } 100% { transform:scale(0.95) rotate(2deg); box-shadow:0 0 20px 6px rgba(192,112,48,.5); } }
@keyframes suj-tel { 0% { transform:translateX(0) rotate(-1deg); } 25% { transform:translateX(2px) rotate(2deg); } 50% { transform:translateX(-1px) rotate(-2deg); } 75% { transform:translateX(2px) rotate(1deg); } 100% { transform:translateX(0) rotate(-1deg); } }
@keyframes suj-suit { 0% { transform:translateX(0) rotate(0deg) scale(1); } 25% { transform:translateX(-3px) rotate(3deg) scale(1.02); } 50% { transform:translateX(3px) rotate(-2deg) scale(0.98); } 75% { transform:translateX(-2px) rotate(2deg) scale(1.01); } 100% { transform:translateX(0) rotate(0deg) scale(1); } }

/* Scene: telemachus-enters-store-room */
.scn-telemachus-enters-store-room {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2c22 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1e 0%, transparent 70%);
}
.scn-telemachus-enters-store-room .tes-wall { position:absolute; inset:0 0 20% 0; background:linear-gradient(90deg, #2a1e14 0%, #3a2a1e 50%, #1a120c 100%); border-radius:0 0 20% 20%; box-shadow:inset 0 0 30px rgba(0,0,0,.6); }
.scn-telemachus-enters-store-room .tes-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #2a1e12 0%, #1a0e06 100%); }
.scn-telemachus-enters-store-room .tes-shelf-l { position:absolute; bottom:40%; left:10%; width:30%; height:6px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius:2px; box-shadow:0 6px 10px rgba(0,0,0,.5); animation:tes-shelf 12s ease-in-out infinite alternate; }
.scn-telemachus-enters-store-room .tes-shelf-r { position:absolute; bottom:40%; right:10%; width:30%; height:6px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius:2px; box-shadow:0 6px 10px rgba(0,0,0,.5); animation:tes-shelf 12s ease-in-out infinite alternate-reverse; }
.scn-telemachus-enters-store-room .tes-chest { position:absolute; bottom:10%; left:25%; width:40px; height:30px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:6% 6% 4% 4%; box-shadow:0 8px 12px rgba(0,0,0,.5), inset 0 2px 4px rgba(255,255,255,.1); animation:tes-chest 8s ease-in-out infinite; }
.scn-telemachus-enters-store-room .tes-jar { position:absolute; bottom:22%; left:60%; width:18px; height:30px; background:linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:30% 30% 20% 20%; box-shadow:0 4px 8px rgba(0,0,0,.4); animation:tes-jar 6s ease-in-out infinite alternate; }
.scn-telemachus-enters-store-room .tes-cloth { position:absolute; bottom:50%; left:40%; width:60px; height:30px; background:linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:5px; filter: blur(2px); opacity:0.8; animation:tes-cloth 15s ease-in-out infinite alternate; }
.scn-telemachus-enters-store-room .tes-lamp { position:absolute; bottom:48%; left:50%; width:12px; height:16px; transform:translateX(-50%); background:radial-gradient(circle, #e8b050 0%, #b07030 70%); border-radius:20%; box-shadow:0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,.4); animation:tes-lamp 4s ease-in-out infinite alternate; }
.scn-telemachus-enters-store-room .tes-figure { position:absolute; bottom:5%; left:35%; width:20px; height:45px; background:linear-gradient(180deg, #1a1412 0%, #0a0806 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation:tes-fig 6s ease-in-out infinite; }
@keyframes tes-shelf { 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(1.02) translateY(-1px); } 100% { transform:scaleY(1) translateY(0); } }
@keyframes tes-chest { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(0.5deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes tes-jar { 0% { transform:scaleY(1) rotate(0deg); } 50% { transform:scaleY(1.03) rotate(1deg); } 100% { transform:scaleY(1) rotate(0deg); } }
@keyframes tes-cloth { 0% { transform:translateX(0) rotate(0deg) scale(1); } 50% { transform:translateX(2px) rotate(1deg) scale(1.02); } 100% { transform:translateX(-2px) rotate(-1deg) scale(0.98); } }
@keyframes tes-lamp { 0% { box-shadow:0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3); opacity:0.9; } 50% { box-shadow:0 0 40px 14px #e8b050, 0 0 80px 25px rgba(232,176,80,.5); opacity:1; } 100% { box-shadow:0 0 25px 8px #c08040, 0 0 50px 15px rgba(192,128,64,.35); opacity:0.85; } }
@keyframes tes-fig { 0% { transform:translateX(0) translateY(0) rotate(-1deg); } 33% { transform:translateX(3px) translateY(-1px) rotate(1deg); } 66% { transform:translateX(6px) translateY(0) rotate(0deg); } 100% { transform:translateX(9px) translateY(-1px) rotate(-1deg); } }

.scn-neptune-storms { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #2a2a4a 60%, #1a1a2a 100%), radial-gradient(ellipse at 50% 80%, #2a2a5a 0%, transparent 70%); }
.scn-neptune-storms .sky { position:absolute; inset:0; background: linear-gradient(180deg, #0c0c2c 0%, #1c1c3c 50%, #0a0a1a 100%); animation: ns-sky 8s ease-in-out infinite alternate; }
.scn-neptune-storms .clouds { position:absolute; top:10%; height:30%; width:120%; filter: blur(10px); background: radial-gradient(ellipse at 30% 50%, rgba(80,80,120,0.4) 0%, transparent 70%), radial-gradient(ellipse at 70% 50%, rgba(60,60,100,0.3) 0%, transparent 70%); animation: ns-clouds 20s linear infinite; }
.scn-neptune-storms .clouds-left { left:-10%; }
.scn-neptune-storms .clouds-right { left:-20%; animation-direction: reverse; animation-duration: 25s; }
.scn-neptune-storms .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #0a1a1a 0%, #0c2c2c 50%, #0e3e3e 100%); animation: ns-sea 12s ease-in-out infinite alternate; }
.scn-neptune-storms .neptune { position:absolute; bottom:30%; left:40%; width:100px; height:150px; background: radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, #0a0a1a 70%, transparent 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ns-neptune 6s ease-in-out infinite; }
.scn-neptune-storms .trident { position:absolute; bottom:45%; left:38%; width:4px; height:80px; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%); border-radius: 2px; transform: rotate(15deg); transform-origin: bottom; animation: ns-trident 6s ease-in-out infinite; }
.scn-neptune-storms .lightning { position:absolute; top:10%; left:50%; width:2px; height:60px; background: #fff; filter: blur(2px); animation: ns-lightning 3s steps(2) infinite; box-shadow: 0 0 20px #fff, 0 0 40px rgba(255,255,255,0.5); }
@keyframes ns-sky { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes ns-clouds { 0% { transform: translateX(0); } 50% { transform: translateX(20px); } 100% { transform: translateX(0); } }
@keyframes ns-sea { 0% { transform: translateY(0); background-position:0% 0%; } 50% { transform: translateY(-5px); background-position:50% 0%; } 100% { transform: translateY(0); background-position:100% 0%; } }
@keyframes ns-neptune { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ns-trident { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ns-lightning { 0% { opacity:0; } 50% { opacity:1; } 100% { opacity:0; } }

.scn-raft-shattered { background: linear-gradient(180deg, #0a0a1a 0%, #0c1c2c 30%, #0e2e3e 60%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #0e2e3e 0%, transparent 70%); }
.scn-raft-shattered .sea-bg { position:absolute; inset:0; background: linear-gradient(180deg, #0a1a1a 0%, #0c2c2c 50%, #0e3e3e 100%); animation: rs-sea-bg 10s ease-in-out infinite alternate; }
.scn-raft-shattered .wave-big { position:absolute; bottom:20%; left:-10%; right:-10%; height:40%; background: linear-gradient(180deg, #1a3a4a 0%, #0a1a2a 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; animation: rs-wave 8s ease-in-out infinite alternate; }
.scn-raft-shattered .raft { position:absolute; bottom:35%; left:30%; width:120px; height:15px; background: #2a2a1a; border-radius: 3px; box-shadow: 0 3px 6px rgba(0,0,0,0.5); animation: rs-raft 5s ease-in-out infinite; }
.scn-raft-shattered .mast { position:absolute; bottom:50%; left:35%; width:4px; height:60px; background: #1a1a1a; border-radius: 2px; transform-origin: bottom; animation: rs-mast 3s ease-in-out infinite; }
.scn-raft-shattered .sail-fall { position:absolute; bottom:50%; left:30%; width:40px; height:30px; background: #2a2a2a; border-radius: 0 0 50% 50% / 0 0 100% 100%; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: rs-sail 4s ease-in-out infinite; }
.scn-raft-shattered .figure-overboard { position:absolute; bottom:25%; left:60%; width:20px; height:30px; background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rs-figure 6s ease-in-out infinite; }
.scn-raft-shattered .foam { position:absolute; bottom:30%; left:20%; width:80px; height:10px; background: rgba(200,220,240,0.3); filter: blur(4px); border-radius: 50%; animation: rs-foam 3s ease-in-out infinite; }
@keyframes rs-sea-bg { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes rs-wave { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-8px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes rs-raft { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-10px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rs-mast { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } }
@keyframes rs-sail { 0% { transform: translateY(0) rotate(0deg); opacity:0.8; } 50% { transform: translateY(10px) rotate(20deg); opacity:0.4; } 100% { transform: translateY(0) rotate(0deg); opacity:0.8; } }
@keyframes rs-figure { 0% { transform: translateY(0) translateX(0) rotate(-5deg); } 50% { transform: translateY(-5px) translateX(15px) rotate(5deg); } 100% { transform: translateY(0) translateX(0) rotate(-5deg); } }
@keyframes rs-foam { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.2; transform: scale(1); } }

.scn-ino-appears { background: linear-gradient(180deg, #0a0a1a 0%, #0c1c3a 30%, #0a2a4a 60%, #0a0a1a 100%), radial-gradient(ellipse at 50% 70%, #1a2a4a 0%, transparent 70%); }
.scn-ino-appears .sea-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a1a2a 0%, #0a2a3a 50%, #0a3a4a 100%); animation: ia-sea-deep 12s ease-in-out infinite alternate; }
.scn-ino-appears .wave-surface { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a4a5a 0%, #0a2a3a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; animation: ia-wave 10s ease-in-out infinite; }
.scn-ino-appears .ulysses { position:absolute; bottom:15%; left:30%; width:25px; height:40px; background: #0a0a0a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: ia-ulysses 5s ease-in-out infinite; }
.scn-ino-appears .ino-glow { position:absolute; bottom:30%; left:55%; width:60px; height:80px; background: radial-gradient(circle, rgba(180,200,255,0.3) 0%, transparent 70%); animation: ia-glow 4s ease-in-out infinite; }
.scn-ino-appears .ino-figure { position:absolute; bottom:30%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #2a3a6a 0%, #1a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ia-ino 6s ease-in-out infinite; }
.scn-ino-appears .light-rays { position:absolute; top:0; left:40%; width:5px; height:100%; background: linear-gradient(180deg, rgba(200,220,255,0.1) 0%, rgba(200,220,255,0) 100%); transform: rotate(20deg); animation: ia-rays 7s ease-in-out infinite alternate; }
@keyframes ia-sea-deep { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes ia-wave { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ia-ulysses { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ia-glow { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(1); } }
@keyframes ia-ino { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ia-rays { 0% { opacity:0; } 50% { opacity:0.3; } 100% { opacity:0; } }

.scn-ino-gives-veil { background: linear-gradient(180deg, #1a0a0a 0%, #3a1a0a 30%, #2a0a0a 60%, #1a0a0a 100%), radial-gradient(ellipse at 50% 70%, #4a2a0a 0%, transparent 70%); }
.scn-ino-gives-veil .sea-shadow { position:absolute; inset:0; background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 50%, #1a0a0a 100%); animation: iv-sea-shadow 10s ease-in-out infinite alternate; }
.scn-ino-gives-veil .wave-soft { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(0deg, #2a1a0a 0%, #1a0a0a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; animation: iv-wave 8s ease-in-out infinite; }
.scn-ino-gives-veil .ulysses-reach { position:absolute; bottom:25%; left:30%; width:30px; height:45px; background: #0a0a0a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: iv-ulysses 4s ease-in-out infinite; }
.scn-ino-gives-veil .ino-hand { position:absolute; bottom:30%; left:55%; width:20px; height:30px; background: #2a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: iv-ino-hand 5s ease-in-out infinite; }
.scn-ino-gives-veil .veil { position:absolute; bottom:35%; left:43%; width:40px; height:20px; background: linear-gradient(135deg, #c08040 0%, #e0a060 50%, #c08040 100%); border-radius: 50%; filter: blur(2px); box-shadow: 0 0 20px #e0a060, 0 0 40px rgba(224,160,96,0.3); animation: iv-veil 4s ease-in-out infinite alternate; }
.scn-ino-gives-veil .sparkles { position:absolute; top:10%; left:50%; width:100%; height:100%; background: radial-gradient(circle at 30% 20%, rgba(255,200,100,0.2) 0%, transparent 50%), radial-gradient(circle at 70% 50%, rgba(255,200,100,0.1) 0%, transparent 50%); animation: iv-sparkles 6s ease-in-out infinite; }
@keyframes iv-sea-shadow { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes iv-wave { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes iv-ulysses { 0% { transform: translateY(0) rotate(0deg) scaleX(1); } 50% { transform: translateY(-3px) rotate(5deg) scaleX(0.9); } 100% { transform: translateY(0) rotate(0deg) scaleX(1); } }
@keyframes iv-ino-hand { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes iv-veil { 0% { opacity:0.6; transform: scale(0.9) rotate(-5deg); } 50% { opacity:1; transform: scale(1) rotate(5deg); } 100% { opacity:0.6; transform: scale(0.9) rotate(-5deg); } }
@keyframes iv-sparkles { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.2; } }

/* Scene: minerva-advises-telemachus */
.scn-minerva-advises-telemachus {
  background: linear-gradient(180deg, #87CEEB 0%, #FFF8DC 30%, #B0E0E6 60%, #829D7A 100%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 60%);
}
.scn-minerva-advises-telemachus .sky-gradient { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #FFF8DC 0%, #87CEEB 100%); animation: ma-skybreathe 8s ease-in-out infinite alternate; }
.scn-minerva-advises-telemachus .sun-disc { position:absolute; top:8%; left:55%; width:60px; height:60px; background: radial-gradient(circle, #FFFAF0 0%, #FFD700 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.4); animation: ma-sunglow 6s ease-in-out infinite alternate; }
.scn-minerva-advises-telemachus .sea-waves { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4682B4 0%, #1C6B8E 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 4px 15px rgba(0,0,0,0.3); animation: ma-seasway 12s ease-in-out infinite alternate; }
.scn-minerva-advises-telemachus .rocky-path { position:absolute; bottom:15%; left:10%; right:20%; height:18%; background: linear-gradient(135deg, #6B5B4F 0%, #4A3B32 50%, #3A2A1A 100%); border-radius: 40% 20% 0 0 / 80% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-minerva-advises-telemachus .fortress-distant { position:absolute; bottom:40%; left:70%; width:60px; height:40px; background: linear-gradient(180deg, #D2B48C 0%, #8B7355 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: ma-hover 9s ease-in-out infinite; }
.scn-minerva-advises-telemachus .guide-figure { position:absolute; bottom:14%; left:15%; width:16px; height:38px; background: linear-gradient(180deg, #3A2A1A 0%, #1A1A0A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ma-walk-lead 5s ease-in-out infinite; }
.scn-minerva-advises-telemachus .youth-figure { position:absolute; bottom:12%; left:22%; width:18px; height:40px; background: linear-gradient(180deg, #4A3B32 0%, #2A1A1A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ma-walk-follow 5s ease-in-out infinite 0.5s; }
.scn-minerva-advises-telemachus .light-ray { position:absolute; top:5%; left:40%; width:120%; height:40%; background: linear-gradient(135deg, rgba(255,255,224,0.4) 0%, transparent 70%); transform: rotate(25deg); filter: blur(10px); animation: ma-raypulse 7s ease-in-out infinite alternate; }
@keyframes ma-skybreathe { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ma-sunglow { 0% { box-shadow: 0 0 30px 15px rgba(255,215,0,0.3); transform: scale(0.95) } 100% { box-shadow: 0 0 60px 30px rgba(255,215,0,0.6); transform: scale(1.05) } }
@keyframes ma-seasway { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(2px) rotate(-1deg) } }
@keyframes ma-hover { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ma-walk-lead { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(6px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(12px) translateY(0) rotate(-1deg) } 75% { transform: translateX(18px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(24px) translateY(0) rotate(0deg) } }
@keyframes ma-walk-follow { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(10px) translateY(0) rotate(1deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(20px) translateY(0) rotate(0deg) } }
@keyframes ma-raypulse { 0% { opacity:0.3; transform: rotate(20deg) scale(1) } 100% { opacity:0.7; transform: rotate(30deg) scale(1.1) } }

/* Scene: telemachus-fears-to-address-nestor */
.scn-telemachus-fears-to-address-nestor {
  background: linear-gradient(180deg, #FDFBF7 0%, #E6E0D4 40%, #A69C8B 80%, #4A3B32 100%), radial-gradient(ellipse at 20% 80%, #2C3E50 0%, transparent 60%);
}
.scn-telemachus-fears-to-address-nestor .hall-shadow { position:absolute; inset:0; background: linear-gradient(135deg, #1A1A24 0%, transparent 40%, #1A1A24 70%); animation: tf-shadowgrow 10s ease-in-out infinite alternate; }
.scn-telemachus-fears-to-address-nestor .throne-imposing { position:absolute; bottom:50%; left:30%; right:30%; height:50%; background: linear-gradient(180deg, #5C4B3A 0%, #2A1A1A 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 10px 30px rgba(0,0,0,0.7); }
.scn-telemachus-fears-to-address-nestor .column-left { position:absolute; bottom:10%; left:10%; width:12px; height:80%; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset -2px 0 5px rgba(0,0,0,0.3); }
.scn-telemachus-fears-to-address-nestor .column-right { position:absolute; bottom:10%; right:10%; width:12px; height:80%; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 2px 0 5px rgba(0,0,0,0.3); }
.scn-telemachus-fears-to-address-nestor .king-silhouette { position:absolute; bottom:48%; left:40%; width:40px; height:60px; background: #1A1A0A; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tf-tower 6s ease-in-out infinite alternate; }
.scn-telemachus-fears-to-address-nestor .youth-hesitant { position:absolute; bottom:10%; left:45%; width:14px; height:32px; background: linear-gradient(180deg, #3A2A1A 0%, #0A0A0A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tf-shake 2s ease-in-out infinite; }
.scn-telemachus-fears-to-address-nestor .sunbeam-harsh { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(135deg, rgba(255,255,255,0.5) 0%, transparent 60%); transform: skewX(-10deg); filter: blur(4px); animation: tf-beam 5s ease-in-out infinite alternate; }
@keyframes tf-shadowgrow { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes tf-tower { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.02) translateY(-2px) } 100% { transform: scale(0.98) translateY(2px) } }
@keyframes tf-shake { 0%,100% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-2px) rotate(-3deg) } 50% { transform: translateX(1px) rotate(4deg) } 75% { transform: translateX(-1px) rotate(-2deg) } }
@keyframes tf-beam { 0% { opacity:0.4; transform: skewX(-10deg) scale(1) } 50% { opacity:0.8; transform: skewX(-5deg) scale(1.05) } 100% { opacity:0.3; transform: skewX(-15deg) scale(0.95) } }

/* Scene: minerva-encourages-confidence */
.scn-minerva-encourages-confidence {
  background: linear-gradient(180deg, #FFDAB9 0%, #F4A460 40%, #8B6F5E 80%, #4A3B32 100%), radial-gradient(circle at 50% 40%, #FFE4B5 0%, transparent 70%);
}
.scn-minerva-encourages-confidence .glow-backdrop { position:absolute; inset:0; background: radial-gradient(circle at 50% 60%, #FFD700 0%, transparent 60%); animation: me-warmpulse 8s ease-in-out infinite alternate; }
.scn-minerva-encourages-confidence .mentor-profile { position:absolute; bottom:20%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #8B6F5E 0%, #3A2A1A 100%); border-radius: 60% 40% 40% 60% / 60% 60% 40% 40%; transform-origin: bottom center; animation: me-breathe 5s ease-in-out infinite; }
.scn-minerva-encourages-confidence .youth-profile { position:absolute; bottom:18%; left:48%; width:28px; height:45px; background: linear-gradient(180deg, #A0522D 0%, #2A1A1A 100%); border-radius: 40% 60% 60% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: me-breathe 5s ease-in-out infinite 0.3s; }
.scn-minerva-encourages-confidence .connecting-light { position:absolute; bottom:38%; left:42%; width:16%; height:4px; background: linear-gradient(90deg, transparent, #FFD700, transparent); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,215,0,0.5); animation: me-glowconnect 6s ease-in-out infinite alternate; }
.scn-minerva-encourages-confidence .olive-spray { position:absolute; bottom:40%; left:42%; width:40px; height:20px; background: linear-gradient(135deg, #5F6F52 0%, #3A4A2A 100%); border-radius: 80% 20% 50% 50% / 50% 50% 50% 50%; transform: rotate(-30deg); animation: me-float 7s ease-in-out infinite; }
.scn-minerva-encourages-confidence .sparkle-particles { position:absolute; bottom:50%; left:30%; width:40%; height:20%; background: radial-gradient(circle at 30% 50%, #FFF8DC 0%, transparent 20%), radial-gradient(circle at 70% 30%, #FFD700 0%, transparent 15%), radial-gradient(circle at 50% 70%, #FFF8DC 0%, transparent 10%); filter: blur(2px); animation: me-sparkle 4s ease-in-out infinite; }
@keyframes me-warmpulse { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes me-breathe { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.01) } }
@keyframes me-glowconnect { 0% { opacity:0.3; transform: scaleX(0.8) } 50% { opacity:0.8; transform: scaleX(1.2) } 100% { opacity:0.5; transform: scaleX(1) } }
@keyframes me-float { 0%,100% { transform: translateY(0) rotate(-30deg) } 50% { transform: translateY(-5px) rotate(-25deg) } }
@keyframes me-sparkle { 0% { opacity:0.2 } 50% { opacity:0.9 } 100% { opacity:0.3 } }

/* Scene: telemachus-and-minerva-join-festival */
.scn-telemachus-and-minerva-join-festival {
  background: linear-gradient(180deg, #FFE4B5 0%, #87CEEB 30%, #4682B4 60%, #8FBC8F 100%), radial-gradient(ellipse at 50% 100%, #C8553D 0%, transparent 70%);
}
.scn-telemachus-and-minerva-join-festival .festival-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #FFE4B5 0%, #87CEEB 100%); animation: tj-skyglow 10s ease-in-out infinite alternate; }
.scn-telemachus-and-minerva-join-festival .aegean-sea { position:absolute; bottom:25%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4682B4 0%, #1C6B8E 100%); border-radius: 40% 60% 0 0 / 60% 40% 0 0; box-shadow: inset 0 4px 20px rgba(0,0,0,0.3); animation: tj-searoll 14s ease-in-out infinite alternate; }
.scn-telemachus-and-minerva-join-festival .distant-ship { position:absolute; bottom:35%; left:15%; width:50px; height:15px; background: linear-gradient(90deg, #4A3B32 0%, #2A1A1A 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: tj-sail 15s linear infinite; }
.scn-telemachus-and-minerva-join-festival .sacrificial-altar { position:absolute; bottom:22%; left:45%; width:40px; height:30px; background: linear-gradient(180deg, #D2B48C 0%, #8B7355 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-telemachus-and-minerva-join-festival .celebrating-crowd { position:absolute; bottom:20%; left:20%; right:5%; height:15%; background: radial-gradient(ellipse at 30% 100%, #4A3B32 0%, transparent 50%), radial-gradient(ellipse at 60% 100%, #6B5B4F 0%, transparent 40%), radial-gradient(ellipse at 80% 100%, #3A2A1A 0%, transparent 50%); animation: tj-crowdwave 6s ease-in-out infinite; }
.scn-telemachus-and-minerva-join-festival .king-nestor { position:absolute; bottom:22%; left:50%; width:24px; height:45px; background: linear-gradient(180deg, #D2B48C 0%, #8B7355 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tj-hailking 5s ease-in-out infinite alternate; }
.scn-telemachus-and-minerva-join-festival .arriving-duo { position:absolute; bottom:18%; left:8%; width:20px; height:40px; background: linear-gradient(180deg, #4A3B32 0%, #1A1A0A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tj-arrive 8s ease-in-out infinite; }
.scn-telemachus-and-minerva-join-festival .incense-smoke { position:absolute; bottom:50%; left:46%; width:12%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.6) 0%, transparent 70%); filter: blur(8px); animation: tj-smokerise 9s ease-in-out infinite; }
@keyframes tj-skyglow { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes tj-searoll { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(2px) rotate(-2deg) } }
@keyframes tj-sail { 0% { transform: translateX(-60px) } 100% { transform: translateX(80vw) } }
@keyframes tj-crowdwave { 0%,100% { transform: translateY(0) scale(1) } 25% { transform: translateY(-2px) scale(1.02) } 50% { transform: translateY(-1px) scale(0.98) } 75% { transform: translateY(-3px) scale(1.01) } }
@keyframes tj-hailking { 0% { transform: scale(1) translateY(0) } 100% { transform: scale(1.02) translateY(-2px) } }
@keyframes tj-arrive { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(15px) rotate(3deg) } 100% { transform: translateX(30px) rotate(0deg) } }
@keyframes tj-smokerise { 0% { transform: translateY(0) scale(1); opacity:0.4 } 50% { transform: translateY(-15px) scale(1.5); opacity:0.7 } 100% { transform: translateY(-30px) scale(2); opacity:0 } }

.scn-cyclops-greets { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #1a0a00 100%), radial-gradient(ellipse at 30% 70%, #6a4a2a 0%, transparent 60%); }
.scn-cyclops-greets .cave-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); animation: cg-cave 20s ease-in-out infinite alternate; }
.scn-cyclops-greets .fire-glow { position:absolute; bottom:20%; left:40%; width:60px; height:80px; background: radial-gradient(circle, #ff8030 0%, #cc4000 50%, transparent 70%); border-radius:50%; animation: cg-fire 2s ease-in-out infinite alternate; }
.scn-cyclops-greets .cyclops-figure { position:absolute; bottom:10%; left:30%; width:80px; height:120px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: cg-cyclops 6s ease-in-out infinite; }
.scn-cyclops-greets .men-group { position:absolute; bottom:5%; left:50%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 30% 30% / 70% 70% 40% 40%; animation: cg-men 4s ease-in-out infinite; }
.scn-cyclops-greets .shadow-layer { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%); animation: cg-shadow 8s ease-in-out infinite; }
.scn-cyclops-greets .sparkles { position:absolute; top:10%; left:20%; width:4px; height:4px; background:#ffa040; border-radius:50%; box-shadow: 0 0 6px 2px #ff8040; animation: cg-spark 3s ease-in-out infinite; }
@keyframes cg-cave { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cg-fire { 0% { transform:scale(1) rotate(-2deg); opacity:0.8 } 50% { transform:scale(1.1) rotate(2deg); opacity:1 } 100% { transform:scale(0.95) rotate(-1deg); opacity:0.9 } }
@keyframes cg-cyclops { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-5px) rotate(2deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes cg-men { 0% { transform:scale(1) translateX(0) } 50% { transform:scale(0.95) translateX(5px) } 100% { transform:scale(1) translateX(0) } }
@keyframes cg-shadow { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes cg-spark { 0% { transform:translateY(0) scale(1); opacity:1 } 50% { transform:translateY(-10px) scale(2); opacity:0.7 } 100% { transform:translateY(0) scale(1); opacity:1 } }

.scn-cyclops-refuses { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #1a0a00 100%), radial-gradient(ellipse at 50% 80%, #5a3a1a 0%, transparent 60%); }
.scn-cyclops-refuses .cave-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); animation: cr-cave 18s ease-in-out infinite alternate; }
.scn-cyclops-refuses .fire-glow { position:absolute; bottom:20%; left:40%; width:60px; height:80px; background: radial-gradient(circle, #ff8030 0%, #cc4000 50%, transparent 70%); border-radius:50%; animation: cr-fire 2.5s ease-in-out infinite alternate; }
.scn-cyclops-refuses .cyclops-defiant { position:absolute; bottom:10%; left:30%; width:80px; height:120px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: cr-cyclops 5s ease-in-out infinite; }
.scn-cyclops-refuses .men-cowering { position:absolute; bottom:5%; left:50%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 30% 30% / 70% 70% 40% 40%; animation: cr-men 4s ease-in-out infinite; }
.scn-cyclops-refuses .rock-altar { position:absolute; bottom:2%; left:20%; width:40px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%); border-radius:20% 20% 30% 30% / 40% 40% 50% 50%; animation: cr-rock 10s ease-in-out infinite alternate; }
.scn-cyclops-refuses .shadow-layer { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%); animation: cr-shadow 8s ease-in-out infinite; }
@keyframes cr-cave { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cr-fire { 0% { transform:scale(1) rotate(-2deg); opacity:0.8 } 50% { transform:scale(1.15) rotate(3deg); opacity:1 } 100% { transform:scale(0.95) rotate(-1deg); opacity:0.9 } }
@keyframes cr-cyclops { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(-3deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes cr-men { 0% { transform:scale(1) translateX(0); } 50% { transform:scale(0.9) translateX(8px); } 100% { transform:scale(1) translateX(0); } }
@keyframes cr-rock { 0% { transform:translateY(0); } 50% { transform:translateY(2px); } 100% { transform:translateY(0); } }
@keyframes cr-shadow { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.5 } }

.scn-cyclops-eats-men { background: linear-gradient(180deg, #2a0a0a 0%, #3a1a1a 30%, #1a0000 100%), radial-gradient(ellipse at 40% 70%, #6a2a1a 0%, transparent 60%); }
.scn-cyclops-eats-men .cave-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a1a1a 0%, #1a0000 100%); animation: ce-cave 20s ease-in-out infinite alternate; }
.scn-cyclops-eats-men .fire-glow { position:absolute; bottom:20%; left:40%; width:60px; height:80px; background: radial-gradient(circle, #ff6020 0%, #b83010 50%, transparent 70%); border-radius:50%; animation: ce-fire 2s ease-in-out infinite alternate; }
.scn-cyclops-eats-men .cyclops-eating { position:absolute; bottom:10%; left:30%; width:80px; height:120px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: ce-cyclops 7s ease-in-out infinite; }
.scn-cyclops-eats-men .victim-dangle { position:absolute; bottom:20%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%); border-radius:30% 30% 40% 40% / 50% 50% 60% 60%; animation: ce-victim 3s ease-in-out infinite; }
.scn-cyclops-eats-men .blood-drip { position:absolute; top:50%; left:48%; width:4px; height:20px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%); border-radius:50%; animation: ce-blood 4s linear infinite; }
.scn-cyclops-eats-men .shadows { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(0,0,0,0.8) 0%, transparent 100%); animation: ce-shadow 8s ease-in-out infinite; }
@keyframes ce-cave { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes ce-fire { 0% { transform:scale(1) rotate(-2deg); opacity:0.8 } 50% { transform:scale(1.2) rotate(3deg); opacity:1 } 100% { transform:scale(0.9) rotate(-1deg); opacity:0.9 } }
@keyframes ce-cyclops { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(5deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes ce-victim { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(10px) rotate(10deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes ce-blood { 0% { transform:translateY(0); opacity:1; } 50% { transform:translateY(30px); opacity:0.6; } 100% { transform:translateY(0); opacity:0; } }
@keyframes ce-shadow { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }

.scn-morning-cyclops-eats-again { background: linear-gradient(180deg, #4a6a8a 0%, #8a9a7a 40%, #b0a070 100%), radial-gradient(ellipse at 80% 20%, #d0b070 0%, transparent 50%); }
.scn-morning-cyclops-eats-again .cave-morning { position:absolute; inset:0; background: linear-gradient(180deg, #5a7a8a 0%, #a0a080 100%); animation: mc-cave 20s ease-in-out infinite alternate; }
.scn-morning-cyclops-eats-again .sun-rays { position:absolute; top:0; left:30%; width:120px; height:200px; background: linear-gradient(135deg, #ffe080 0%, transparent 70%); animation: mc-sun 15s ease-in-out infinite alternate; }
.scn-morning-cyclops-eats-again .cyclops-morning { position:absolute; bottom:10%; left:30%; width:80px; height:120px; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: mc-cyclops 6s ease-in-out infinite; }
.scn-morning-cyclops-eats-again .men-remains { position:absolute; bottom:5%; left:50%; width:30px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 30% 30% / 70% 70% 40% 40%; animation: mc-men 4s ease-in-out infinite; }
.scn-morning-cyclops-eats-again .smoke-haze { position:absolute; top:30%; left:20%; width:100px; height:60px; background: radial-gradient(ellipse, rgba(200,180,150,0.5) 0%, transparent 70%); filter: blur(8px); animation: mc-smoke 30s ease-in-out infinite alternate; }
.scn-morning-cyclops-eats-again .dawn-glow { position:absolute; top:0; left:0; width:100%; height:50%; background: linear-gradient(180deg, #f0d090 0%, transparent 80%); animation: mc-dawn 5s ease-in-out infinite alternate; }
@keyframes mc-cave { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes mc-sun { 0% { transform:rotate(-10deg) scale(1); opacity:0.7 } 50% { transform:rotate(5deg) scale(1.1); opacity:1 } 100% { transform:rotate(-5deg) scale(0.95); opacity:0.8 } }
@keyframes mc-cyclops { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-4px) rotate(3deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes mc-men { 0% { transform:scale(1) translateX(0); } 50% { transform:scale(0.9) translateX(5px); } 100% { transform:scale(1) translateX(0); } }
@keyframes mc-smoke { 0% { transform:translateX(0) translateY(0); opacity:0.4 } 50% { transform:translateX(20px) translateY(-10px); opacity:0.7 } 100% { transform:translateX(-10px) translateY(5px); opacity:0.3 } }
@keyframes mc-dawn { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }

/* ===== scene: proteus-tells-of-ajax-death ===== */
.scn-proteus-tells-of-ajax-death {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #4a3a6e 30%, #ff8a4a 65%, #ffb56b 100%),
    radial-gradient(ellipse at 50% 100%, #ffb56b 0%, transparent 70%);
}
.scn-proteus-tells-of-ajax-death .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1a1a3e 0%, #4a3a6e 40%, transparent 100%);
  animation: paj-sky 14s ease-in-out infinite alternate;
}
.scn-proteus-tells-of-ajax-death .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0f1a2a 100%);
}
.scn-proteus-tells-of-ajax-death .cliff {
  position: absolute; bottom: 25%; left: 0; width: 35%; height: 75%;
  clip-path: polygon(0 0, 30% 0, 100% 100%, 0 100%);
  background: #2a1a0a;
}
.scn-proteus-tells-of-ajax-death .proteus {
  position: absolute; bottom: 42%; left: 8%;
  width: 18px; height: 44px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: paj-proteus 4s ease-in-out infinite;
}
.scn-proteus-tells-of-ajax-death .fallen {
  position: absolute; bottom: 22%; left: 12%;
  width: 30px; height: 12px;
  background: #0a0a1a;
  border-radius: 50%;
  animation: paj-fallen 6s ease-in-out infinite;
}
.scn-proteus-tells-of-ajax-death .cloud {
  position: absolute; top: 15%; left: 20%;
  width: 80px; 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: paj-cloud 40s linear infinite;
}

@keyframes paj-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes paj-proteus {
  0% { transform: translateX(0) translateY(0) rotate(-2deg) }
  50% { transform: translateX(3px) translateY(-2px) rotate(2deg) }
  100% { transform: translateX(0) translateY(0) rotate(-2deg) }
}
@keyframes paj-fallen {
  0% { transform: translateY(0) scaleY(1) }
  50% { transform: translateY(-1px) scaleY(1.02) }
  100% { transform: translateY(0) scaleY(1) }
}
@keyframes paj-cloud { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

/* ===== scene: proteus-tells-of-agamemnon-death ===== */
.scn-proteus-tells-of-agamemnon-death {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #4a3a6e 30%, #ff8a4a 65%, #ffb56b 100%),
    radial-gradient(ellipse at 50% 100%, #ffb56b 0%, transparent 70%);
}
.scn-proteus-tells-of-agamemnon-death .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1a1a3e 0%, #4a3a6e 40%, transparent 100%);
  animation: pag-sky 14s ease-in-out infinite alternate;
}
.scn-proteus-tells-of-agamemnon-death .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0f1a2a 100%);
}
.scn-proteus-tells-of-agamemnon-death .cliff {
  position: absolute; bottom: 20%; right: 0; width: 30%; height: 80%;
  clip-path: polygon(100% 0, 100% 100%, 0% 100%, 70% 0);
  background: #2a1a0a;
}
.scn-proteus-tells-of-agamemnon-death .hull {
  position: absolute; bottom: 35%; left: 38%;
  width: 60px; height: 20px;
  background: #4a3a2a;
  border-radius: 0 0 20px 20px;
  animation: pag-ship 5s ease-in-out infinite;
}
.scn-proteus-tells-of-agamemnon-death .sail {
  position: absolute; bottom: 50%; left: 44%;
  width: 30px; height: 50px;
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  background: #6a5a4a;
  animation: pag-sail 3s ease-in-out infinite alternate;
}
.scn-proteus-tells-of-agamemnon-death .figure {
  position: absolute; bottom: 38%; left: 40%;
  width: 12px; height: 20px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pag-figure 6s ease-in-out infinite;
}
.scn-proteus-tells-of-agamemnon-death .wave1 {
  position: absolute; bottom: 12%; left: 0; width: 100%; height: 12px;
  background: rgba(30,60,90,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: pag-wave1 8s linear infinite;
}
.scn-proteus-tells-of-agamemnon-death .wave2 {
  position: absolute; bottom: 8%; left: 0; width: 100%; height: 8px;
  background: rgba(30,60,90,0.2);
  border-radius: 50%;
  filter: blur(2px);
  animation: pag-wave2 11s linear infinite;
}

@keyframes pag-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes pag-ship { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes pag-sail { 0% { transform: rotateY(0deg) } 100% { transform: rotateY(15deg) } }
@keyframes pag-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pag-wave1 { 0% { transform: translateX(0) } 50% { transform: translateX(-20px) } 100% { transform: translateX(0) } }
@keyframes pag-wave2 { 0% { transform: translateX(0) } 50% { transform: translateX(15px) } 100% { transform: translateX(0) } }

/* ===== scene: proteus-tells-of-aegisthus-ambush ===== */
.scn-proteus-tells-of-aegisthus-ambush {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #4a3a6e 30%, #ff8a4a 65%, #ffb56b 100%),
    radial-gradient(ellipse at 50% 100%, #ffb56b 0%, transparent 70%);
}
.scn-proteus-tells-of-aegisthus-ambush .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1a1a3e 0%, #4a3a6e 40%, transparent 100%);
  animation: pae-sky 14s ease-in-out infinite alternate;
}
.scn-proteus-tells-of-aegisthus-ambush .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0f1a2a 100%);
}
.scn-proteus-tells-of-aegisthus-ambush .cliff {
  position: absolute; bottom: 25%; left: 0; width: 35%; height: 75%;
  clip-path: polygon(0 0, 30% 0, 100% 100%, 0 100%);
  background: #2a1a0a;
}
.scn-proteus-tells-of-aegisthus-ambush .tower {
  position: absolute; bottom: 30%; left: 18%; width: 20px; height: 60px;
  background: #3a2a1a;
  border-radius: 4px 4px 0 0;
}
.scn-proteus-tells-of-aegisthus-ambush .window {
  position: absolute; bottom: 60%; left: 20%; width: 8px; height: 10px;
  background: radial-gradient(circle, #f0c068 0%, #b08040 70%);
  border-radius: 2px;
  box-shadow: 0 0 14px 4px #c08040, 0 0 28px 8px rgba(192,128,64,0.3);
  animation: pae-glow 3s ease-in-out infinite alternate;
}
.scn-proteus-tells-of-aegisthus-ambush .rock {
  position: absolute; bottom: 22%; left: 23%;
  width: 30px; height: 20px;
  background: #3a2a1a;
  border-radius: 50% 50% 10% 10%;
}
.scn-proteus-tells-of-aegisthus-ambush .aegisthus {
  position: absolute; bottom: 20%; left: 25%;
  width: 10px; height: 15px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pae-aegisthus 5s ease-in-out infinite;
}
.scn-proteus-tells-of-aegisthus-ambush .agamemnon {
  position: absolute; bottom: 22%; left: 70%;
  width: 14px; height: 34px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pae-agamemnon 8s ease-in-out infinite;
}

@keyframes pae-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes pae-glow { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes pae-aegisthus { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(2px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes pae-agamemnon { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-8px) rotate(-1deg) } 100% { transform: translateX(-16px) rotate(0) } }

/* ===== scene: menelaus-weeps ===== */
.scn-menelaus-weeps {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #4a3a6e 30%, #ff8a4a 65%, #ffb56b 100%),
    radial-gradient(ellipse at 50% 100%, #ffb56b 0%, transparent 70%);
}
.scn-menelaus-weeps .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 65%;
  background: linear-gradient(180deg, #1a1a3e 0%, #4a3a6e 40%, transparent 100%);
  animation: men-sky 14s ease-in-out infinite alternate;
}
.scn-menelaus-weeps .sea {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0f1a2a 100%);
}
.scn-menelaus-weeps .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #c8a878 0%, #a88a6a 100%);
}
.scn-menelaus-weeps .body {
  position: absolute; bottom: 18%; left: 45%;
  width: 20px; height: 32px;
  background: #1a1a2a;
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  animation: men-body 6s ease-in-out infinite;
}
.scn-menelaus-weeps .head {
  position: absolute; bottom: 30%; left: 47%;
  width: 14px; height: 14px;
  background: #1a1a2a;
  border-radius: 50%;
  animation: men-head 4s ease-in-out infinite;
}
.scn-menelaus-weeps .wave1 {
  position: absolute; bottom: 16%; left: 0; width: 100%; height: 8px;
  background: rgba(30,60,90,0.25);
  border-radius: 50%;
  filter: blur(2px);
  animation: men-wave1 8s linear infinite;
}
.scn-menelaus-weeps .wave2 {
  position: absolute; bottom: 12%; left: 0; width: 100%; height: 6px;
  background: rgba(30,60,90,0.15);
  border-radius: 50%;
  filter: blur(2px);
  animation: men-wave2 12s linear infinite;
}
.scn-menelaus-weeps .cloud {
  position: absolute; top: 16%; left: 10%;
  width: 70px; 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: men-cloud 35s linear infinite;
}

@keyframes men-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes men-body { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes men-head { 0% { transform: rotate(0deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(0deg) } }
@keyframes men-wave1 { 0% { transform: translateX(0) } 50% { transform: translateX(-15px) } 100% { transform: translateX(0) } }
@keyframes men-wave2 { 0% { transform: translateX(0) } 50% { transform: translateX(20px) } 100% { transform: translateX(0) } }
@keyframes men-cloud { 0% { transform: translateX(-20px) } 100% { transform: translateX(110vw) } }

.scn-polyphemus-throws-rock {
  background: linear-gradient(180deg, #4a90b0 0%, #7ab8d0 40%, #f5c080 60%, #e87030 100%),
              radial-gradient(ellipse at 80% 60%, #fff8e0 0%, transparent 40%);
}
.scn-polyphemus-throws-rock .sky {
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(255,230,150,0.3) 0%, transparent 100%);
  animation: ptr-sky 12s ease-in-out infinite alternate;
}
.scn-polyphemus-throws-rock .sea {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #1a4a6a 0%, #0a2a3a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: ptr-sea 8s ease-in-out infinite;
}
.scn-polyphemus-throws-rock .rock {
  position:absolute; top:10%; left:10%; width:80px; height:80px;
  background: radial-gradient(circle at 30% 30%, #7a6a5a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%;
  animation: ptr-rock 3s ease-in-out infinite;
}
.scn-polyphemus-throws-rock .ship {
  position:absolute; bottom:30%; left:50%; width:120px; height:40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ptr-ship 5s ease-in-out infinite alternate;
}
.scn-polyphemus-throws-rock .giant-body {
  position:absolute; bottom:20%; left:5%; width:100px; height:170px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ptr-giant-body 4s ease-in-out infinite;
}
.scn-polyphemus-throws-rock .giant-arm {
  position:absolute; bottom:70%; left:30%; width:30px; height:60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ptr-giant-arm 2s ease-in-out infinite;
}
.scn-polyphemus-throws-rock .splash {
  position:absolute; bottom:25%; left:65%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: ptr-splash 1.5s ease-out infinite;
}
.scn-polyphemus-throws-rock .cloud-a {
  position:absolute; top:10%; left:15%; width:90px; height:20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: ptr-drift-a 40s linear infinite;
}
.scn-polyphemus-throws-rock .cloud-b {
  position:absolute; top:18%; right:10%; width:70px; height:15px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(5px);
  animation: ptr-drift-b 55s linear infinite reverse;
}
@keyframes ptr-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ptr-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(2px) } }
@keyframes ptr-rock {
  0% { transform: translateX(-50px) translateY(-100px) rotate(0deg) scale(0.6); opacity:0.8 }
  50% { transform: translateX(50px) translateY(20px) rotate(180deg) scale(1.2); opacity:1 }
  100% { transform: translateX(120px) translateY(80px) rotate(360deg) scale(1.8); opacity:0.5 }
}
@keyframes ptr-ship {
  0% { transform: translateX(-50%) rotate(-2deg) }
  50% { transform: translateX(-50%) rotate(2deg) }
  100% { transform: translateX(-50%) rotate(-1deg) }
}
@keyframes ptr-giant-body {
  0% { transform: translateY(0) rotate(0deg) }
  50% { transform: translateY(-4px) rotate(1deg) }
  100% { transform: translateY(0) rotate(0deg) }
}
@keyframes ptr-giant-arm {
  0% { transform: rotate(-30deg) translateY(0) }
  50% { transform: rotate(40deg) translateY(-10px) }
  100% { transform: rotate(-20deg) translateY(0) }
}
@keyframes ptr-splash {
  0% { transform: scale(0.2); opacity:1 }
  50% { transform: scale(1.5); opacity:0.6 }
  100% { transform: scale(2); opacity:0 }
}
@keyframes ptr-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes ptr-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* ---- departure-from-cyclops-island ---- */
.scn-departure-from-cyclops-island {
  background: linear-gradient(180deg, #ffb07c 0%, #ffdab9 30%, #87ceeb 60%, #4682b4 100%),
              radial-gradient(ellipse at 50% 20%, #fff0d0 0%, transparent 50%);
}
.scn-departure-from-cyclops-island .sky {
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(255,130,80,0.3) 0%, transparent 100%);
  animation: dfc-sky 15s ease-in-out infinite alternate;
}
.scn-departure-from-cyclops-island .sea {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a5a7a 0%, #0a2a3a 100%);
  border-radius: 70% 30% 0 0 / 20% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: dfc-sea 10s ease-in-out infinite;
}
.scn-departure-from-cyclops-island .island-bg {
  position:absolute; bottom:30%; left:20%; right:20%; height:20%;
  background: linear-gradient(180deg, #6a8a5a 0%, #3a5a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
  animation: dfc-island 20s ease-in-out infinite alternate;
}
.scn-departure-from-cyclops-island .ship-main {
  position:absolute; bottom:25%; left:45%; width:100px; height:35px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20% 80% 20% 80% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: dfc-ship-main 4s ease-in-out infinite alternate;
}
.scn-departure-from-cyclops-island .ship-small {
  position:absolute; bottom:23%; left:35%; width:60px; height:25px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a0a00 100%);
  border-radius: 20% 80% 20% 80% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: dfc-ship-small 5s ease-in-out infinite alternate-reverse;
}
.scn-departure-from-cyclops-island .figures {
  position:absolute; bottom:28%; left:50%; width:30px; height:20px;
  background: radial-gradient(circle at 50% 100%, #1a1a2a 0%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: dfc-figures 3s ease-in-out infinite;
}
.scn-departure-from-cyclops-island .campfire {
  position:absolute; bottom:30%; left:52%; width:12px; height:12px;
  background: radial-gradient(circle, #ffa040 0%, #d08020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 12px rgba(255,160,64,0.3);
  animation: dfc-fire 2s ease-in-out infinite alternate;
}
.scn-departure-from-cyclops-island .cloud-a {
  position:absolute; top:10%; left:10%; width:100px; height:18px;
  background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: dfc-drift-a 45s linear infinite;
}
.scn-departure-from-cyclops-island .cloud-b {
  position:absolute; top:16%; right:5%; width:80px; height:14px;
  background: linear-gradient(180deg, rgba(255,255,240,0.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(5px);
  animation: dfc-drift-b 60s linear infinite reverse;
}
@keyframes dfc-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dfc-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(1px) } }
@keyframes dfc-island { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.03) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes dfc-ship-main { 0% { transform: translateX(-50%) rotate(-1deg) } 100% { transform: translateX(-50%) rotate(1deg) } }
@keyframes dfc-ship-small { 0% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes dfc-figures { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dfc-fire { 0% { transform: scale(0.9); opacity:0.8 } 100% { transform: scale(1.3); opacity:1 } }
@keyframes dfc-drift-a { 0% { transform: translateX(-50px) } 100% { transform: translateX(130vw) } }
@keyframes dfc-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-110vw) } }

/* ---- aeolus-island ---- */
.scn-aeolus-island {
  background: linear-gradient(180deg, #87ceeb 0%, #e0f0ff 30%, #f0d090 70%, #b08040 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 50%);
}
.scn-aeolus-island .sky {
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%);
  animation: aeo-sky 18s ease-in-out infinite alternate;
}
.scn-aeolus-island .sea {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a6a8a 0%, #0a2a4a 100%);
  border-radius: 50% 50% 0 0 / 25% 25% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: aeo-sea 12s ease-in-out infinite;
}
.scn-aeolus-island .island {
  position:absolute; bottom:28%; left:50%; width:140px; height:80px;
  margin-left:-70px;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 50%, #2a4a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.4);
  animation: aeo-island 8s ease-in-out infinite alternate;
}
.scn-aeolus-island .wall {
  position:absolute; bottom:31%; left:50%; width:170px; height:30px;
  margin-left:-85px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: aeo-wall 8s ease-in-out infinite alternate;
}
.scn-aeolus-island .palace {
  position:absolute; bottom:35%; left:50%; width:60px; height:40px;
  margin-left:-30px;
  background: linear-gradient(180deg, #d0b080 0%, #a08050 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: aeo-palace 6s ease-in-out infinite alternate;
}
.scn-aeolus-island .cloud-a {
  position:absolute; top:8%; left:5%; width:100px; height:20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: aeo-drift-a 60s linear infinite;
}
.scn-aeolus-island .cloud-b {
  position:absolute; top:14%; right:10%; width:80px; height:16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(5px);
  animation: aeo-drift-b 75s linear infinite reverse;
}
.scn-aeolus-island .birds {
  position:absolute; top:25%; left:40%; width:20px; height:10px;
  background: transparent;
  border-radius: 50%;
  box-shadow: 0 0 0 3px #2a2a1a, 0 -8px 0 3px #2a2a1a;
  animation: aeo-birds 20s ease-in-out infinite;
}
@keyframes aeo-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes aeo-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-6px) } 100% { transform: translateY(0) } }
@keyframes aeo-island { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-5px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes aeo-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes aeo-palace { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes aeo-drift-a { 0% { transform: translateX(-50px) } 100% { transform: translateX(130vw) } }
@keyframes aeo-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-110vw) } }
@keyframes aeo-birds {
  0% { transform: translateX(0) translateY(0) }
  25% { transform: translateX(20px) translateY(-10px) }
  50% { transform: translateX(50px) translateY(0) }
  75% { transform: translateX(80px) translateY(-5px) }
  100% { transform: translateX(120px) translateY(0) }
}

/* ---- aeolus-entertains-ulysses ---- */
.scn-aeolus-entertains-ulysses {
  background: linear-gradient(180deg, #d0b080 0%, #f0d0a0 30%, #c8a070 60%, #8a6030 100%),
              radial-gradient(ellipse at 70% 30%, #fff0d0 0%, transparent 50%);
}
.scn-aeolus-entertains-ulysses .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #8a6030 0%, #6a4020 100%);
  border-radius: 40% 60% 0 0 / 20% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-aeolus-entertains-ulysses .wall-left {
  position:absolute; bottom:0; left:0; width:30%; height:100%;
  background: linear-gradient(180deg, #b09070 0%, #8a6a40 100%);
  border-right: 2px solid #5a3a1a;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.2);
  animation: aeu-wall-left 12s ease-in-out infinite alternate;
}
.scn-aeolus-entertains-ulysses .wall-right {
  position:absolute; bottom:0; right:0; width:30%; height:100%;
  background: linear-gradient(180deg, #b09070 0%, #8a6a40 100%);
  border-left: 2px solid #5a3a1a;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.2);
  animation: aeu-wall-right 12s ease-in-out infinite alternate-reverse;
}
.scn-aeolus-entertains-ulysses .window {
  position:absolute; top:15%; left:35%; width:30%; height:30%;
  background: linear-gradient(180deg, #a0d0f0 0%, #e0f0ff 100%);
  border: 4px solid #5a3a1a;
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.6);
  animation: aeu-window 20s ease-in-out infinite alternate;
}
.scn-aeolus-entertains-ulysses .table {
  position:absolute; bottom:20%; left:50%; width:120px; height:15px;
  margin-left:-60px;
  background: linear-gradient(180deg, #6a4020 0%, #4a2810 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
}
.scn-aeolus-entertains-ulysses .figure-ulysses {
  position:absolute; bottom:25%; left:35%; width:35px; height:50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aeu-figure-u 4s ease-in-out infinite alternate;
}
.scn-aeolus-entertains-ulysses .figure-aeolus {
  position:absolute; bottom:25%; right:35%; width:35px; height:55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aeu-figure-a 4s ease-in-out infinite alternate-reverse;
}
.scn-aeolus-entertains-ulysses .goblet {
  position:absolute; bottom:26%; left:50%; width:12px; height:20px;
  margin-left:-6px;
  background: radial-gradient(circle at 50% 30%, #d0b080 0%, #8a6030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(200,160,80,0.4);
  animation: aeu-goblet 3s ease-in-out infinite alternate;
}
.scn-aeolus-entertains-ulysses .light-beam {
  position:absolute; top:30%; left:50%; width:60px; height:40%;
  margin-left:-30px;
  background: linear-gradient(180deg, rgba(255,255,240,0.4) 0%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(8px);
  animation: aeu-light 15s ease-in-out infinite alternate;
}
@keyframes aeu-wall-left { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes aeu-wall-right { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes aeu-window { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes aeu-figure-u { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes aeu-figure-a { 0% { transform: rotate(0deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes aeu-goblet { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes aeu-light { 0% { transform: rotate(-5deg); opacity:0.3 } 50% { transform: rotate(5deg); opacity:0.6 } 100% { transform: rotate(-3deg); opacity:0.4 } }

.scn-calypso-island { background: linear-gradient(180deg, #4da6c4 0%, #87CEEB 60%, #f0d58c 100%), radial-gradient(ellipse at 50% 100%, #f0d58c 0%, transparent 70%); }
.scn-calypso-island .ci-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5cb8d4 0%, #a4d8e3 100%); animation: ci-sky 12s ease-in-out infinite alternate; }
.scn-calypso-island .ci-sun { position:absolute; bottom:45%; left:60%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle, #fff8d6 0%, #ffd580 60%, transparent 100%); box-shadow: 0 0 80px 30px rgba(255,213,128,.3); animation: ci-sun 8s ease-in-out infinite alternate; }
.scn-calypso-island .ci-sea { position:absolute; bottom:0; height:40%; left:0; right:0; background: linear-gradient(180deg, #2d7b8a 0%, #1a4f5e 100%); animation: ci-sea 6s ease-in-out infinite alternate; }
.scn-calypso-island .ci-cliff { position:absolute; bottom:25%; left:10%; width:35%; height:45%; background: linear-gradient(180deg, #5c6a4a 0%, #2e3a22 100%); border-radius: 60% 40% 20% 20% / 80% 50% 30% 30%; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-calypso-island .ci-cave { position:absolute; bottom:30%; left:20%; width:12%; height:20%; border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%; background: #1a1a1a; box-shadow: inset 0 0 20px #0a0a0a; }
.scn-calypso-island .ci-vines { position:absolute; top:10%; left:5%; width:40%; height:40%; background: repeating-linear-gradient(45deg, #3a5a2a 0px, #3a5a2a 10px, transparent 10px, transparent 20px); filter: blur(2px); animation: ci-sway 15s ease-in-out infinite alternate; }
.scn-calypso-island .ci-figure { position:absolute; bottom:28%; left:35%; width:14px; height:28px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ci-breathe 4s ease-in-out infinite alternate; }
@keyframes ci-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ci-sun { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 80px 30px rgba(255,213,128,.3) } 50% { transform: translateY(-5px) scale(1.05); box-shadow: 0 0 100px 40px rgba(255,213,128,.4) } 100% { transform: translateY(2px) scale(.95); box-shadow: 0 0 60px 20px rgba(255,213,128,.2) } }
@keyframes ci-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes ci-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes ci-breathe { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.02) } 100% { transform: translateY(1px) scaleY(.98) } }

.scn-alcinous-proposes-gifts { background: linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%); }
.scn-alcinous-proposes-gifts .apg-bg-wall { position:absolute; inset:10% 10% 20% 10%; background: #3a2a1a; border-radius: 4%; box-shadow: inset 0 0 60px rgba(0,0,0,.6); }
.scn-alcinous-proposes-gifts .apg-column-l { position:absolute; left:10%; top:5%; width:8%; height:85%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 0 20px rgba(0,0,0,.5); }
.scn-alcinous-proposes-gifts .apg-column-r { position:absolute; right:10%; top:5%; width:8%; height:85%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 0 20px rgba(0,0,0,.5); }
.scn-alcinous-proposes-gifts .apg-arch { position:absolute; top:5%; left:10%; width:80%; height:25%; background: radial-gradient(ellipse at 50% 100%, transparent 60%, #5a4a3a 61%, #5a4a3a 70%, transparent 71%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-alcinous-proposes-gifts .apg-floor { position:absolute; bottom:10%; left:10%; width:80%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4%; }
.scn-alcinous-proposes-gifts .apg-fire { position:absolute; bottom:20%; left:50%; width:40px; height:40px; transform: translateX(-50%); background: radial-gradient(circle, #ffc080 0%, #ff8040 40%, transparent 70%); box-shadow: 0 0 60px 20px rgba(255,128,64,.4); animation: apg-fire 0.5s ease-in-out infinite alternate; }
.scn-alcinous-proposes-gifts .apg-alcinous { position:absolute; bottom:22%; left:38%; width:20px; height:40px; background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: apg-speak 3s ease-in-out infinite; }
.scn-alcinous-proposes-gifts .apg-listeners { position:absolute; bottom:22%; right:25%; width:80px; height:30px; background: radial-gradient(ellipse at 50% 100%, #0a0a0a 60%, transparent 61%); animation: apg-sway 5s ease-in-out infinite; }
.scn-alcinous-proposes-gifts .apg-glow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, rgba(255,128,64,.15) 0%, transparent 60%); animation: apg-pulse 4s ease-in-out infinite alternate; }
@keyframes apg-fire { 0% { transform: translateX(-50%) scale(1) rotate(0); opacity:.9 } 50% { transform: translateX(-50%) scale(1.1) rotate(2deg); opacity:1 } 100% { transform: translateX(-50%) scale(.95) rotate(-1deg); opacity:.85 } }
@keyframes apg-speak { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes apg-sway { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes apg-pulse { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

.scn-phaeacians-load-ship { background: linear-gradient(180deg, #ffb07c 0%, #ffd580 30%, #ffe0a0 70%, #c8e0e8 100%), radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 60%); }
.scn-phaeacians-load-ship .pls-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #ffb07c 0%, #ffd580 50%, #ffe0a0 100%); animation: pls-sky 15s ease-in-out infinite alternate; }
.scn-phaeacians-load-ship .pls-sun { position:absolute; bottom:35%; left:20%; width:80px; height:80px; border-radius:50%; background: radial-gradient(circle, #fff8d6 0%, #ffd580 60%, transparent 100%); box-shadow: 0 0 100px 40px rgba(255,213,128,.5); animation: pls-rise 20s ease-in-out infinite alternate; }
.scn-phaeacians-load-ship .pls-sea { position:absolute; bottom:0; height:35%; left:0; right:0; background: linear-gradient(180deg, #4a8a9a 0%, #1a4f5e 100%); animation: pls-shimmer 5s ease-in-out infinite alternate; }
.scn-phaeacians-load-ship .pls-ship { position:absolute; bottom:20%; left:30%; width:30%; height:20%; background: #1a1a1a; border-radius: 20% 40% 10% 10% / 100% 100% 20% 20%; box-shadow: 0 4px 20px rgba(0,0,0,.4); animation: pls-bob 6s ease-in-out infinite; }
.scn-phaeacians-load-ship .pls-mast { position:absolute; bottom:32%; left:45%; width:4px; height:25%; background: #1a1a1a; border-radius: 2px; transform-origin: bottom center; animation: pls-sway-mast 6s ease-in-out infinite; }
.scn-phaeacians-load-ship .pls-fig1 { position:absolute; bottom:15%; left:35%; width:12px; height:24px; background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pls-carry 4s ease-in-out infinite; }
.scn-phaeacians-load-ship .pls-fig2 { position:absolute; bottom:15%; left:45%; width:14px; height:26px; background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pls-carry 4.5s ease-in-out infinite -1s; }
.scn-phaeacians-load-ship .pls-fig3 { position:absolute; bottom:15%; left:55%; width:10px; height:22px; background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pls-carry 5s ease-in-out infinite -2s; }
@keyframes pls-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pls-rise { 0% { transform: translateY(10px) scale(1) } 50% { transform: translateY(0) scale(1.05) } 100% { transform: translateY(-5px) scale(.95) } }
@keyframes pls-shimmer { 0% { background-position: 0 0 } 50% { background-position: 10px 5px } 100% { background-position: -5px 0 } }
@keyframes pls-bob { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(2px) rotate(-1deg) } }
@keyframes pls-sway-mast { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes pls-carry { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(10px) rotate(2deg) } 100% { transform: translateX(20px) rotate(-1deg) } }

.scn-farewell-to-phaeacians { background: linear-gradient(180deg, #1a1a3e 0%, #2c2040 40%, #4a3060 70%, #c07040 100%), radial-gradient(ellipse at 50% 100%, #c07040 0%, transparent 70%); }
.scn-farewell-to-phaeacians .ftp-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #1a1a3e 0%, #2c2040 60%, #4a3060 100%); animation: ftp-dusk-sky 12s ease-in-out infinite alternate; }
.scn-farewell-to-phaeacians .ftp-stars { position:absolute; inset:0 0 50% 0; background: radial-gradient(circle, #fff8d6 1px, transparent 1px), radial-gradient(circle, #fff8d6 2px, transparent 2px); background-size: 50px 50px, 100px 100px; background-position: 0 0, 20px 30px; animation: ftp-twinkle 4s ease-in-out infinite alternate; }
.scn-farewell-to-phaeacians .ftp-horizon { position:absolute; bottom:35%; left:0; right:0; height:5px; background: linear-gradient(90deg, transparent 0%, #c07040 20%, #e08050 50%, #c07040 80%, transparent 100%); box-shadow: 0 0 20px 10px rgba(192,112,64,.3); animation: ftp-glow 6s ease-in-out infinite alternate; }
.scn-farewell-to-phaeacians .ftp-sea { position:absolute; bottom:0; height:35%; left:0; right:0; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); animation: ftp-wave 8s ease-in-out infinite alternate; }
.scn-farewell-to-phaeacians .ftp-ship { position:absolute; bottom:30%; left:65%; width:20%; height:10%; background: #0a0a0a; border-radius: 10% 30% 10% 10% / 80% 80% 20% 20%; animation: ftp-drift 20s linear infinite; }
.scn-farewell-to-phaeacians .ftp-figure { position:absolute; bottom:30%; left:35%; width:18px; height:36px; background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ftp-raise-arm 5s ease-in-out infinite; }
.scn-farewell-to-phaeacians .ftp-cup { position:absolute; bottom:48%; left:36%; width:8px; height:12px; background: #c07040; border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 4px rgba(192,112,64,.6); animation: ftp-raise-cup 5s ease-in-out infinite; }
@keyframes ftp-dusk-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ftp-twinkle { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ftp-glow { 0% { transform: scaleX(1); opacity:.6 } 50% { transform: scaleX(1.1); opacity:1 } 100% { transform: scaleX(.95); opacity:.8 } }
@keyframes ftp-wave { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(3px) } }
@keyframes ftp-raise-arm { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-5px) rotate(-5deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes ftp-raise-cup { 0% { transform: translateY(0) rotate(0); opacity:.8 } 50% { transform: translateY(-8px) rotate(-5deg); opacity:1 } 100% { transform: translateY(0) rotate(2deg); opacity:.9 } }

.scn-eumaeus-tells-of-laertes {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a0f0a 50%, #2a1f1a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-eumaeus-tells-of-laertes .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1010 0%, #0d0808 100%);
  box-shadow: inset 0 0 60px #00000055;
  animation: elt-bg 12s ease-in-out infinite alternate;
}
.scn-eumaeus-tells-of-laertes .fire {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #cc5020 40%, #802010 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: elt-fire 0.8s ease-in-out infinite alternate;
}
.scn-eumaeus-tells-of-laertes .glow {
  position: absolute; bottom: 30%; left: 50%; width: 180px; height: 180px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ff804080 0%, transparent 70%);
  animation: elt-glow 3s ease-in-out infinite alternate;
}
.scn-eumaeus-tells-of-laertes .figure {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 50px;
  background: #1a0f0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: elt-figure 4s ease-in-out infinite alternate;
}
.scn-eumaeus-tells-of-laertes .chair {
  position: absolute; bottom: 18%; left: 28%; width: 50px; height: 60px;
  background: #2a1a10;
  border-radius: 10%;
  box-shadow: inset 0 -10px 20px #00000080;
  animation: elt-chair 6s ease-in-out infinite;
}
.scn-eumaeus-tells-of-laertes .window {
  position: absolute; top: 10%; right: 10%; width: 40px; height: 50px;
  background: #102040;
  border: 4px solid #4a3020;
  border-radius: 4px;
  box-shadow: inset 0 0 10px #2040a0;
  animation: elt-window 8s ease-in-out infinite alternate;
}
.scn-eumaeus-tells-of-laertes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a0f0a 0%, #0a0500 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  animation: elt-floor 10s ease-in-out infinite;
}
@keyframes elt-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes elt-fire { 0% { opacity: 0.8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.1) } 100% { opacity: 0.9; transform: scaleY(0.95) } }
@keyframes elt-glow { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 0.8; transform: scale(1.05) } 100% { opacity: 0.6; transform: scale(0.98) } }
@keyframes elt-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes elt-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes elt-window { 0% { background: #102040; box-shadow: inset 0 0 10px #2040a0 } 50% { background: #0a1830; box-shadow: inset 0 0 20px #3060c0 } 100% { background: #102040 } }
@keyframes elt-floor { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.8 } }

.scn-ulysses-asks-eumaeus-story {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0f0a 100%),
              radial-gradient(ellipse at 50% 70%, #5a3a2a 0%, transparent 60%);
}
.scn-ulysses-asks-eumaeus-story .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1510 0%, #0d0a05 100%);
  box-shadow: inset 0 0 40px #00000033;
  animation: uaes-bg 14s ease-in-out infinite alternate;
}
.scn-ulysses-asks-eumaeus-story .fire {
  position: absolute; bottom: 28%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #cc5020 40%, #802010 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: uaes-fire 1.2s ease-in-out infinite alternate;
}
.scn-ulysses-asks-eumaeus-story .glow {
  position: absolute; bottom: 32%; left: 50%; width: 200px; height: 200px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ff804060 0%, transparent 70%);
  animation: uaes-glow 4s ease-in-out infinite alternate;
}
.scn-ulysses-asks-eumaeus-story .fig1 {
  position: absolute; bottom: 22%; left: 30%; width: 35px; height: 45px;
  background: #1a100a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uaes-fig1 7s ease-in-out infinite alternate;
}
.scn-ulysses-asks-eumaeus-story .fig2 {
  position: absolute; bottom: 22%; right: 30%; width: 35px; height: 45px;
  background: #1a100a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uaes-fig2 8s ease-in-out infinite alternate;
}
.scn-ulysses-asks-eumaeus-story .table {
  position: absolute; bottom: 27%; left: 50%; width: 30px; height: 10px;
  transform: translateX(-50%);
  background: #2a1a10;
  border-radius: 4px;
  animation: uaes-table 10s ease-in-out infinite;
}
.scn-ulysses-asks-eumaeus-story .cup {
  position: absolute; bottom: 32%; left: 48%; width: 8px; height: 12px;
  background: radial-gradient(ellipse at 50% 100%, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: uaes-cup 9s ease-in-out infinite;
}
.scn-ulysses-asks-eumaeus-story .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #1a0f0a 0%, #0a0500 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  animation: uaes-floor 12s ease-in-out infinite;
}
@keyframes uaes-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes uaes-fire { 0% { opacity: 0.85; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.08) } 100% { opacity: 0.9; transform: scaleY(0.96) } }
@keyframes uaes-glow { 0% { opacity: 0.4; transform: scale(1) } 50% { opacity: 0.7; transform: scale(1.03) } 100% { opacity: 0.5; transform: scale(0.98) } }
@keyframes uaes-fig1 { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes uaes-fig2 { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes uaes-table { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes uaes-cup { 0% { transform: rotate(0) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }
@keyframes uaes-floor { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }

.scn-eumaeus-tells-his-story {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0f0a 100%),
              radial-gradient(ellipse at 50% 75%, #4a3020 0%, transparent 60%);
}
.scn-eumaeus-tells-his-story .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1510 0%, #0d0a05 100%);
  box-shadow: inset 0 0 50px #00000044;
  animation: ets-bg 15s ease-in-out infinite alternate;
}
.scn-eumaeus-tells-his-story .fire {
  position: absolute; bottom: 26%; left: 50%; width: 55px; height: 75px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #cc5020 40%, #802010 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: ets-fire 1s ease-in-out infinite alternate;
}
.scn-eumaeus-tells-his-story .glow {
  position: absolute; bottom: 30%; left: 50%; width: 190px; height: 190px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ff804070 0%, transparent 70%);
  animation: ets-glow 3.5s ease-in-out infinite alternate;
}
.scn-eumaeus-tells-his-story .figure {
  position: absolute; bottom: 21%; left: 35%; width: 38px; height: 48px;
  background: #1a100a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ets-figure 6s ease-in-out infinite alternate;
}
.scn-eumaeus-tells-his-story .staff {
  position: absolute; bottom: 24%; left: 40%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: ets-staff 5s ease-in-out infinite alternate;
}
.scn-eumaeus-tells-his-story .sheep {
  position: absolute; bottom: 20%; left: 48%; width: 14px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ets-sheep 7s ease-in-out infinite;
}
.scn-eumaeus-tells-his-story .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a0f0a 0%, #0a0500 100%);
  border-radius: 25% 25% 0 0 / 45% 45% 0 0;
  animation: ets-floor 11s ease-in-out infinite;
}
@keyframes ets-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ets-fire { 0% { opacity: 0.8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.12) } 100% { opacity: 0.9; transform: scaleY(0.94) } }
@keyframes ets-glow { 0% { opacity: 0.45; transform: scale(1) } 50% { opacity: 0.75; transform: scale(1.04) } 100% { opacity: 0.55; transform: scale(0.97) } }
@keyframes ets-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(2deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ets-staff { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }
@keyframes ets-sheep { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ets-floor { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }

.scn-eumaeus-story-continues {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0f0a 100%),
              radial-gradient(ellipse at 50% 70%, #4a3020 0%, transparent 60%);
}
.scn-eumaeus-story-continues .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1510 0%, #0d0a05 100%);
  box-shadow: inset 0 0 40px #00000033;
  animation: esc-bg 16s ease-in-out infinite alternate;
}
.scn-eumaeus-story-continues .fire {
  position: absolute; bottom: 27%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #cc5020 40%, #802010 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: esc-fire 1.1s ease-in-out infinite alternate;
}
.scn-eumaeus-story-continues .glow {
  position: absolute; bottom: 31%; left: 50%; width: 200px; height: 200px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ff804060 0%, transparent 70%);
  animation: esc-glow 4s ease-in-out infinite alternate;
}
.scn-eumaeus-story-continues .story-vision {
  position: absolute; top: 15%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #102030 0%, #0a1a2a 100%);
  border-radius: 12px;
  border: 3px solid #2a1a10;
  box-shadow: 0 0 30px #00000044;
  overflow: hidden;
  animation: esc-vision 10s ease-in-out infinite alternate;
}
.scn-eumaeus-story-continues .story-vision::before {
  content: '';
  position: absolute; bottom: 10%; left: 30%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a100a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  animation: esc-ship 5s ease-in-out infinite alternate;
}
.scn-eumaeus-story-continues .story-vision::after {
  content: '';
  position: absolute; bottom: 12%; left: 10%; width: 60px; height: 6px;
  background: linear-gradient(90deg, transparent, #40608080 30%, #40608080 70%, transparent);
  border-radius: 50%;
  animation: esc-wave 8s linear infinite;
}
.scn-eumaeus-story-continues .fig-e {
  position: absolute; bottom: 22%; left: 28%; width: 35px; height: 45px;
  background: #1a100a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: esc-fig 6s ease-in-out infinite alternate;
}
.scn-eumaeus-story-continues .fig-u {
  position: absolute; bottom: 22%; right: 28%; width: 35px; height: 45px;
  background: #1a100a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: esc-fig 6s ease-in-out infinite alternate-reverse;
}
.scn-eumaeus-story-continues .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #1a0f0a 0%, #0a0500 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  animation: esc-floor 12s ease-in-out infinite;
}
@keyframes esc-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes esc-fire { 0% { opacity: 0.85; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.08) } 100% { opacity: 0.9; transform: scaleY(0.96) } }
@keyframes esc-glow { 0% { opacity: 0.4; transform: scale(1) } 50% { opacity: 0.7; transform: scale(1.03) } 100% { opacity: 0.5; transform: scale(0.98) } }
@keyframes esc-vision { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.02) } 100% { opacity: 0.8; transform: scale(0.98) } }
@keyframes esc-ship { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes esc-wave { 0% { transform: translateX(-10px) } 50% { transform: translateX(10px) } 100% { transform: translateX(-10px) } }
@keyframes esc-fig { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes esc-floor { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }

.scn-ulysses-washes-and-is-beautified { background: linear-gradient(180deg, #64b5f6 0%, #90caf9 30%, #fff3e0 70%, #ffcc80 100%), radial-gradient(ellipse at 50% 100%, #ffcc8060 0%, transparent 70%); }
.scn-ulysses-washes-and-is-beautified .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #bbdefb 0%, transparent 100%); animation: uwa-sky 12s ease-in-out infinite alternate; }
.scn-ulysses-washes-and-is-beautified .sun { position: absolute; top: 15%; left: 70%; width: 60px; height: 60px; background: radial-gradient(circle, #fff9c4 0%, #fff176 40%, #ffd54f 100%); border-radius: 50%; box-shadow: 0 0 80px 30px #fff17680; animation: uwa-sun 6s ease-in-out infinite alternate; }
.scn-ulysses-washes-and-is-beautified .river { position: absolute; bottom: 20%; inset: 40% 0 20% 0; background: linear-gradient(180deg, #4dd0e180 0%, #26c6da80 50%, #00acc180 100%); background-size: 200% 100%; animation: uwa-river 4s ease-in-out infinite alternate; }
.scn-ulysses-washes-and-is-beautified .bank { position: absolute; bottom: 20%; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #8d6e63 0%, #5d4037 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; }
.scn-ulysses-washes-and-is-beautified .figure-kneeling { position: absolute; bottom: 20%; left: 40%; width: 30px; height: 60px; background: linear-gradient(180deg, #3e2723 0%, #1b1b1b 100%); border-radius: 40% 60% 50% 50% / 30% 40% 60% 70%; transform-origin: bottom center; animation: uwa-kneel 3s ease-in-out infinite; }
.scn-ulysses-washes-and-is-beautified .oil-glow { position: absolute; bottom: 35%; left: 42%; width: 10px; height: 10px; background: radial-gradient(circle, #fff9c4 0%, #ffd54f 60%, transparent 100%); border-radius: 50%; animation: uwa-oil 4s ease-in-out infinite alternate; }
.scn-ulysses-washes-and-is-beautified .hair-flow { position: absolute; bottom: 55%; left: 38%; width: 40px; height: 60px; background: linear-gradient(180deg, #4e342e 0%, #3e2723 50%, #1b1b1b 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: top center; animation: uwa-hair 2s ease-in-out infinite alternate; }
.scn-ulysses-washes-and-is-beautified .divine-aura { position: absolute; bottom: 15%; left: 35%; width: 80px; height: 100px; background: radial-gradient(circle, #fff17640 0%, #fff9c420 50%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: uwa-aura 3s ease-in-out infinite alternate; }

.scn-nausicaa-admires-ulysses { background: linear-gradient(180deg, #fff8e1 0%, #ffecb3 40%, #ffe082 100%), radial-gradient(ellipse at 50% 20%, #ffffff40 0%, transparent 60%); }
.scn-nausicaa-admires-ulysses .frame-bg { position: absolute; inset: 10% 10%; background: radial-gradient(ellipse at 50% 50%, #ffe082 0%, #ffb30080 100%); border-radius: 20px; }
.scn-nausicaa-admires-ulysses .frame-pillar-l { position: absolute; inset: 0 80% 0 0; background: linear-gradient(90deg, #bcaaa4 0%, #d7ccc8 50%, #a1887f 100%); border-radius: 0 10% 10% 0; box-shadow: 4px 0 12px #00000020; }
.scn-nausicaa-admires-ulysses .frame-pillar-r { position: absolute; inset: 0 0 0 80%; background: linear-gradient(90deg, #a1887f 0%, #d7ccc8 50%, #bcaaa4 100%); border-radius: 10% 0 0 10%; box-shadow: -4px 0 12px #00000020; }
.scn-nausicaa-admires-ulysses .profile-nausicaa { position: absolute; bottom: 20%; right: 25%; width: 50px; height: 70px; background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%); border-radius: 60% 40% 50% 50% / 40% 30% 60% 70%; transform-origin: bottom center; animation: nau-profile 6s ease-in-out infinite alternate; }
.scn-nausicaa-admires-ulysses .hair-drape { position: absolute; bottom: 20%; right: 20%; width: 30px; height: 80px; background: linear-gradient(180deg, #4e342e 0%, #1b1b1b 100%); border-radius: 40% 60% 30% 70% / 20% 20% 60% 60%; animation: nau-hair 8s ease-in-out infinite alternate; }
.scn-nausicaa-admires-ulysses .veil { position: absolute; bottom: 30%; right: 15%; width: 60px; height: 40px; background: linear-gradient(180deg, #ffffff60 0%, #ffffff10 100%); border-radius: 40% 60% 50% 50%; filter: blur(2px); animation: nau-veil 10s ease-in-out infinite alternate; }
.scn-nausicaa-admires-ulysses .sparkle-1 { position: absolute; top: 30%; left: 20%; width: 8px; height: 8px; background: #fff9c4; border-radius: 50%; box-shadow: 0 0 10px 4px #ffd54f; animation: nau-sparkle 3s ease-in-out infinite; }
.scn-nausicaa-admires-ulysses .sparkle-2 { position: absolute; top: 40%; left: 60%; width: 6px; height: 6px; background: #fff9c4; border-radius: 50%; box-shadow: 0 0 8px 3px #ffd54f; animation: nau-sparkle 3s ease-in-out infinite 1s; }
.scn-nausicaa-admires-ulysses .sparkle-3 { position: absolute; top: 25%; left: 45%; width: 10px; height: 10px; background: #fff9c4; border-radius: 50%; box-shadow: 0 0 12px 5px #ffd54f; animation: nau-sparkle 3s ease-in-out infinite 2s; }

.scn-ulysses-eats { background: linear-gradient(180deg, #a1887f 0%, #8d6e63 50%, #5d4037 100%), radial-gradient(ellipse at 50% 0%, #ffffff10 0%, transparent 70%); }
.scn-ulysses-eats .ground-cloth { position: absolute; bottom: 10%; left: 10%; right: 10%; height: 40%; background: linear-gradient(135deg, #f5f5f6 0%, #e0e0e0 50%, #bdbdbd 100%); border-radius: 20px; box-shadow: 0 8px 20px #00000030; animation: eat-cloth 12s ease-in-out infinite alternate; }
.scn-ulysses-eats .plate { position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 80px; height: 20px; background: radial-gradient(ellipse, #f8bbd0 0%, #f48fb1 100%); border-radius: 50%; box-shadow: 0 4px 10px #00000040; }
.scn-ulysses-eats .bread { position: absolute; bottom: 30%; left: 45%; width: 30px; height: 15px; background: linear-gradient(180deg, #ffcc80 0%, #ffb74d 100%); border-radius: 50% 50% 40% 40%; animation: eat-bread 3s ease-in-out infinite; }
.scn-ulysses-eats .goblet { position: absolute; bottom: 20%; left: 60%; width: 20px; height: 30px; background: linear-gradient(180deg, #bcaaa4 0%, #8d6e63 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 -4px 6px #00000020; }
.scn-ulysses-eats .hand-reaching { position: absolute; bottom: 25%; left: 35%; width: 40px; height: 30px; background: linear-gradient(180deg, #d7ccc8 0%, #a1887f 100%); border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%; transform-origin: 100% 100%; animation: eat-hand 4s ease-in-out infinite; }
.scn-ulysses-eats .shadow-cast { position: absolute; bottom: 10%; left: 30%; right: 20%; height: 20%; background: radial-gradient(ellipse at 50% 0%, #1b1b1b60 0%, transparent 100%); border-radius: 50%; animation: eat-shadow 4s ease-in-out infinite; }
.scn-ulysses-eats .folded-linen { position: absolute; bottom: 15%; right: 15%; width: 40px; height: 15px; background: linear-gradient(180deg, #ffffff 0%, #e0e0e0 100%); border-radius: 4px; box-shadow: 0 2px 6px #00000030; transform: rotate(5deg); }

.scn-nausicaa-gives-instructions { background: linear-gradient(180deg, #e0f7fa 0%, #fff9c4 50%, #ffcc80 100%), radial-gradient(ellipse at 50% 0%, #ffffff40 0%, transparent 60%); }
.scn-nausicaa-gives-instructions .horizon-sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #80deea 0%, transparent 100%); animation: ngi-sky 15s ease-in-out infinite alternate; }
.scn-nausicaa-gives-instructions .road-path { position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 40%; height: 30%; background: linear-gradient(180deg, #d7ccc8 0%, #bcaaa4 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); }
.scn-nausicaa-gives-instructions .city-walls { position: absolute; bottom: 35%; left: 10%; right: 10%; height: 20%; background: linear-gradient(180deg, #bcaaa4 0%, #8d6e63 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -10px 30px #00000020; }
.scn-nausicaa-gives-instructions .olive-tree { position: absolute; bottom: 25%; left: 15%; width: 40px; height: 80px; background: linear-gradient(180deg, #4e342e 0%, #2d1b11 100%); border-radius: 20% 20% 30% 30%; transform-origin: bottom center; animation: ngi-tree 8s ease-in-out infinite alternate; }
.scn-nausicaa-gives-instructions .figure-nausicaa { position: absolute; bottom: 20%; left: 40%; width: 40px; height: 80px; background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ngi-nau 5s ease-in-out infinite; }
.scn-nausicaa-gives-instructions .figure-ulysses { position: absolute; bottom: 20%; left: 55%; width: 45px; height: 85px; background: linear-gradient(180deg, #4e342e 0%, #1b1b1b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ngi-ulysses 5s ease-in-out infinite 0.5s; }
.scn-nausicaa-gives-instructions .wind-sweep { position: absolute; top: 20%; left: -10%; width: 120%; height: 20%; background: linear-gradient(90deg, transparent 0%, #ffffff40 50%, transparent 100%); filter: blur(10px); animation: ngi-wind 10s linear infinite; }

@keyframes uwa-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes uwa-sun { 0% { transform: scale(0.95) translateY(0); } 50% { transform: scale(1.05) translateY(-4px); } 100% { transform: scale(0.95) translateY(0); } }
@keyframes uwa-river { 0% { background-position: 0% 50%; opacity: .8; } 50% { background-position: 100% 50%; opacity: 1; } 100% { background-position: 0% 50%; opacity: .8; } }
@keyframes uwa-kneel { 0%, 100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } }
@keyframes uwa-oil { 0% { opacity: .5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: .5; transform: scale(1); } }
@keyframes uwa-hair { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(-6px) rotate(6deg) scaleY(1.1); } 100% { transform: translateX(6px) rotate(-6deg) scaleY(0.9); } }
@keyframes uwa-aura { 0% { opacity: .2; transform: scale(0.9); } 50% { opacity: .6; transform: scale(1.1); } 100% { opacity: .3; transform: scale(0.95); } }

@keyframes nau-profile { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(4deg); } 100% { transform: translateX(3px) rotate(-3deg); } }
@keyframes nau-hair { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes nau-veil { 0% { transform: translateX(0) rotate(-3deg); opacity: .4; } 50% { transform: translateX(8px) rotate(3deg); opacity: .7; } 100% { transform: translateX(-4px) rotate(0deg); opacity: .5; } }
@keyframes nau-sparkle { 0% { transform: translateY(0) scale(0.5); opacity: 0; } 50% { transform: translateY(-20px) scale(1.2); opacity: 1; } 100% { transform: translateY(-40px) scale(0.8); opacity: 0; } }

@keyframes eat-cloth { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes eat-bread { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } }
@keyframes eat-hand { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(12px) translateY(-6px) rotate(15deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes eat-shadow { 0% { opacity: .6; transform: scaleX(1); } 50% { opacity: .3; transform: scaleX(1.2); } 100% { opacity: .6; transform: scaleX(1); } }

@keyframes ngi-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes ngi-tree { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(6deg) scaleY(1.03); } 100% { transform: rotate(-6deg) scaleY(0.97); } }
@keyframes ngi-nau { 0%, 100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-4px) rotate(2deg); } }
@keyframes ngi-ulysses { 0%, 100% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(4px) rotate(-2deg); } }
@keyframes ngi-wind { 0% { transform: translateX(-100%) skewX(-15deg); opacity: 0; } 50% { opacity: 0.8; } 100% { transform: translateX(100%) skewX(15deg); opacity: 0; } }

.scn-theoclymenus-asks-join {
  background: linear-gradient(180deg, #7ec8e3 0%, #f4d03f 50%, #e67e22 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 70%);
}
.scn-theoclymenus-asks-join .th1-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #85c1e9 0%, #f9e79f 80%); }
.scn-theoclymenus-asks-join .th1-sun { position:absolute; top:15%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff5b0 0%, #f9e79f 40%, transparent 70%); border-radius:50%; filter: blur(4px); animation: th1-glint 6s ease-in-out infinite; }
.scn-theoclymenus-asks-join .th1-sea { position:absolute; bottom:10%; left:0; right:0; height:50%; background: linear-gradient(180deg, #2e86c1 0%, #1b4f72 100%); animation: th1-wave 8s ease-in-out infinite alternate; }
.scn-theoclymenus-asks-join .th1-ship { position:absolute; bottom:40%; left:25%; width:120px; height:40px; background: linear-gradient(180deg, #a04000 0%, #6e2c00 100%); border-radius: 0 40% 10% 0 / 0 80% 20% 0; transform: rotate(-5deg); box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-theoclymenus-asks-join .th1-mast { position:absolute; bottom:55%; left:33%; width:6px; height:70px; background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%); transform: rotate(5deg); }
.scn-theoclymenus-asks-join .th1-sail { position:absolute; bottom:55%; left:30%; width:45px; height:60px; background: radial-gradient(ellipse at 30% 50%, #fdfefe 0%, #d5dbdb 100%); border-radius: 50% 20% 50% 20% / 60% 30% 70% 20%; transform: rotate(5deg); opacity:.9; filter: blur(1px); animation: th1-sway 10s ease-in-out infinite; }
.scn-theoclymenus-asks-join .th1-figure-telemachus { position:absolute; bottom:42%; left:30%; width:14px; height:30px; background: linear-gradient(180deg, #f5cba7 0%, #a04000 60%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: th1-bow 4s ease-in-out infinite; }
.scn-theoclymenus-asks-join .th1-figure-theoclymenus { position:absolute; bottom:40%; left:15%; width:16px; height:32px; background: linear-gradient(180deg, #d7bde2 0%, #6c3483 60%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: th1-approach 12s ease-in-out infinite; }
.scn-theoclymenus-asks-join .th1-shore { position:absolute; bottom:5%; left:0; right:0; height:20%; background: linear-gradient(180deg, #f0b27a 0%, #d35400 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; }
@keyframes th1-glint { 0%,100% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } }
@keyframes th1-wave { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes th1-sway { 0%,100% { transform: rotate(3deg) scaleX(0.95); } 50% { transform: rotate(8deg) scaleX(1.05); } }
@keyframes th1-bow { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-1px); } }
@keyframes th1-approach { 0% { transform: translateX(0) rotate(10deg); opacity:.5; } 50% { transform: translateX(30px) rotate(5deg); opacity:1; } 100% { transform: translateX(0) rotate(10deg); opacity:.5; } }

.scn-telemachus-accepts-theoclymenus {
  background: linear-gradient(180deg, #fcf3cf 0%, #f5b041 100%), radial-gradient(circle at 70% 20%, #fff9e6 0%, transparent 60%);
}
.scn-telemachus-accepts-theoclymenus .th2-sky-bg { position:absolute; inset:0 0 30% 0; background: radial-gradient(ellipse at 60% 0%, #fef9e7 0%, #fad7a0 100%); }
.scn-telemachus-accepts-theoclymenus .th2-deck { position:absolute; bottom:20%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #6e2c00 0%, #3e1f00 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-telemachus-accepts-theoclymenus .th2-mast { position:absolute; bottom:40%; left:45%; width:8px; height:80px; background: linear-gradient(180deg, #5d4037 0%, #2c1a0c 100%); border-radius: 2px; }
.scn-telemachus-accepts-theoclymenus .th2-sail { position:absolute; bottom:45%; left:40%; width:60px; height:70px; background: radial-gradient(ellipse at 40% 50%, #ffffff 0%, #eaecee 100%); border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%; filter: blur(2px); animation: th2-billow 7s ease-in-out infinite alternate; }
.scn-telemachus-accepts-theoclymenus .th2-telemachus { position:absolute; bottom:30%; left:42%; width:18px; height:40px; background: linear-gradient(180deg, #fad7a0 0%, #a04000 70%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: th2-handshake 5s ease-in-out infinite; }
.scn-telemachus-accepts-theoclymenus .th2-theoclymenus { position:absolute; bottom:30%; right:35%; width:18px; height:42px; background: linear-gradient(180deg, #d7bde2 0%, #4a235a 70%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: th2-board 5s ease-in-out infinite; }
.scn-telemachus-accepts-theoclymenus .th2-spear { position:absolute; bottom:35%; right:41%; width:60px; height:4px; background: linear-gradient(90deg, #8d6e63 0%, #4e342e 100%); transform: rotate(-30deg); border-radius: 2px; box-shadow: 0 0 5px rgba(255,235,59,.4); animation: th2-spear-glimmer 3s ease-in-out infinite alternate; }
.scn-telemachus-accepts-theoclymenus .th2-light-rays { position:absolute; inset:0; background: repeating-linear-gradient(135deg, transparent 0px, transparent 30px, rgba(255,255,255,.1) 30px, rgba(255,255,255,.1) 32px); mix-blend-mode: overlay; pointer-events: none; animation: th2-godrays 15s linear infinite; }
@keyframes th2-billow { 0% { transform: scaleX(0.9) rotate(-2deg); } 50% { transform: scaleX(1.1) rotate(2deg); } 100% { transform: scaleX(0.95) rotate(0deg); } }
@keyframes th2-handshake { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-5deg) translateY(-2px); } 50% { transform: rotate(5deg) translateY(-1px); } 75% { transform: rotate(-2deg) translateY(0); } }
@keyframes th2-board { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-5px) rotate(5deg); } 50% { transform: translateX(-10px) rotate(-3deg); } 75% { transform: translateX(-5px) rotate(2deg); } }
@keyframes th2-spear-glimmer { 0% { box-shadow: 0 0 5px rgba(255,235,59,.2); } 50% { box-shadow: 0 0 15px rgba(255,235,59,.8), 0 0 25px rgba(255,235,59,.4); } 100% { box-shadow: 0 0 5px rgba(255,235,59,.2); } }
@keyframes th2-godrays { 0% { opacity:.5; } 50% { opacity:1; } 100% { opacity:.5; } }

.scn-voyage-continues {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #e67e22 70%, #f39c12 100%), radial-gradient(ellipse at 50% 100%, #f39c12 0%, transparent 70%);
}
.scn-voyage-continues .vo3-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0d0d2b 0%, #2c2244 40%, #d35400 100%); }
.scn-voyage-continues .vo3-stars-1 { position:absolute; top:5%; left:10%; width:3px; height:3px; background:#fff; border-radius:50%; box-shadow: 15px 40px 0 #fff, 80px 20px 0 #fff, 120px 60px 0 #fff, 200px 15px 0 #fff, 250px 45px 0 #fff, 300px 10px 0 #fff, 180px 80px 0 #fff; animation: vo3-twinkle 4s ease-in-out infinite alternate; }
.scn-voyage-continues .vo3-stars-2 { position:absolute; top:10%; left:30%; width:2px; height:2px; background:#fff; border-radius:50%; box-shadow: 60px 30px 0 #fff, 140px 10px 0 #fff, 220px 50px 0 #fff, 280px 25px 0 #fff, 100px 70px 0 #fff, 320px 40px 0 #fff; animation: vo3-twinkle 6s ease-in-out infinite alternate-reverse; }
.scn-voyage-continues .vo3-sea { position:absolute; bottom:10%; left:0; right:0; height:45%; background: linear-gradient(180deg, #1b4f72 0%, #0a1a2e 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: vo3-swell 10s ease-in-out infinite alternate; }
.scn-voyage-continues .vo3-ship { position:absolute; bottom:35%; left:35%; width:100px; height:25px; background: linear-gradient(180deg, #2c1a0c 0%, #110a04 100%); border-radius: 0 20% 10% 0 / 0 80% 20% 0; transform: rotate(-3deg); box-shadow: 0 2px 10px rgba(0,0,0,.8); }
.scn-voyage-continues .vo3-sail { position:absolute; bottom:45%; left:40%; width:35px; height:50px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 20% 50% 20% / 60% 30% 70% 20%; transform: rotate(5deg); animation: vo3-tack 12s ease-in-out infinite; }
.scn-voyage-continues .vo3-wake { position:absolute; bottom:30%; left:65%; width:80px; height:10px; background: linear-gradient(90deg, rgba(255,255,255,.6) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: vo3-trail 6s ease-out infinite; }
.scn-voyage-continues .vo3-islands { position:absolute; bottom:50%; left:70%; width:40px; height:20px; background: linear-gradient(180deg, #5d6d7e 0%, #2c3e50 100%); border-radius: 50% 50% 0 0; filter: blur(5px); opacity:.6; animation: vo3-drift 30s linear infinite; }
@keyframes vo3-twinkle { 0% { opacity:.3; } 50% { opacity:1; } 100% { opacity:.2; } }
@keyframes vo3-swell { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(3px); } }
@keyframes vo3-tack { 0%,100% { transform: rotate(3deg) scaleX(0.9); } 50% { transform: rotate(-5deg) scaleX(1.1); } }
@keyframes vo3-trail { 0% { opacity:1; width:80px; } 100% { opacity:0; width:150px; transform: translateX(20px); } }
@keyframes vo3-drift { 0% { transform: translateX(0); opacity:.4; } 50% { transform: translateX(-20px); opacity:.7; } 100% { transform: translateX(10px); opacity:.4; } }

.scn-eumaeus-advises-stay {
  background: linear-gradient(180deg, #2c1a0c 0%, #51381a 30%, #8b4513 70%, #2c1a0c 100%), radial-gradient(ellipse at 50% 80%, #d35400 0%, transparent 70%);
}
.scn-eumaeus-advises-stay .eu4-wall { position:absolute; inset:0; background: linear-gradient(135deg, #3e2723 0%, #1a0e0a 100%); box-shadow: inset 0 0 100px rgba(0,0,0,.8); }
.scn-eumaeus-advises-stay .eu4-fire { position:absolute; bottom:25%; left:50%; width:60px; height:40px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ffd54f 0%, #ff8f00 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,143,0,.4); animation: eu4-burn 0.8s ease-in-out infinite alternate; }
.scn-eumaeus-advises-stay .eu4-eumaeus { position:absolute; bottom:20%; left:35%; width:28px; height:50px; background: linear-gradient(180deg, #8d6e63 0%, #4e342e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eu4-gesture 5s ease-in-out infinite; box-shadow: 0 0 20px rgba(255,143,0,.2); }
.scn-eumaeus-advises-stay .eu4-odysseus { position:absolute; bottom:20%; right:30%; width:26px; height:48px; background: linear-gradient(180deg, #2c1a0c 0%, #110a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,.8); animation: eu4-listen 7s ease-in-out infinite; }
.scn-eumaeus-advises-stay .eu4-smoke-1 { position:absolute; bottom:45%; left:48%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 100%, rgba(200,150,100,.4) 0%, transparent 70%); filter: blur(8px); border-radius: 50%; animation: eu4-smoke-rise 6s ease-out infinite; }
.scn-eumaeus-advises-stay .eu4-smoke-2 { position:absolute; bottom:50%; left:52%; width:30px; height:50px; background: radial-gradient(ellipse at 50% 100%, rgba(200,150,100,.3) 0%, transparent 70%); filter: blur(6px); border-radius: 50%; animation: eu4-smoke-rise 8s ease-out infinite 2s; }
.scn-eumaeus-advises-stay .eu4-shadow { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,.6) 0%, transparent 50%, rgba(0,0,0,.4) 100%); pointer-events: none; animation: eu4-flicker 0.8s ease-in-out infinite alternate; }
@keyframes eu4-burn { 0% { transform: translateX(-50%) scale(1) rotate(-2deg); box-shadow: 0 0 50px 15px rgba(255,143,0,.4); } 50% { transform: translateX(-50%) scale(1.05) rotate(2deg); box-shadow: 0 0 80px 30px rgba(255,143,0,.6); } 100% { transform: translateX(-50%) scale(0.95) rotate(-1deg); box-shadow: 0 0 60px 20px rgba(255,143,0,.3); } }
@keyframes eu4-gesture { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-10deg) translateY(-2px); } 50% { transform: rotate(15deg) translateY(-1px); } 75% { transform: rotate(-5deg) translateY(0); } }
@keyframes eu4-listen { 0%,100% { transform: rotate(2deg); } 50% { transform: rotate(-3deg); } }
@keyframes eu4-smoke-rise { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(-30px) scale(1.5); opacity:.3; } 100% { transform: translateY(-60px) scale(2); opacity:0; } }
@keyframes eu4-flicker { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }

.scn-suitors-set-ambush {
  background: linear-gradient(180deg, #2a1a3a 0%, #4a2a1a 50%, #6a3a1a 100%), radial-gradient(ellipse at 50% 80%, #c85a3d 0%, transparent 60%);
}
.scn-suitors-set-ambush .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a2a4a 0%, #8a5a3a 60%, transparent 100%);
  animation: sa-sky 12s ease-in-out infinite alternate;
}
.scn-suitors-set-ambush .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: sa-water 4s ease-in-out infinite alternate;
}
.scn-suitors-set-ambush .ship-hull {
  position: absolute; bottom: 30%; left: 30%; width: 32%; height: 14%;
  background: linear-gradient(90deg, #2a1a1a 0%, #3a2a1a 50%, #2a1a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: sa-hull 3s ease-in-out infinite alternate;
}
.scn-suitors-set-ambush .mast {
  position: absolute; bottom: 44%; left: 50%; width: 4px; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  transform: translateX(-50%);
  animation: sa-mast 3s ease-in-out infinite alternate;
}
.scn-suitors-set-ambush .sail {
  position: absolute; bottom: 48%; left: 46%; width: 18%; height: 28%;
  background: linear-gradient(180deg, rgba(240,230,210,0.8) 0%, rgba(200,180,160,0.6) 100%);
  border-radius: 10% 80% 10% 80% / 20% 80% 20% 80%;
  transform-origin: bottom left;
  animation: sa-sail 2.5s ease-in-out infinite alternate;
}
.scn-suitors-set-ambush .oar {
  position: absolute; bottom: 30%; width: 2%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 80% 80% / 10% 10% 40% 40%;
  transform-origin: bottom center;
  animation: sa-oar 1.5s ease-in-out infinite;
}
.scn-suitors-set-ambush .oar-left {
  left: 25%;
  animation-delay: 0s;
}
.scn-suitors-set-ambush .oar-right {
  left: 68%;
  animation-delay: 0.75s;
}
.scn-suitors-set-ambush .figure {
  position: absolute; bottom: 26%; width: 5%; height: 12%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-figure 2s ease-in-out infinite alternate;
}
.scn-suitors-set-ambush .figure-1 { left: 35%; }
.scn-suitors-set-ambush .figure-2 { left: 55%; animation-delay: 1s; }

@keyframes sa-sky {
  0% { opacity:0.7; filter:brightness(1.1); }
  50% { opacity:0.85; filter:brightness(1); }
  100% { opacity:0.9; filter:brightness(0.9); }
}
@keyframes sa-water {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(2px) scaleY(0.98); }
}
@keyframes sa-hull {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(2px); }
  100% { transform: rotate(-1deg) translateX(-2px); }
}
@keyframes sa-mast {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes sa-sail {
  0% { transform: scaleX(1) scaleY(1) rotate(0deg); }
  50% { transform: scaleX(1.05) scaleY(1.08) rotate(-2deg); }
  100% { transform: scaleX(0.95) scaleY(0.92) rotate(2deg); }
}
@keyframes sa-oar {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-4px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes sa-figure {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}

/* Calypso’s Cave */
.scn-calypso\’s-cave {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 70%, #c86a3a 0%, transparent 60%);
}
.scn-calypso\’s-cave .cave-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #2a1a0a 0%, #1a0a0a 50%, #2a1a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  animation: cc-wall 20s ease-in-out infinite alternate;
}
.scn-calypso\’s-cave .cave-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-calypso\’s-cave .cave-glow {
  position: absolute; inset: 40% 20% 20% 20%;
  background: radial-gradient(ellipse at 50% 60%, rgba(200,120,60,0.3) 0%, transparent 70%);
  animation: cc-glow 4s ease-in-out infinite alternate;
}
.scn-calypso\’s-cave .fire {
  position: absolute; bottom: 18%; left: 45%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #d08030 0%, #a04010 60%, #5a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(200,100,30,0.5);
  animation: cc-fire 5s ease-in-out infinite alternate;
}
.scn-calypso\’s-cave .loom {
  position: absolute; bottom: 22%; left: 30%; width: 25%; height: 40%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 6px, #4a3a2a 6px, #4a3a2a 8px);
  border: 2px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
  animation: cc-loom 8s ease-in-out infinite alternate;
}
.scn-calypso\’s-cave .shuttle {
  position: absolute; bottom: 35%; left: 30%; width: 12px; height: 6px;
  background: linear-gradient(90deg, #c8a040 0%, #e8c860 50%, #c8a040 100%);
  border-radius: 40% 40% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(200,160,64,0.6);
  animation: cc-shuttle 6s ease-in-out infinite;
}
.scn-calypso\’s-cave .smoke {
  position: absolute; bottom: 70%; left: 50%; width: 8%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,0.2) 0%, transparent 70%);
  filter: blur(6px);
  animation: cc-smoke 15s linear infinite;
}
.scn-calypso\’s-cave .figure {
  position: absolute; bottom: 22%; left: 38%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc-figure 8s ease-in-out infinite alternate;
}

@keyframes cc-wall {
  0%,100% { opacity:0.9; }
  50% { opacity:1; }
}
@keyframes cc-glow {
  0% { opacity:0.5; transform: scale(0.95); }
  50% { opacity:0.8; transform: scale(1.05); }
  100% { opacity:0.6; transform: scale(1); }
}
@keyframes cc-fire {
  0% { transform: scaleY(1) scaleX(1); filter:brightness(1); }
  50% { transform: scaleY(1.08) scaleX(0.92); filter:brightness(1.1); }
  100% { transform: scaleY(0.92) scaleX(1.05); filter:brightness(0.9); }
}
@keyframes cc-loom {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes cc-shuttle {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(60px) rotate(10deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-60px) rotate(-10deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cc-smoke {
  0% { transform: translateY(0) translateX(0) scale(1); opacity:0.3; }
  25% { transform: translateY(-40px) translateX(20px) scale(1.5); opacity:0.5; }
  50% { transform: translateY(-80px) translateX(-10px) scale(2); opacity:0.2; }
  75% { transform: translateY(-120px) translateX(30px) scale(2.5); opacity:0.1; }
  100% { transform: translateY(-160px) translateX(0) scale(3); opacity:0; }
}
@keyframes cc-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

.scn-ulysses-taunts-cyclops { 
  background: linear-gradient(180deg, #4a90e2 0%, #87CEEB 40%, #FFF8DC 100%), radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 50%); 
}
.scn-ulysses-taunts-cyclops .sky { 
  position: absolute; inset: 0 0 30% 0; 
  background: linear-gradient(180deg, rgba(255,255,200,.2) 0%, transparent 100%); 
  animation: utc-sky-drift 15s linear infinite; 
}
.scn-ulysses-taunts-cyclops .cliff { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 65%; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); 
  border-radius: 40% 60% 0 0 / 50% 70% 0 0; 
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6); 
  animation: utc-tremor 2s ease-in-out infinite; 
}
.scn-ulysses-taunts-cyclops .cave { 
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%); 
  width: 160px; height: 200px; 
  background: #0a0500; 
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; 
  box-shadow: inset 0 0 40px #000; 
}
.scn-ulysses-taunts-cyclops .cyclops { 
  position: absolute; bottom: 42%; left: 50%; transform: translateX(-50%); 
  width: 80px; height: 130px; 
  background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; 
  animation: utc-cyclops-sway 4s ease-in-out infinite; 
}
.scn-ulysses-taunts-cyclops .eye { 
  position: absolute; bottom: 68%; left: 50%; transform: translateX(-50%); 
  width: 12px; height: 10px; 
  background: #d4a76a; 
  border-radius: 50%; 
  box-shadow: 0 0 8px #d4a76a; 
  animation: utc-eye-pulse 2s ease-in-out infinite; 
}
.scn-ulysses-taunts-cyclops .rock { 
  position: absolute; bottom: 10%; right: 15%; 
  width: 90px; height: 35px; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); 
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; 
  box-shadow: 0 4px 8px rgba(0,0,0,.5); 
}
.scn-ulysses-taunts-cyclops .ulysses { 
  position: absolute; bottom: 18%; right: 18%; 
  width: 22px; height: 45px; 
  background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%); 
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
}
.scn-ulysses-taunts-cyclops .ulysses::after { 
  content: ''; 
  position: absolute; top: -5%; left: 80%; 
  width: 4px; height: 20px; 
  background: #1a1008; 
  border-radius: 2px; 
  transform-origin: bottom left; 
  transform: rotate(-20deg); 
  animation: utc-wave-arm 1.5s ease-in-out infinite; 
}
.scn-ulysses-taunts-cyclops .sunlight { 
  position: absolute; top: 0; left: 50%; transform: translateX(-50%); 
  width: 60px; height: 100%; 
  background: linear-gradient(180deg, rgba(255,255,200,.25) 0%, transparent 60%); 
  animation: utc-sunbeam-pulse 3s ease-in-out infinite; 
}
@keyframes utc-sky-drift { 
  0% { background-position: 0 0; } 
  100% { background-position: 5% 0; } 
}
@keyframes utc-tremor { 
  0% { transform: translateY(0); } 
  50% { transform: translateY(1px); } 
  100% { transform: translateY(0); } 
}
@keyframes utc-cyclops-sway { 
  0% { transform: translateX(-50%) rotate(0deg); } 
  33% { transform: translateX(-50%) rotate(2deg); } 
  66% { transform: translateX(-50%) rotate(-1deg); } 
  100% { transform: translateX(-50%) rotate(0deg); } 
}
@keyframes utc-eye-pulse { 
  0% { opacity: 0.6; box-shadow: 0 0 4px #d4a76a; } 
  50% { opacity: 1; box-shadow: 0 0 16px #d4a76a; } 
  100% { opacity: 0.6; box-shadow: 0 0 4px #d4a76a; } 
}
@keyframes utc-wave-arm { 
  0% { transform: rotate(-20deg); } 
  50% { transform: rotate(40deg); } 
  100% { transform: rotate(-20deg); } 
}
@keyframes utc-sunbeam-pulse { 
  0% { opacity: 0.1; } 
  50% { opacity: 0.7; } 
  100% { opacity: 0.1; } 
}

.scn-calypso’s-cave {
  background: linear-gradient(180deg, #2a1f18 0%, #3d2c1e 50%, #1a1210 100%),
              radial-gradient(ellipse at 50% 60%, #4a3520 0%, transparent 70%);
}
.scn-calypso’s-cave .cave-wall {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #3d2c1e 30%, #1a1210 80%);
  animation: cc-cave-pulse 12s ease-in-out infinite alternate;
}
.scn-calypso’s-cave .hearth {
  position: absolute; bottom: 15%; left: 50%; width: 80px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 60% 50% at 50% 60%, #ffa030 0%, #d04020 50%, #6a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(255,160,48,.3);
  animation: cc-fire 2s ease-in-out infinite alternate;
}
.scn-calypso’s-cave .fire-glow {
  position: absolute; bottom: 10%; left: 50%; width: 180px; height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #ffa030 0%, transparent 100%);
  border-radius: 50%;
  opacity: 0.4;
  animation: cc-fireglow 3s ease-in-out infinite alternate;
}
.scn-calypso’s-cave .loom-frame {
  position: absolute; bottom: 20%; left: 35%; width: 8px; height: 80px;
  background: linear-gradient(90deg, #4a3020, #2a1a10, #4a3020);
  border-radius: 2px;
  box-shadow: 6px 0 0 #2a1a10, -6px 0 0 #2a1a10;
}
.scn-calypso’s-cave .loom-frame::after {
  content: '';
  position: absolute; top: 20%; left: -16px; width: 32px; height: 4px;
  background: #4a3020;
  border-radius: 2px;
  box-shadow: 0 30px 0 #4a3020, 0 60px 0 #4a3020;
}
.scn-calypso’s-cave .shuttle {
  position: absolute; bottom: 35%; left: 25%; width: 12px; height: 4px;
  background: #c08040;
  border-radius: 30% 10% 10% 30%;
  animation: cc-shuttle 4s ease-in-out infinite;
}
.scn-calypso’s-cave .figure {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%) scaleX(0.9);
  background: linear-gradient(135deg, #2a1a10 60%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: cc-figure 6s ease-in-out infinite;
}
.scn-calypso’s-cave .smoke {
  position: absolute; bottom: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(180,140,100,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
}
.scn-calypso’s-cave .smoke-1 {
  left: 45%;
  animation: cc-smoke-1 8s linear infinite;
  animation-delay: -2s;
}
.scn-calypso’s-cave .smoke-2 {
  left: 55%;
  animation: cc-smoke-2 10s linear infinite;
  animation-delay: -5s;
}

@keyframes cc-cave-pulse {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes cc-fire {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); box-shadow: 0 0 40px 20px rgba(255,160,48,.3); }
  50% { transform: translateX(-50%) scale(1.05, 0.95) rotate(-2deg); box-shadow: 0 0 50px 25px rgba(255,160,48,.4); }
  100% { transform: translateX(-50%) scale(0.95, 1.05) rotate(2deg); box-shadow: 0 0 35px 18px rgba(255,160,48,.25); }
}
@keyframes cc-fireglow {
  0% { opacity: 0.3; transform: translateX(-50%) scaleX(1); }
  50% { opacity: 0.5; transform: translateX(-50%) scaleX(1.1) scaleY(1.05); }
  100% { opacity: 0.35; transform: translateX(-50%) scaleX(0.95); }
}
@keyframes cc-shuttle {
  0% { left: 25%; transform: rotate(-10deg); }
  25% { left: 50%; transform: rotate(0deg); }
  50% { left: 75%; transform: rotate(10deg); }
  75% { left: 50%; transform: rotate(0deg); }
  100% { left: 25%; transform: rotate(-10deg); }
}
@keyframes cc-figure {
  0% { transform: translateX(-50%) scaleX(0.9) rotate(0deg); }
  25% { transform: translateX(-50%) scaleX(0.9) rotate(2deg); }
  50% { transform: translateX(-50%) scaleX(0.9) rotate(-1deg); }
  75% { transform: translateX(-50%) scaleX(0.9) rotate(1deg); }
  100% { transform: translateX(-50%) scaleX(0.9) rotate(0deg); }
}
@keyframes cc-smoke-1 {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-60px) translateX(20px) scale(2); opacity: 0.1; }
  100% { transform: translateY(-120px) translateX(-10px) scale(3); opacity: 0; }
}
@keyframes cc-smoke-2 {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.25; }
  50% { transform: translateY(-50px) translateX(-15px) scale(1.8); opacity: 0.08; }
  100% { transform: translateY(-100px) translateX(10px) scale(2.5); opacity: 0; }
}

.scn-ulysses-taunts-cyclops {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 60%, #0d0a08 100%),
              radial-gradient(ellipse at 70% 30%, #c8a85a 0%, transparent 60%);
}
.scn-ulysses-taunts-cyclops .cave-arch {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: #1a1210;
  border-radius: 0 0 50% 50% / 0 0 40% 40%;
  z-index: 0;
}
.scn-ulysses-taunts-cyclops .sunbeam {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  clip-path: polygon(20% 0%, 80% 0%, 90% 100%, 10% 100%);
  background: linear-gradient(135deg, #ffd166 0%, #f0a030 40%, transparent 70%);
  opacity: 0.6;
  transform-origin: top left;
  animation: ulc-beam 2s ease-in-out infinite alternate;
  z-index: 1;
}
.scn-ulysses-taunts-cyclops .cyclops-head {
  position: absolute;
  top: 15%;
  left: 30%;
  width: 40%;
  height: 30%;
  background: radial-gradient(circle at 50% 40%, #b0a090 6px, transparent 6px), #1a1510;
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  animation: ulc-breath 4s ease-in-out infinite;
  z-index: 2;
}
.scn-ulysses-taunts-cyclops .cyclops-body {
  position: absolute;
  top: 35%;
  left: 25%;
  width: 50%;
  height: 60%;
  background: #1a1510;
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  animation: ulc-sway 5s ease-in-out infinite;
  z-index: 1;
}
.scn-ulysses-taunts-cyclops .ulysses {
  position: absolute;
  bottom: 30%;
  left: 60%;
  width: 12px;
  height: 30px;
  background: #3a2a1a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ulc-gesture 3s ease-in-out infinite;
  z-index: 3;
}
.scn-ulysses-taunts-cyclops .dust {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background: none;
  box-shadow:
    10px 20px 2px 2px rgba(255, 230, 180, 0.4),
    50px 80px 3px 3px rgba(255, 230, 180, 0.3),
    100px 150px 1px 1px rgba(255, 230, 180, 0.5),
    200px 120px 4px 4px rgba(255, 230, 180, 0.2),
    300px 50px 2px 2px rgba(255, 230, 180, 0.3);
  animation: ulc-float 8s ease-in-out infinite;
  z-index: 4;
}
.scn-ulysses-taunts-cyclops .vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 30%, transparent 40%, #0a0806 100%);
  pointer-events: none;
  animation: ulc-vignette 6s ease-in-out infinite alternate;
  z-index: 5;
}

@keyframes ulc-breath {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.03) translateY(-3px); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes ulc-sway {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ulc-gesture {
  0% { transform: translate(0,0) rotate(0); }
  25% { transform: translate(3px, -2px) rotate(10deg); }
  75% { transform: translate(-2px, 0) rotate(-5deg); }
  100% { transform: translate(0,0) rotate(0); }
}
@keyframes ulc-float {
  0% { transform: translateY(0) scale(1); opacity: 0.2; }
  50% { transform: translateY(-20px) scale(1.2); opacity: 0.5; }
  100% { transform: translateY(0) scale(1); opacity: 0.2; }
}
@keyframes ulc-beam {
  0% { opacity: 0.6; transform: rotate(-10deg) scaleX(1); }
  50% { opacity: 1; transform: rotate(-10deg) scaleX(1.02); }
  100% { opacity: 0.6; transform: rotate(-10deg) scaleX(1); }
}
@keyframes ulc-vignette {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.broken { position: absolute; pointer-events: none; }
.calm { position: absolute; pointer-events: none; }
.cloud-cfu { position: absolute; pointer-events: none; }
.cloud-jpv { position: absolute; pointer-events: none; }
.col { position: absolute; pointer-events: none; }
.pig { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.seated { position: absolute; pointer-events: none; }
.skewer { position: absolute; pointer-events: none; }
.son { position: absolute; pointer-events: none; }
.wave-dt { position: absolute; pointer-events: none; }
.wave-uec { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-telemachus-asks {
  background: linear-gradient(to bottom, #e5d9c5 0%, #c9b99a 40%, #a48e6f 100%),
              radial-gradient(ellipse at 30% 80%, #f0e6d0 0%, transparent 60%);
}
.scn-telemachus-asks .wall { position:absolute; inset:0; background: linear-gradient(135deg, #d4c4a8 0%, #b8a78a 100%); }
.scn-telemachus-asks .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(to top, #6b5a42 0%, #8c7856 100%); }
.scn-telemachus-asks .window-frame { position:absolute; top:8%; left:20%; width:40%; height:50%; background: linear-gradient(135deg, #f0e6d0 0%, #e0d0b0 100%); border:6px solid #5a4a3a; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,200,100,0.3); }
.scn-telemachus-asks .light-shaft { position:absolute; top:10%; left:25%; width:30%; height:80%; background: linear-gradient(to bottom, rgba(255,220,150,0.15) 0%, transparent 100%); transform: skewX(-8deg); animation: ta-shaft 6s ease-in-out infinite alternate; }
.scn-telemachus-asks .shadow-figure { position:absolute; bottom:20%; left:30%; width:40px; height:70px; background: linear-gradient(to bottom, #2a221a 0%, #1a1410 100%); border-radius: 40% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ta-figure 4s ease-in-out infinite alternate; filter: drop-shadow(-6px -2px 3px rgba(0,0,0,0.2)); }
.scn-telemachus-asks .chair { position:absolute; bottom:18%; left:55%; width:50px; height:45px; background: linear-gradient(to bottom, #5a4a3a 0%, #3a2e20 100%); border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%; transform: skewX(-5deg); }
.scn-telemachus-asks .table { position:absolute; bottom:15%; left:42%; width:60px; height:8px; background: linear-gradient(to right, #6b5a42, #8c7856); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); }

@keyframes ta-shaft { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes ta-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }

.scn-minerva-replies {
  background: linear-gradient(to bottom, #f5eee0 0%, #dccdb5 40%, #b7a58a 100%),
              radial-gradient(ellipse at 70% 30%, #fff5e5 0%, transparent 60%);
}
.scn-minerva-replies .wall { position:absolute; inset:0; background: linear-gradient(to right, #e8dcc8 0%, #d4c4ac 100%); }
.scn-minerva-replies .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(to top, #7a6a52 0%, #9a8a70 100%); }
.scn-minerva-replies .window-frame { position:absolute; top:10%; right:15%; width:35%; height:55%; background: linear-gradient(135deg, #faf0e0 0%, #e8dcc8 100%); border:6px solid #5a4a3a; border-radius:4px; box-shadow: inset 0 0 30px rgba(200,180,140,0.4); }
.scn-minerva-replies .warm-light { position:absolute; top:15%; right:20%; width:25%; height:70%; background: linear-gradient(to bottom, rgba(255,200,100,0.1) 0%, transparent 100%); transform: skewX(6deg); animation: mr-light 12s ease-in-out infinite alternate; }
.scn-minerva-replies .seated-figure { position:absolute; bottom:12%; left:40%; width:45px; height:65px; background: linear-gradient(to bottom, #3a3228 0%, #2a221a 100%); border-radius: 50% 45% 40% 40% / 65% 60% 40% 40%; transform-origin: bottom center; animation: mr-figure 8s ease-in-out infinite alternate; }
.scn-minerva-replies .table { position:absolute; bottom:8%; left:35%; width:80px; height:6px; background: linear-gradient(to right, #8a7a62, #a09078); border-radius:3px; }
.scn-minerva-replies .drape { position:absolute; top:5%; left:5%; width:30%; height:95%; background: linear-gradient(to bottom, #8a7060 0%, #6a5545 100%); border-radius: 0 20% 30% 0 / 0 30% 40% 0; filter: drop-shadow(4px 0 6px rgba(0,0,0,0.2)); animation: mr-drape 20s ease-in-out infinite alternate; }

@keyframes mr-light { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes mr-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes mr-drape { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }

.scn-telemachus-responds {
  background: linear-gradient(to bottom, #c4b8a0 0%, #a89880 40%, #8a7a62 100%),
              radial-gradient(ellipse at 40% 20%, #e0d4c0 0%, transparent 60%);
}
.scn-telemachus-responds .wall { position:absolute; inset:0; background: linear-gradient(180deg, #b8a890 0%, #a09078 100%); }
.scn-telemachus-responds .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(to top, #5a4a3a 0%, #7a6a52 100%); }
.scn-telemachus-responds .dark-corner { position:absolute; top:0; left:0; width:60%; height:100%; background: linear-gradient(to right, rgba(0,0,0,0.15) 0%, transparent 100%); animation: tr-corner 15s ease-in-out infinite alternate; }
.scn-telemachus-responds .bowed-figure { position:absolute; bottom:10%; left:50%; width:50px; height:60px; background: linear-gradient(to bottom, #2a221a 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: translateX(-50%) rotate(10deg); transform-origin: bottom center; animation: tr-bowed 6s ease-in-out infinite alternate; }
.scn-telemachus-responds .table { position:absolute; bottom:8%; left:35%; width:80px; height:6px; background: linear-gradient(to right, #6a5a42, #8a7a62); border-radius:3px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-telemachus-responds .falling-shadow { position:absolute; bottom:0; left:20%; width:40%; height:20%; background: linear-gradient(to top, rgba(0,0,0,0.2) 0%, transparent 100%); animation: tr-shadow 8s ease-in-out infinite alternate; }

@keyframes tr-corner { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes tr-bowed { 0% { transform: translateX(-50%) rotate(8deg); } 50% { transform: translateX(-50%) rotate(12deg) scaleY(0.98); } 100% { transform: translateX(-50%) rotate(8deg); } }
@keyframes tr-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

.scn-minerva-encourages {
  background: linear-gradient(to bottom, #f2e8d8 0%, #dccdb5 40%, #b7a58a 100%),
              radial-gradient(ellipse at 60% 70%, #ffeec0 0%, transparent 60%);
}
.scn-minerva-encourages .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e0d4c0 0%, #c8bca5 100%); }
.scn-minerva-encourages .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(to top, #9a8a70 0%, #b0a088 100%); }
.scn-minerva-encourages .window-frame { position:absolute; top:5%; left:10%; width:30%; height:60%; background: linear-gradient(135deg, #faf0e0 0%, #ece0cc 100%); border:6px solid #6a5a42; border-radius:4px; box-shadow: inset 0 0 30px rgba(255,220,150,0.3); }
.scn-minerva-encourages .warm-glow { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(ellipse at 20% 40%, rgba(255,200,100,0.08) 0%, transparent 70%); animation: me-glow 10s ease-in-out infinite alternate; }
.scn-minerva-encourages .standing-figure { position:absolute; bottom:15%; left:30%; width:40px; height:75px; background: linear-gradient(to bottom, #3a3228 0%, #2a221a 100%); border-radius: 40% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: me-stand 8s ease-in-out infinite alternate; }
.scn-minerva-encourages .raised-hand { position:absolute; bottom:60%; left:33%; width:10px; height:25px; background: linear-gradient(to top, #3a3228 0%, #4a3a2a 100%); border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%; transform: rotate(20deg); transform-origin: bottom; animation: me-hand 6s ease-in-out infinite alternate; }
.scn-minerva-encourages .table { position:absolute; bottom:10%; left:50%; width:70px; height:6px; background: linear-gradient(to right, #8a7a62, #a09078); border-radius:3px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); }

@keyframes me-glow { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes me-stand { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes me-hand { 0% { transform: rotate(15deg); } 50% { transform: rotate(25deg) scaleY(1.05); } 100% { transform: rotate(15deg); } }

.scn-floating { background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 40%, #1a2a3a 100%), radial-gradient(ellipse at 50% 80%, #4a5a6a 0%, transparent 70%); }
.scn-floating .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a5a6a 0%, transparent 100%); animation: fl-sky 12s ease-in-out infinite alternate; }
.scn-floating .wave-back { position:absolute; bottom:15%; left:-10%; right:-10%; height:40%; background: linear-gradient(180deg, #2a4a5a 0%, #1a3a4a 50%, #0a2a3a 100%); border-radius: 40% 60% 0 0; animation: fl-wave-back 6s ease-in-out infinite alternate; }
.scn-floating .wave-mid { position:absolute; bottom:10%; left:-5%; right:-5%; height:35%; background: linear-gradient(180deg, #3a5a6a 0%, #2a4a5a 70%, #1a3a4a 100%); border-radius: 30% 70% 0 0; filter: blur(2px); animation: fl-wave-mid 5s ease-in-out infinite alternate; }
.scn-floating .rocks { position:absolute; bottom:30%; left:70%; width:30%; height:20%; background: linear-gradient(135deg, #4a4a3a 0%, #2a2a2a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -10px 20px rgba(0,0,0,.5); }
.scn-floating .figure-swim { position:absolute; bottom:15%; left:20%; width:20px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: center bottom; animation: fl-swim 3s ease-in-out infinite; }
.scn-floating .spray { position:absolute; bottom:25%; left:15%; width:40px; height:20px; background: radial-gradient(circle, rgba(200,220,230,.3) 0%, transparent 70%); filter: blur(4px); animation: fl-spray 4s ease-in-out infinite; }
.scn-floating .cloud-a { position:absolute; top:10%; left:5%; width:70px; height:15px; background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(200,210,220,.1) 100%); border-radius:50%; filter: blur(5px); animation: fl-cloud-a 40s linear infinite; }
.scn-floating .cloud-b { position:absolute; top:18%; right:10%; width:50px; height:12px; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(200,210,220,.05) 100%); border-radius:50%; filter: blur(4px); animation: fl-cloud-b 55s linear infinite reverse; }
@keyframes fl-sky { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes fl-wave-back { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) scaleY(1.02) } 100% { transform: translateX(5px) } }
@keyframes fl-wave-mid { 0% { transform: translateX(0) } 50% { transform: translateX(8px) scaleY(1.03) } 100% { transform: translateX(-5px) } }
@keyframes fl-swim { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(5deg) translateY(-3px) } 50% { transform: rotate(-3deg) translateY(-1px) } 75% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes fl-spray { 0% { opacity:.2; transform: translate(0,0) } 50% { opacity:.6; transform: translate(10px,-8px) } 100% { opacity:.2; transform: translate(-5px,3px) } }
@keyframes fl-cloud-a { 0% { transform: translateX(-20px) } 100% { transform: translateX(120vw) } }
@keyframes fl-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-dashed-against-rocks { background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 50%, #0a1a1a 100%), radial-gradient(ellipse at 50% 0%, #3a4a4a 0%, transparent 70%); }
.scn-dashed-against-rocks .cliff { position:absolute; bottom:0; left:50%; width:60%; height:60%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset -20px -10px 30px rgba(0,0,0,.7); }
.scn-dashed-against-rocks .wave-crash { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a5a5a 0%, #1a3a3a 100%); border-radius: 30% 70% 0 0; animation: dk-wave-crash 4s ease-in-out infinite; }
.scn-dashed-against-rocks .foam { position:absolute; bottom:30%; left:40%; width:80px; height:30px; background: radial-gradient(circle, rgba(255,255,255,.5) 0%, rgba(200,220,230,.2) 50%, transparent 100%); filter: blur(6px); animation: dk-foam 3s ease-in-out infinite; }
.scn-dashed-against-rocks .figure-smash { position:absolute; bottom:35%; left:55%; width:24px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 60% 60%; transform-origin: center 70%; animation: dk-smash 2s ease-in-out infinite; }
.scn-dashed-against-rocks .rock-shelf { position:absolute; bottom:25%; left:65%; width:20%; height:15%; background: linear-gradient(135deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 10% 10% 0 0; transform: skewX(-20deg); box-shadow: 0 5px 10px rgba(0,0,0,.6); }
.scn-dashed-against-rocks .splash { position:absolute; bottom:38%; left:45%; width:50px; height:50px; background: radial-gradient(circle, rgba(255,255,255,.4) 0%, rgba(200,220,230,.1) 60%, transparent 100%); filter: blur(3px); animation: dk-splash 2.5s ease-in-out infinite; }
@keyframes dk-wave-crash { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-8px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(0.95) } }
@keyframes dk-foam { 0% { opacity:.3; transform: translate(0,0) scale(1) } 50% { opacity:.8; transform: translate(-10px,5px) scale(1.2) } 100% { opacity:.3; transform: translate(5px,-3px) scale(0.9) } }
@keyframes dk-smash { 0% { transform: rotate(0) translateY(0) } 30% { transform: rotate(-20deg) translateY(-5px) } 60% { transform: rotate(15deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes dk-splash { 0% { opacity:.2; transform: scale(0.8) } 50% { opacity:.6; transform: scale(1.3) } 100% { opacity:.2; transform: scale(0.9) } }

.scn-river-god-helps { background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 50%, #2a3a3a 100%), radial-gradient(ellipse at 50% 0%, #5a6a6a 0%, transparent 70%); }
.scn-river-god-helps .bank { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 80% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); }
.scn-river-god-helps .river { position:absolute; bottom:15%; left:-5%; right:-5%; height:25%; background: linear-gradient(90deg, #4a6a7a 0%, #3a5a6a 50%, #4a6a7a 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; animation: rg-river 8s ease-in-out infinite; }
.scn-river-god-helps .rushes { position:absolute; bottom:25%; left:20%; width:10%; height:40%; background: linear-gradient(180deg, #6a7a3a 0%, #4a5a2a 100%); border-radius: 50% 50% 0 0; transform-origin: bottom; filter: blur(1px); animation: rg-rushes 5s ease-in-out infinite; }
.scn-river-god-helps .figure-lying { position:absolute; bottom:22%; left:30%; width:30px; height:18px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(-10deg); animation: rg-lying 6s ease-in-out infinite; }
.scn-river-god-helps .veil { position:absolute; bottom:28%; left:25%; width:40px; height:10px; background: radial-gradient(ellipse, rgba(200,180,160,.6) 0%, transparent 100%); filter: blur(2px); animation: rg-veil 7s ease-in-out infinite; }
.scn-river-god-helps .mist { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(circle at 40% 60%, rgba(200,220,230,.15) 0%, transparent 50%); filter: blur(10px); animation: rg-mist 10s ease-in-out infinite alternate; }
@keyframes rg-river { 0% { background-position: 0% 50% } 50% { background-position: 100% 50% } 100% { background-position: 0% 50% } }
@keyframes rg-rushes { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes rg-lying { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } }
@keyframes rg-veil { 0% { opacity:.3; transform: translate(0,0) } 50% { opacity:.7; transform: translate(5px,-2px) } 100% { opacity:.3; transform: translate(-3px,1px) } }
@keyframes rg-mist { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-chooses-woods { background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #3a2a3a 0%, transparent 70%); }
.scn-chooses-woods .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 20% 40% 0 0; }
.scn-chooses-woods .olive-left { position:absolute; bottom:20%; left:30%; width:4%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform-origin: bottom; transform: rotate(-15deg); animation: cw-olive-sway 8s ease-in-out infinite; }
.scn-chooses-woods .olive-right { position:absolute; bottom:20%; left:38%; width:4%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform-origin: bottom; transform: rotate(15deg); animation: cw-olive-sway 8s ease-in-out infinite reverse; }
.scn-chooses-woods .leaves-bed { position:absolute; bottom:15%; left:25%; width:50%; height:12%; background: radial-gradient(ellipse at 50% 100%, #5a4a2a 0%, #3a2a1a 70%, transparent 100%); border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%; filter: blur(2px); }
.scn-chooses-woods .figure-sleeping { position:absolute; bottom:18%; left:35%; width:30px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; transform: rotate(-5deg); animation: cw-sleep 6s ease-in-out infinite; }
.scn-chooses-woods .glow { position:absolute; bottom:30%; left:40%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,180,255,.15) 0%, transparent 70%); filter: blur(8px); animation: cw-glow 10s ease-in-out infinite; }
.scn-chooses-woods .stars { position:absolute; top:5%; left:20%; width:2px; height:2px; background: white; border-radius:50%; box-shadow: 30px 20px 0 0 rgba(255,255,255,.5), 60px 40px 0 1px rgba(255,255,255,.3), 100px 10px 0 0 rgba(255,255,255,.4), 150px 50px 0 1px rgba(255,255,255,.2), 200px 30px 0 0 rgba(255,255,255,.5); animation: cw-twinkle 4s ease-in-out infinite alternate; }
@keyframes cw-olive-sway { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-15deg) } }
@keyframes cw-sleep { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes cw-glow { 0% { opacity:.2 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes cw-twinkle { 0% { opacity:.3 } 100% { opacity:1 } }

/* meal-together */
.scn-meal-together { background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2820 100%), radial-gradient(ellipse at 50% 80%, #3a2820 0%, transparent 60%); }
.scn-meal-together .cave-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, #4a3528 0%, #1a1410 60%); animation: mt-cavepulse 8s ease-in-out infinite alternate; }
.scn-meal-together .cave-wall-left { position:absolute; inset:10% 60% 0 0; background: linear-gradient(135deg, #2a1e18 0%, #1a1410 100%); border-radius: 0 40% 60% 0 / 0 50% 60% 0; box-shadow: inset -12px 0 20px rgba(0,0,0,.6); }
.scn-meal-together .cave-wall-right { position:absolute; inset:10% 0 0 60%; background: linear-gradient(225deg, #2a1e18 0%, #1a1410 100%); border-radius: 40% 0 0 60% / 50% 0 0 60%; box-shadow: inset 12px 0 20px rgba(0,0,0,.6); }
.scn-meal-together .table { position:absolute; bottom:22%; left:50%; width:70%; height:12%; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%); border-radius: 4%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-meal-together .figure-left { position:absolute; bottom:26%; left:28%; width:18%; height:28%; background: linear-gradient(135deg, #2a2018 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mt-seat-left 6s ease-in-out infinite; }
.scn-meal-together .figure-right { position:absolute; bottom:26%; right:28%; width:18%; height:28%; background: linear-gradient(225deg, #2a2018 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mt-seat-right 6s ease-in-out infinite 1s; }
.scn-meal-together .platter { position:absolute; bottom:28%; left:50%; width:16%; height:6%; transform:translateX(-50%); background: radial-gradient(ellipse, #8a6a4a 0%, #5a3a28 70%); border-radius: 40%; box-shadow: 0 2px 8px rgba(0,0,0,.4); }
.scn-meal-together .torch { position:absolute; top:30%; left:50%; width:2%; height:14%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2218 100%); border-radius: 2px; transform:translateX(-50%) rotate(-2deg); }
.scn-meal-together .flicker { position:absolute; top:26%; left:50%; width:6%; height:8%; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #e8a040 40%, transparent 70%); filter: blur(4px); animation: mt-flicker 0.4s ease-in-out infinite alternate; }
@keyframes mt-cavepulse { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes mt-seat-left { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes mt-seat-right { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes mt-flicker { 0% { opacity:.8; transform:translateX(-50%) scale(1) } 25% { opacity:1; transform:translateX(-48%) scale(1.1) } 50% { opacity:.85; transform:translateX(-52%) scale(.95) } 75% { opacity:1; transform:translateX(-49%) scale(1.05) } 100% { opacity:.8; transform:translateX(-50%) scale(1) } }

/* ulysses-answers */
.scn-ulysses-answers { background: linear-gradient(180deg, #c8b8a8 0%, #a89880 40%, #887868 100%), radial-gradient(ellipse at 30% 70%, #d8c8b8 0%, transparent 60%); }
.scn-ulysses-answers .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #d8c8b8 0%, #a89880 100%); }
.scn-ulysses-answers .window { position:absolute; top:12%; left:38%; width:24%; height:30%; background: linear-gradient(135deg, #e8dcc8 0%, #c8b8a0 100%); border: 4px solid #7a6a5a; border-radius: 2%; box-shadow: inset 0 0 40px rgba(255,255,200,.3); }
.scn-ulysses-answers .sunbeam { position:absolute; top:12%; left:38%; width:24%; height:60%; background: linear-gradient(180deg, rgba(255,255,200,.2) 0%, transparent 100%); transform: skewX(-6deg); filter: blur(8px); animation: ua-sunray 12s ease-in-out infinite alternate; }
.scn-ulysses-answers .figure-ulysses { position:absolute; bottom:22%; left:30%; width:16%; height:40%; background: linear-gradient(135deg, #3a2a1a 0%, #1a1410 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-answers .figure-calypso { position:absolute; bottom:24%; right:28%; width:14%; height:36%; background: linear-gradient(225deg, #4a3a2a 0%, #2a1e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ua-stand-reverse 5s ease-in-out infinite 1.5s; }
.scn-ulysses-answers .table-small { position:absolute; bottom:20%; left:50%; width:30%; height:8%; transform:translateX(-50%); background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 4%; box-shadow: 0 3px 8px rgba(0,0,0,.3); }
.scn-ulysses-answers .cup { position:absolute; bottom:26%; left:46%; width:3%; height:5%; background: linear-gradient(180deg, #c8a880 0%, #a88868 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.2); }
@keyframes ua-sunray { 0% { opacity:.2; transform:skewX(-6deg) translateX(-10px) } 50% { opacity:.5; transform:skewX(-4deg) translateX(5px) } 100% { opacity:.3; transform:skewX(-8deg) translateX(-5px) } }
@keyframes ua-stand { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes ua-stand-reverse { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-1deg) } }

/* building-raft */
.scn-building-raft { background: linear-gradient(180deg, #f0d8b0 0%, #d8c098 30%, #a08060 100%), radial-gradient(ellipse at 70% 20%, #f8e8c8 0%, transparent 50%); }
.scn-building-raft .dawn-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f8d8a8 0%, #f0c880 40%, #d8a868 100%); animation: br-dawn 20s ease-in-out infinite alternate; }
.scn-building-raft .sea { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6888a8 0%, #4a6888 100%); box-shadow: inset 0 20px 30px rgba(255,255,200,.1); animation: br-sea 8s ease-in-out infinite alternate; }
.scn-building-raft .shore { position:absolute; bottom:25%; left:0; right:20%; height:12%; background: linear-gradient(180deg, #c8a868 0%, #a08040 100%); border-radius: 0 30% 0 0; }
.scn-building-raft .tree-standing { position:absolute; bottom:30%; left:55%; width:6%; height:30%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%, #2a1a0a 100%); border-radius: 10% 10% 20% 20%; box-shadow: -4px 0 8px rgba(0,0,0,.3); animation: br-sway 7s ease-in-out infinite; }
.scn-building-raft .tree-felled { position:absolute; bottom:30%; left:40%; width:10%; height:4%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(18deg); transform-origin: right center; animation: br-fall 9s ease-in-out infinite; }
.scn-building-raft .figure-cutter { position:absolute; bottom:32%; left:38%; width:8%; height:18%; background: linear-gradient(135deg, #2a2018 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: br-chop 2s ease-in-out infinite; }
.scn-building-raft .raft-deck { position:absolute; bottom:30%; right:8%; width:18%; height:4%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 2%; transform: skewX(-4deg); }
.scn-building-raft .axe { position:absolute; bottom:44%; left:37%; width:2%; height:6%; background: linear-gradient(180deg, #6a6a6a 0%, #3a3a3a 100%); border-radius: 1px; transform: rotate(30deg); animation: br-swing 2s ease-in-out infinite; }
@keyframes br-dawn { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes br-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes br-sway { 0%,100% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } }
@keyframes br-fall { 0%,100% { transform: rotate(18deg) } 50% { transform: rotate(16deg) } }
@keyframes br-chop { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-6px) rotate(3deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes br-swing { 0% { transform: rotate(30deg) } 25% { transform: rotate(60deg) } 50% { transform: rotate(30deg) } 75% { transform: rotate(50deg) } 100% { transform: rotate(30deg) } }

/* departure */
.scn-departure { background: linear-gradient(180deg, #f8d8a8 0%, #e8c088 30%, #b89868 100%), radial-gradient(ellipse at 30% 20%, #ffe8c8 0%, transparent 50%); }
.scn-departure .sky-dawn { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #f8d8a8 0%, #f0c880 40%, #d8a868 100%); animation: dp-sky 25s ease-in-out infinite alternate; }
.scn-departure .sea-deep { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #587898 0%, #385878 50%, #284868 100%); box-shadow: inset 0 30px 40px rgba(255,255,200,.1); animation: dp-sea 12s ease-in-out infinite alternate; }
.scn-departure .horizon { position:absolute; bottom:20%; left:0; right:0; height:4%; background: linear-gradient(180deg, rgba(255,255,200,.2) 0%, transparent 100%); }
.scn-departure .raft-small { position:absolute; bottom:25%; left:40%; width:12%; height:3%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 2px; transform: skewX(-3deg); animation: dp-raft 15s linear infinite; }
.scn-departure .sail-small { position:absolute; bottom:28%; left:42%; width:0; height:10%; border-left: 4px solid #d8c8a8; border-right: 4px solid #d8c8a8; border-bottom: 10px solid transparent; transform: rotate(-5deg); animation: dp-sail 8s ease-in-out infinite alternate; }
.scn-departure .figure-helmsman { position:absolute; bottom:26%; left:42%; width:4%; height:10%; background: linear-gradient(135deg, #2a2018 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-helm 6s ease-in-out infinite; }
.scn-departure .wave-foam { position:absolute; bottom:22%; left:0; right:0; height:3%; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.3) 20%, transparent 40%, rgba(255,255,255,.2) 60%, transparent 80%); filter: blur(3px); animation: dp-foam 4s ease-in-out infinite; }
.scn-departure .sun-disk { position:absolute; top:15%; right:25%; width:10%; height:10%; background: radial-gradient(circle, #ffd080 0%, #f8b840 50%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: dp-sunrise 30s ease-in-out infinite alternate; }
@keyframes dp-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dp-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes dp-raft { 0% { transform: translateX(-10px) skewX(-3deg) } 50% { transform: translateX(20px) skewX(-1deg) } 100% { transform: translateX(50px) skewX(-3deg) } }
@keyframes dp-sail { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(2deg) scale(1.05) } 100% { transform: rotate(-3deg) scale(.98) } }
@keyframes dp-helm { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes dp-foam { 0% { opacity:.3; transform:translateX(-5%) } 50% { opacity:.6; transform:translateX(0) } 100% { opacity:.3; transform:translateX(5%) } }
@keyframes dp-sunrise { 0% { opacity:.5; transform:scale(.95) } 50% { opacity:1; transform:scale(1.05) } 100% { opacity:.7; transform:scale(.98) } }

.scn-storm-rises {
  background: linear-gradient(180deg, #2c3e50 0%, #1a252f 40%), radial-gradient(ellipse at 30% 80%, #34495e 0%, transparent 70%);
}
.scn-storm-rises .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #2c3e50 100%);
  animation: str1-sky 8s ease-in-out infinite alternate;
}
.scn-storm-rises .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1b2a 100%);
  animation: str1-sea 4s ease-in-out infinite;
}
.scn-storm-rises .lightning {
  position: absolute; top: 12%; left: 60%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #f0e68c 0%, #fffacd 40%, transparent 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(240,230,140,0.6), 0 0 40px 12px rgba(240,230,140,0.3);
  animation: str1-flash 5s ease-in-out infinite;
  transform-origin: top center;
}
.scn-storm-rises .trident {
  position: absolute; bottom: 55%; left: 35%; width: 10px; height: 60px;
  background: #4a5a6b;
  border-radius: 2px;
  box-shadow: -12px 12px 0 -2px #4a5a6b, 12px 12px 0 -2px #4a5a6b;
  animation: str1-trident 7s ease-in-out infinite;
}
.scn-storm-rises .figure {
  position: absolute; bottom: 30%; left: 50%; width: 16px; height: 28px;
  background: #1a1a2e;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: str1-figure 3s ease-in-out infinite;
}
.scn-storm-rises .raft {
  position: absolute; bottom: 26%; left: 48%; width: 50px; height: 8px;
  background: #4a3a2a;
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: str1-raft 4s ease-in-out infinite;
}
.scn-storm-rises .wave-foam {
  position: absolute; bottom: 52%; left: 0; right: 0; height: 6px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.15) 0%, transparent 100%);
  filter: blur(2px);
  animation: str1-foam 2s ease-in-out infinite alternate;
}
@keyframes str1-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes str1-sea { 0%,100% { transform: translateY(0) } 25% { transform: translateY(4px) } 75% { transform: translateY(-4px) } }
@keyframes str1-flash { 0%,80%,100% { opacity: 0 } 20% { opacity: 1 } 40% { opacity: 0.3 } 60% { opacity: 0.8 } }
@keyframes str1-trident { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-5px) } }
@keyframes str1-figure { 0%,100% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(2deg) translateX(5px) } }
@keyframes str1-raft { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-2deg) } }
@keyframes str1-foam { 0% { opacity: 0.3; transform: scaleY(1) } 100% { opacity: 0.8; transform: scaleY(1.5) } }

.scn-shipwreck {
  background: linear-gradient(180deg, #2c3e50 0%, #1a252f 40%), radial-gradient(ellipse at 70% 80%, #34495e 0%, transparent 70%);
}
.scn-shipwreck .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #2c3e50 100%);
  animation: shw2-sky 10s ease-in-out infinite alternate;
}
.scn-shipwreck .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1b2a 100%);
  animation: shw2-sea 3s ease-in-out infinite;
}
.scn-shipwreck .breaker {
  position: absolute; bottom: 40%; left: 30%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(200,220,240,0.4) 0%, rgba(100,150,200,0.1) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: shw2-breaker 2s ease-in-out infinite;
}
.scn-shipwreck .raft-broken {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 6px;
  background: #4a3a2a;
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: shw2-raft 5s ease-in-out infinite;
}
.scn-shipwreck .mast-broken {
  position: absolute; bottom: 32%; left: 42%; width: 4px; height: 40px;
  background: #4a3a2a;
  border-radius: 1px;
  transform: rotate(20deg);
  animation: shw2-mast 4s ease-in-out infinite;
}
.scn-shipwreck .figure-falling {
  position: absolute; bottom: 20%; left: 50%; width: 14px; height: 24px;
  background: #1a1a2e;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-30deg);
  animation: shw2-figure 2s ease-in-out infinite;
}
.scn-shipwreck .plank {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 4px;
  background: #5a4a3a;
  border-radius: 2px;
  transform: rotate(10deg);
  animation: shw2-plank 6s ease-in-out infinite;
}
@keyframes shw2-sky { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes shw2-sea { 0%,100% { transform: translateY(0) } 30% { transform: translateY(5px) } 70% { transform: translateY(-5px) } }
@keyframes shw2-breaker { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(-10px) scale(1.3) } }
@keyframes shw2-raft { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(4px) } }
@keyframes shw2-mast { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(15deg) translateY(3px) } }
@keyframes shw2-figure { 0%,100% { transform: rotate(-30deg) translateX(0) } 50% { transform: rotate(-20deg) translateX(6px) } }
@keyframes shw2-plank { 0%,100% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(5deg) translateX(8px) } }

.scn-ino-appears {
  background: linear-gradient(180deg, #2c3e50 0%, #1a252f 40%), radial-gradient(ellipse at 30% 80%, #34495e 0%, transparent 70%);
}
.scn-ino-appears .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #2c3e50 100%);
  animation: ino3-sky 12s ease-in-out infinite alternate;
}
.scn-ino-appears .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1b2a 100%);
  animation: ino3-sea 6s ease-in-out infinite;
}
.scn-ino-appears .raft {
  position: absolute; bottom: 26%; left: 45%; width: 50px; height: 8px;
  background: #4a3a2a;
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: ino3-raft 4s ease-in-out infinite;
}
.scn-ino-appears .figure {
  position: absolute; bottom: 30%; left: 46%; width: 16px; height: 28px;
  background: #1a1a2e;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ino3-figure 3s ease-in-out infinite;
}
.scn-ino-appears .ino-bird {
  position: absolute; top: 30%; left: 60%; width: 18px; height: 10px;
  background: #4a6a7a;
  border-radius: 50% 50% 0 0;
  transform: rotate(-20deg);
  animation: ino3-bird 5s ease-in-out infinite;
}
.scn-ino-appears .veil {
  position: absolute; top: 35%; left: 65%; width: 40px; height: 6px;
  background: linear-gradient(180deg, rgba(200,220,240,0.6) 0%, transparent 100%);
  border-radius: 2px;
  animation: ino3-veil 3s ease-in-out infinite;
}
.scn-ino-appears .wings {
  position: absolute; top: 28%; left: 57%; width: 30px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, #4a6a7a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ino3-wings 0.8s ease-in-out infinite alternate;
}
@keyframes ino3-sky { 0% { opacity: 0.7 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }
@keyframes ino3-sea { 0%,100% { transform: translateY(0) } 30% { transform: translateY(3px) } 70% { transform: translateY(-3px) } }
@keyframes ino3-raft { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes ino3-figure { 0%,100% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) translateY(1px) } }
@keyframes ino3-bird { 0%,100% { transform: rotate(-20deg) translate(0,0) } 50% { transform: rotate(-15deg) translate(5px,-5px) } }
@keyframes ino3-veil { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(10px) rotate(5deg) } }
@keyframes ino3-wings { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.5) } }

.scn-raft-shatters {
  background: linear-gradient(180deg, #2c3e50 0%, #1a252f 40%), radial-gradient(ellipse at 70% 80%, #34495e 0%, transparent 70%);
}
.scn-raft-shatters .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #2c3e50 100%);
  animation: rfs4-sky 9s ease-in-out infinite alternate;
}
.scn-raft-shatters .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1b2a 100%);
  animation: rfs4-sea 3s ease-in-out infinite;
}
.scn-raft-shatters .shattered-plank {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 4px;
  background: #5a4a3a;
  border-radius: 2px;
  transform: rotate(25deg);
  animation: rfs4-plank 5s ease-in-out infinite;
}
.scn-raft-shatters .figure-swimming {
  position: absolute; bottom: 20%; left: 50%; width: 14px; height: 20px;
  background: #1a1a2e;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(45deg);
  animation: rfs4-figure 2s ease-in-out infinite;
}
.scn-raft-shatters .veil-wrapped {
  position: absolute; top: 55%; left: 48%; width: 20px; height: 8px;
  background: rgba(200,220,240,0.5);
  border-radius: 4px;
  box-shadow: 0 0 10px 2px rgba(200,220,240,0.3);
  animation: rfs4-veil 3s ease-in-out infinite;
}
.scn-raft-shatters .wave-receding {
  position: absolute; bottom: 40%; left: 20%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(200,220,240,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: rfs4-wave 4s ease-in-out infinite;
}
.scn-raft-shatters .debris {
  position: absolute; bottom: 15%; left: 65%; width: 10px; height: 4px;
  background: #4a3a2a;
  border-radius: 1px;
  transform: rotate(-10deg);
  animation: rfs4-debris 6s ease-in-out infinite;
}
@keyframes rfs4-sky { 0% { opacity: 0.6 } 50% { opacity: 0.85 } 100% { opacity: 0.7 } }
@keyframes rfs4-sea { 0%,100% { transform: translateY(0) } 25% { transform: translateY(5px) } 75% { transform: translateY(-4px) } }
@keyframes rfs4-plank { 0%,100% { transform: rotate(25deg) translateX(0) } 50% { transform: rotate(20deg) translateX(10px) } }
@keyframes rfs4-figure { 0%,100% { transform: rotate(45deg) translate(0,0) } 50% { transform: rotate(30deg) translate(5px,-3px) } }
@keyframes rfs4-veil { 0%,100% { transform: translateY(0) opacity(0.6) } 50% { transform: translateY(-3px) opacity(1) } }
@keyframes rfs4-wave { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(-15px) scale(1.2) } }
@keyframes rfs4-debris { 0%,100% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(8px) } }

.scn-minerva-flees {
  background: linear-gradient(180deg, #87ceeb 0%, #f8e8c0 70%), radial-gradient(ellipse at 50% 100%, #f5d6a0 0%, transparent 80%);
}
.scn-minerva-flees .sky { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #b0d8f0 0%, transparent 100%); animation: mf-sky 18s ease-in-out infinite alternate; }
.scn-minerva-flees .sun { position:absolute; top:10%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #ffe680 0%, #ffcc66 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,204,102,0.5); animation: mf-sun 9s ease-in-out infinite alternate; }
.scn-minerva-flees .tower { position:absolute; bottom:20%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #8b7a5c 0%, #6b5a3c 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }
.scn-minerva-flees .figure { position:absolute; bottom:40%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #f0d8b0 0%, #d4a877 70%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mf-fly 4s ease-in-out infinite; }
.scn-minerva-flees .wings { position:absolute; bottom:44%; left:50%; width:80px; height:30px; transform:translate(-50%, -10px); background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(200,180,150,0.7) 100%); border-radius:50% 50% 20% 20%; filter: blur(3px); animation: mf-wings 2s ease-in-out infinite; }
.scn-minerva-flees .cloud-a { position:absolute; top:25%; left:10%; width:100px; height:24px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(8px); animation: mf-drift 45s linear infinite; }
.scn-minerva-flees .cloud-b { position:absolute; top:15%; right:5%; width:70px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%); border-radius:50%; filter: blur(6px); animation: mf-drift 60s linear infinite reverse; }
.scn-minerva-flees .dust { position:absolute; bottom:18%; left:25%; width:12px; height:12px; background: radial-gradient(circle, #d4a877 0%, transparent 70%); border-radius:50%; animation: mf-dust 6s ease-in-out infinite; }
@keyframes mf-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes mf-sun { 0% { transform:scale(0.95); opacity:0.8 } 50% { transform:scale(1.05); opacity:1 } 100% { transform:scale(0.98); opacity:0.9 } }
@keyframes mf-fly { 0% { transform:translateX(-50%) translateY(0) rotate(-2deg) scale(0.95) } 25% { transform:translateX(-48%) translateY(-8px) rotate(2deg) scale(1.02) } 50% { transform:translateX(-50%) translateY(-12px) rotate(-1deg) scale(1) } 75% { transform:translateX(-52%) translateY(-6px) rotate(1deg) scale(0.98) } 100% { transform:translateX(-50%) translateY(0) rotate(0) scale(0.95) } }
@keyframes mf-wings { 0% { transform:translate(-50%, -10px) scaleX(1) } 50% { transform:translate(-50%, -10px) scaleX(0.8) } 100% { transform:translate(-50%, -10px) scaleX(1) } }
@keyframes mf-drift { 0% { transform:translateX(-80px) } 100% { transform:translateX(120vw) } }
@keyframes mf-dust { 0% { transform:translateY(0) scale(1); opacity:0.6 } 50% { transform:translateY(-20px) scale(1.5); opacity:1 } 100% { transform:translateY(0) scale(1); opacity:0.6 } }

.scn-penelope-weeps {
  background: linear-gradient(180deg, #c8a882 0%, #e8d4b0 50%, #f0e0c8 100%), radial-gradient(ellipse at 50% 60%, #e0c8a8 0%, transparent 70%);
}
.scn-penelope-weeps .wall { position:absolute; bottom:20%; left:0; right:0; height:80%; background: linear-gradient(90deg, #d4b896 0%, #e8cfb2 50%, #d4b896 100%); }
.scn-penelope-weeps .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #9c7a5a 0%, #7a5a3a 100%); border-radius:0 0 10% 10%; }
.scn-penelope-weeps .column { position:absolute; bottom:20%; width:18px; height:70%; background: linear-gradient(180deg, #d6bc9c 0%, #b89a7a 100%); border-radius:10%; box-shadow: 4px 0 8px rgba(0,0,0,0.15), -2px 0 4px rgba(255,255,255,0.3); }
.scn-penelope-weeps .col-left { left:28%; }
.scn-penelope-weeps .col-right { right:28%; }
.scn-penelope-weeps .stair.rail { position:absolute; bottom:18%; left:38%; width:24%; height:6px; background: linear-gradient(90deg, #b89870 0%, #c8a880 100%); border-radius:4px; box-shadow: 0 4px 6px rgba(0,0,0,0.2); }
.scn-penelope-weeps .stair.steps { position:absolute; bottom:10%; left:36%; width:28%; height:8px; background: linear-gradient(180deg, #d4b894 0%, #b89870 100%); border-radius:6px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-penelope-weeps .penelope { position:absolute; bottom:28%; left:48%; width:34px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #c89870 0%, #a07050 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pw-weep 5s ease-in-out infinite; }
.scn-penelope-weeps .maid { position:absolute; bottom:30%; width:24px; height:40px; background: linear-gradient(180deg, #d4b090 0%, #b0906a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-penelope-weeps .maid-left { left:34%; }
.scn-penelope-weeps .maid-right { right:32%; }
@keyframes pw-weep { 0% { transform:translateX(-50%) translateY(0) rotate(-1deg) scale(1) } 20% { transform:translateX(-50%) translateY(-3px) rotate(2deg) scale(1.02) } 40% { transform:translateX(-50%) translateY(0) rotate(-2deg) scale(0.98) } 60% { transform:translateX(-50%) translateY(-2px) rotate(1deg) scale(1) } 80% { transform:translateX(-50%) translateY(-4px) rotate(-1deg) scale(1.01) } 100% { transform:translateX(-50%) translateY(0) rotate(0) scale(1) } }

.scn-telemachus-rebukes {
  background: linear-gradient(180deg, #f0d8b8 0%, #e0c4a0 40%, #c8a880 100%), radial-gradient(ellipse at 50% 70%, #e8cca8 0%, transparent 80%);
}
.scn-telemachus-rebukes .chamber { position:absolute; inset:0 10% 10% 10%; background: linear-gradient(180deg, #e0c8a8 0%, #c8a880 100%); border-radius:20px; box-shadow: inset 0 0 30px rgba(0,0,0,0.3); }
.scn-telemachus-rebukes .pillar { position:absolute; bottom:10%; width:16px; height:75%; background: linear-gradient(180deg, #d4b090 0%, #b89870 100%); border-radius:6px; box-shadow: 3px 0 6px rgba(0,0,0,0.2); }
.scn-telemachus-rebukes .p-left { left:15%; }
.scn-telemachus-rebukes .p-right { right:15%; }
.scn-telemachus-rebukes .telemachus { position:absolute; bottom:12%; left:40%; width:30px; height:48px; background: linear-gradient(180deg, #b08868 0%, #8a6a4a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: tr-rebuke 2s ease-in-out infinite; transform-origin: bottom center; }
.scn-telemachus-rebukes .penelope { position:absolute; bottom:15%; left:55%; width:28px; height:40px; background: linear-gradient(180deg, #c8a080 0%, #a07858 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: tr-cower 3s ease-in-out infinite; }
.scn-telemachus-rebukes .suitors { position:absolute; bottom:10%; left:20%; right:20%; height:14px; background: linear-gradient(90deg, rgba(160,120,80,0.6) 0%, rgba(120,90,60,0.6) 50%, rgba(160,120,80,0.6) 100%); border-radius:20px; filter: blur(2px); animation: tr-surge 4s ease-in-out infinite; }
.scn-telemachus-rebukes .torch { position:absolute; bottom:30%; left:50%; width:12px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ffb84d 0%, #cc8800 60%, transparent 80%); border-radius:40%; box-shadow: 0 0 30px 10px rgba(255,200,80,0.4); animation: tr-flicker 1.5s ease-in-out infinite; }
@keyframes tr-rebuke { 0% { transform:translateX(-50%) rotate(-2deg) scale(0.98) } 25% { transform:translateX(-48%) rotate(4deg) scale(1.05) } 50% { transform:translateX(-50%) rotate(-3deg) scale(1.02) } 75% { transform:translateX(-52%) rotate(2deg) scale(0.95) } 100% { transform:translateX(-50%) rotate(0) scale(0.98) } }
@keyframes tr-cower { 0% { transform:translateY(0) scale(0.98) } 50% { transform:translateY(-4px) scale(1.02) } 100% { transform:translateY(0) scale(0.98) } }
@keyframes tr-surge { 0% { opacity:0.4; transform:scaleY(1) } 50% { opacity:0.8; transform:scaleY(1.3) } 100% { opacity:0.4; transform:scaleY(1) } }
@keyframes tr-flicker { 0% { opacity:0.7; transform:scale(0.95) } 25% { opacity:1; transform:scale(1.05) } 50% { opacity:0.8; transform:scale(1) } 75% { opacity:1; transform:scale(1.02) } 100% { opacity:0.7; transform:scale(0.95) } }

.scn-penelope-retires {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #3a3a5e 100%), radial-gradient(ellipse at 50% 80%, #2a2a44 0%, transparent 70%);
}
.scn-penelope-retires .sky { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, #1e1e34 60%, #0e0e1a 100%); animation: pr-night 40s ease-in-out infinite alternate; }
.scn-penelope-retires .stairs { position:absolute; bottom:10%; left:30%; right:30%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:6px 6px 0 0; }
.scn-penelope-retires .door { position:absolute; bottom:23%; left:40%; width:20%; height:25%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:8px 8px 0 0; box-shadow: 0 -8px 12px rgba(0,0,0,0.5); }
.scn-penelope-retires .penelope { position:absolute; bottom:20%; left:45%; width:24px; height:36px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pr-sleep 8s ease-in-out infinite; }
.scn-penelope-retires .maid { position:absolute; bottom:22%; left:38%; width:18px; height:28px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pr-maid 10s ease-in-out infinite; }
.scn-penelope-retires .lamp { position:absolute; bottom:35%; left:50%; width:8px; height:10px; transform:translateX(-50%); background: radial-gradient(circle at 50% 40%, #ffd080 0%, #cc8800 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,200,80,0.3); animation: pr-glow 5s ease-in-out infinite alternate; }
.scn-penelope-retires .shadow { position:absolute; bottom:10%; left:25%; right:25%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.6) 100%); filter: blur(10px); }
@keyframes pr-night { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pr-sleep { 0% { transform:translateX(-50%) translateY(0) rotate(-1deg) scale(1) } 30% { transform:translateX(-50%) translateY(-2px) rotate(2deg) scale(0.98) } 60% { transform:translateX(-50%) translateY(-5px) rotate(-1deg) scale(1.02) } 100% { transform:translateX(-50%) translateY(0) rotate(0) scale(1) } }
@keyframes pr-maid { 0% { transform:translateY(0) scale(1) } 33% { transform:translateY(-2px) scale(0.95) } 66% { transform:translateY(-4px) scale(1.02) } 100% { transform:translateY(0) scale(1) } }
@keyframes pr-glow { 0% { opacity:0.4; box-shadow: 0 0 10px 4px rgba(255,200,80,0.2) } 50% { opacity:0.8; box-shadow: 0 0 30px 12px rgba(255,200,80,0.5) } 100% { opacity:0.5; box-shadow: 0 0 15px 6px rgba(255,200,80,0.3) } }

/* Scene: nestor-insists */
.scn-nestor-insists {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 30%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 70%, #6b4a2a 0%, transparent 60%);
}
.scn-nestor-insists .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 100%);
  animation: ni-room 20s ease-in-out infinite alternate;
}
.scn-nestor-insists .fireplace {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 120px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.7);
}
.scn-nestor-insists .table {
  position: absolute; bottom: 12%; left: 30%; right: 30%; height: 8px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a3a 50%, #4a3a2a 100%);
  border-radius: 4px;
  animation: ni-table 10s ease-in-out infinite;
}
.scn-nestor-insists .nestor {
  position: absolute; bottom: 18%; left: 28%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ni-figure 6s ease-in-out infinite;
}
.scn-nestor-insists .telemachus {
  position: absolute; bottom: 18%; right: 28%; width: 36px; height: 68px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ni-figure 6s ease-in-out infinite 1s;
}
.scn-nestor-insists .wine-cup {
  position: absolute; bottom: 20%; left: 48%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #a06030 0%, #603010 100%);
  border-radius: 20% 20% 10% 10%;
  animation: ni-cup 12s ease-in-out infinite;
}
.scn-nestor-insists .fire-glow {
  position: absolute; bottom: 22%; left: 44%; width: 80px; height: 80px;
  background: radial-gradient(circle, #c06020 0%, #a04010 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: ni-glow 4s ease-in-out infinite alternate;
}
.scn-nestor-insists .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0500 0%, transparent 100%);
  animation: ni-shadow 8s ease-in-out infinite alternate;
}

@keyframes ni-room { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.01); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes ni-table { 0%,100% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(1px); } }
@keyframes ni-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ni-cup { 0%,100% { transform: translateY(0); } 25% { transform: translateY(-2px); } 75% { transform: translateY(1px); } }
@keyframes ni-glow { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes ni-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.65; } }

/* Scene: minerva-agrees */
.scn-minerva-agrees {
  background: linear-gradient(180deg, #4a3a5a 0%, #2a2a4a 30%, #1a1a3a 60%, #0a0a2a 100%),
              radial-gradient(ellipse at 50% 100%, #5a4a6a 0%, transparent 70%);
}
.scn-minerva-agrees .sea-sky {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a4a6a 0%, #2a3a5a 40%, #1a2a4a 100%);
  animation: ma-sky 15s ease-in-out infinite alternate;
}
.scn-minerva-agrees .shore {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #5a5a4a 0%, #4a4a3a 100%);
  border-radius: 50% 50% 0 0;
}
.scn-minerva-agrees .ship {
  position: absolute; bottom: 25%; left: 20%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: 50% 100%;
  animation: ma-ship 12s ease-in-out infinite;
}
.scn-minerva-agrees .minerva-figure {
  position: absolute; bottom: 38%; left: 22%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #6a5a7a 0%, #4a3a5a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ma-fig 8s ease-in-out infinite;
}
.scn-minerva-agrees .telemachus-fig {
  position: absolute; bottom: 37%; left: 28%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ma-fig 8s ease-in-out infinite 2s;
}
.scn-minerva-agrees .sail-1 {
  position: absolute; bottom: 38%; left: 18%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #aaa 0%, #888 100%);
  border-radius: 10% 30% 10% 30%;
  animation: ma-sail 7s ease-in-out infinite;
}
.scn-minerva-agrees .sail-2 {
  position: absolute; bottom: 38%; left: 26%; width: 10px; height: 24px;
  background: linear-gradient(180deg, #999 0%, #777 100%);
  border-radius: 30% 10% 30% 10%;
  animation: ma-sail 7s ease-in-out infinite 2s;
}
.scn-minerva-agrees .wave {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 8%;
  background: linear-gradient(90deg, transparent 0%, #3a5a6a 20%, transparent 40%, #3a5a6a 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ma-wave 6s ease-in-out infinite;
}

@keyframes ma-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes ma-ship { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes ma-fig { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ma-sail { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.9); } }
@keyframes ma-wave { 0% { transform: translateX(-10px); } 50% { transform: translateX(10px); } 100% { transform: translateX(-10px); } }

/* Scene: minerva-revealed */
.scn-minerva-revealed {
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3a2a 30%, #2a1a0a 60%, #0a0a00 100%),
              radial-gradient(ellipse at 50% 30%, #c08050 0%, transparent 70%);
}
.scn-minerva-revealed .sky-dusk {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a3a 50%, #4a2a1a 100%);
  animation: mr-sky 18s ease-in-out infinite alternate;
}
.scn-minerva-revealed .hill-line {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-minerva-revealed .palace-roof {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 40px;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
}
.scn-minerva-revealed .nestor-fig {
  position: absolute; bottom: 22%; left: 38%; width: 34px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-nestor 8s ease-in-out infinite;
}
.scn-minerva-revealed .eagle {
  position: absolute; bottom: 45%; left: 55%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  clip-path: polygon(0 30%, 40% 0, 60% 0, 100% 30%, 80% 80%, 20% 80%);
  animation: mr-eagle 5s ease-in-out infinite;
}
.scn-minerva-revealed .radiance {
  position: absolute; top: 20%; left: 40%; width: 150px; height: 150px;
  background: radial-gradient(circle, #d09050 0%, #b07030 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: mr-radiance 6s ease-in-out infinite alternate;
}
.scn-minerva-revealed .clouds-wisp {
  position: absolute; top: 12%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(90deg, rgba(255,200,150,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mr-cloud 30s linear infinite;
}

@keyframes mr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes mr-nestor { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes mr-eagle { 0% { transform: translateY(0) rotate(-5deg) scale(1); } 25% { transform: translateY(-8px) rotate(0deg) scale(1.05); } 50% { transform: translateY(-2px) rotate(5deg) scale(1); } 75% { transform: translateY(-6px) rotate(0deg) scale(0.95); } 100% { transform: translateY(0) rotate(-5deg) scale(1); } }
@keyframes mr-radiance { 0% { opacity: 0.6; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(0.9); } }
@keyframes mr-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

/* Scene: night-at-nestors */
.scn-night-at-nestors {
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 30%, #000 60%, #1a0500 100%),
              radial-gradient(ellipse at 30% 50%, #3a1a0a 0%, transparent 70%);
}
.scn-night-at-nestors .dark-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0500 0%, #1a0a00 50%, #0a0500 100%);
  animation: nn-room 15s ease-in-out infinite alternate;
}
.scn-night-at-nestors .hearth {
  position: absolute; bottom: 15%; left: 20%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-night-at-nestors .wine-bowl {
  position: absolute; bottom: 18%; left: 38%; width: 40px; height: 20px;
  background: linear-gradient(135deg, #603010 0%, #401800 100%);
  border-radius: 50%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: nn-bowl 12s ease-in-out infinite;
}
.scn-night-at-nestors .nestor-hand {
  position: absolute; bottom: 20%; left: 34%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom left;
  animation: nn-hand 8s ease-in-out infinite;
}
.scn-night-at-nestors .cup-shadow {
  position: absolute; bottom: 16%; left: 37%; width: 30px; height: 6px;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  filter: blur(4px);
  animation: nn-shadow 10s ease-in-out infinite alternate;
}
.scn-night-at-nestors .embers {
  position: absolute; bottom: 12%; left: 18%; width: 40px; height: 40px;
  background: radial-gradient(circle, #a04010 0%, #602000 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: nn-embers 3s ease-in-out infinite alternate;
}
.scn-night-at-nestors .light-beam {
  position: absolute; top: 30%; left: 30%; width: 100px; height: 150px;
  background: linear-gradient(180deg, rgba(200,150,80,0.3) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: nn-beam 9s ease-in-out infinite alternate;
}

@keyframes nn-room { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes nn-bowl { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } }
@keyframes nn-hand { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(5deg); } 75% { transform: translateX(-1px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nn-shadow { 0% { transform: scaleX(1); opacity: 0.5; } 100% { transform: scaleX(0.8); opacity: 0.3; } }
@keyframes nn-embers { 0% { opacity: 0.6; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(0.9); } }
@keyframes nn-beam { 0% { opacity: 0.3; transform: skewX(-10deg) scaleY(0.8); } 50% { opacity: 0.6; transform: skewX(-5deg) scaleY(1.1); } 100% { opacity: 0.4; transform: skewX(-12deg) scaleY(0.9); } }

/* menelaus-toasts */
.scn-menelaus-toasts { background: linear-gradient(180deg, #4a3520 0%, #3a2510 30%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #6a4a2a 0%, transparent 60%); }
.scn-menelaus-toasts .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a3a1a 0%, #3a2510 100%); border-radius:0 0 30% 30% / 0 0 20% 20%; }
.scn-menelaus-toasts .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-menelaus-toasts .table { position:absolute; bottom:25%; left:50%; width:120px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%); border-radius:8px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-menelaus-toasts .goblet { position:absolute; bottom:28%; left:50%; width:14px; height:24px; transform:translateX(-50%) translateX(-30px); background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius:0 0 30% 30%; box-shadow: 0 3px 6px rgba(0,0,0,0.5); animation: mt-goblet 3s ease-in-out infinite; }
.scn-menelaus-toasts .fire { position:absolute; bottom:20%; left:30%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, #ff8c00 0%, #cc5500 40%, transparent 60%); border-radius:50%; filter: blur(4px); box-shadow: 0 0 30px 10px #ff8800, 0 0 60px 20px rgba(255,136,0,0.3); animation: mt-fire 2.5s ease-in-out infinite alternate; }
.scn-menelaus-toasts .figure-menelaus { position:absolute; bottom:28%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mt-figureA 8s ease-in-out infinite; }
.scn-menelaus-toasts .figure-telemachus { position:absolute; bottom:28%; left:55%; width:24px; height:60px; background: linear-gradient(180deg, #3a2510 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mt-figureB 7s ease-in-out infinite 0.5s; }
.scn-menelaus-toasts .figure-pisistratus { position:absolute; bottom:28%; left:60%; width:24px; height:58px; background: linear-gradient(180deg, #3a2510 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mt-figureB 7.5s ease-in-out infinite 1s; }
.scn-menelaus-toasts .food { position:absolute; bottom:26%; left:50%; width:40px; height:12px; transform:translateX(-50%) translateX(-5px); background: linear-gradient(90deg, #8a5a2a 0%, #a06030 50%, #8a5a2a 100%); border-radius:40%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: mt-food 4s ease-in-out infinite; }
@keyframes mt-goblet { 0% { transform: translateX(-50%) translateX(-30px) rotate(0deg); } 50% { transform: translateX(-50%) translateX(-30px) rotate(2deg); } 100% { transform: translateX(-50%) translateX(-30px) rotate(0deg); } }
@keyframes mt-fire { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.8; transform: scaleY(0.95); } }
@keyframes mt-figureA { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mt-figureB { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mt-food { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }

/* menelaus-boasts */
.scn-menelaus-boasts { background: linear-gradient(180deg, #4a3520 0%, #3a2510 30%, #2a1a0a 100%), radial-gradient(ellipse at 80% 20%, #7a5a2a 0%, transparent 50%); }
.scn-menelaus-boasts .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a3a1a 0%, #3a2510 100%); border-radius:0 0 30% 30% / 0 0 20% 20%; }
.scn-menelaus-boasts .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-menelaus-boasts .table { position:absolute; bottom:25%; left:50%; width:120px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%); border-radius:8px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-menelaus-boasts .treasure-chest { position:absolute; bottom:30%; left:65%; width:30px; height:25px; background: linear-gradient(180deg, #7a5a2a 0%, #5a3a1a 100%); border-radius:5px; box-shadow: inset 0 -4px 0 #2a1a0a, 0 4px 8px rgba(0,0,0,0.4); animation: mb-chest 10s ease-in-out infinite; }
.scn-menelaus-boasts .fire { position:absolute; bottom:20%; left:30%; width:35px; height:45px; background: radial-gradient(ellipse at 50% 100%, #ff8c00 0%, #cc5500 40%, transparent 60%); filter: blur(4px); box-shadow: 0 0 30px 10px #ff8800, 0 0 60px 20px rgba(255,136,0,0.3); animation: mb-fire 2.5s ease-in-out infinite alternate; }
.scn-menelaus-boasts .figure-menelaus { position:absolute; bottom:28%; left:38%; width:30px; height:72px; background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-figureA 8s ease-in-out infinite; }
.scn-menelaus-boasts .figure-telemachus { position:absolute; bottom:28%; left:55%; width:24px; height:60px; background: linear-gradient(180deg, #3a2510 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mb-figureB 7s ease-in-out infinite 0.5s; }
.scn-menelaus-boasts .figure-pisistratus { position:absolute; bottom:28%; left:60%; width:24px; height:58px; background: linear-gradient(180deg, #3a2510 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mb-figureB 7.5s ease-in-out infinite 1s; }
@keyframes mb-chest { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes mb-fire { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.15); } 100% { opacity:0.8; transform: scaleY(0.95); } }
@keyframes mb-figureA { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mb-figureB { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* helen-observes */
.scn-helen-observes { background: linear-gradient(180deg, #3a2510 0%, #2a1a0a 30%, #1a1008 100%), radial-gradient(ellipse at 30% 50%, #5a3a1a 0%, transparent 60%); }
.scn-helen-observes .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%); }
.scn-helen-observes .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0808 100%); border-radius:30% 30% 0 0; }
.scn-helen-observes .pillar { position:absolute; bottom:0; left:20%; width:10px; height:100%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2510 100%); box-shadow: 0 0 10px rgba(0,0,0,0.5); }
.scn-helen-observes .curtain { position:absolute; top:0; left:15%; width:20%; height:100%; background: linear-gradient(180deg, #a07050 0%, #805040 100%); border-radius:0 30% 30% 0; opacity:0.6; animation: ho-curtain 7s ease-in-out infinite alternate; }
.scn-helen-observes .figure-helen { position:absolute; bottom:30%; left:22%; width:20px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ho-helen 6s ease-in-out infinite; }
.scn-helen-observes .figure-telemachus { position:absolute; bottom:28%; left:50%; width:24px; height:58px; background: linear-gradient(180deg, #3a2510 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ho-fig 7s ease-in-out infinite 0.3s; }
.scn-helen-observes .figure-pisistratus { position:absolute; bottom:28%; left:55%; width:22px; height:56px; background: linear-gradient(180deg, #3a2510 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ho-fig 7s ease-in-out infinite 0.6s; }
@keyframes ho-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes ho-helen { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ho-fig { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* pisistratus-introduces */
.scn-pisistratus-introduces { background: linear-gradient(180deg, #4a3520 0%, #3a2510 30%, #2a1a0a 100%), radial-gradient(ellipse at 50% 20%, #6a4a2a 0%, transparent 50%); }
.scn-pisistratus-introduces .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a3a1a 0%, #3a2510 100%); border-radius:0 0 30% 30% / 0 0 20% 20%; }
.scn-pisistratus-introduces .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:30% 30% 0 0; }
.scn-pisistratus-introduces .pillar { position:absolute; bottom:0; left:70%; width:12px; height:100%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2510 100%); box-shadow: -2px 0 8px rgba(0,0,0,0.4); }
.scn-pisistratus-introduces .table { position:absolute; bottom:25%; left:40%; width:80px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%); border-radius:6px; }
.scn-pisistratus-introduces .figure-menelaus { position:absolute; bottom:28%; left:35%; width:28px; height:68px; background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pi-figA 8s ease-in-out infinite; }
.scn-pisistratus-introduces .figure-pisistratus { position:absolute; bottom:28%; left:48%; width:22px; height:60px; background: linear-gradient(180deg, #3a2510 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pi-figB 7s ease-in-out infinite 0.2s; }
.scn-pisistratus-introduces .figure-telemachus { position:absolute; bottom:28%; left:42%; width:20px; height:58px; background: linear-gradient(180deg, #3a2510 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pi-figB 7s ease-in-out infinite 0.5s; }
.scn-pisistratus-introduces .fire { position:absolute; bottom:20%; left:20%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, #ff8c00 0%, #cc5500 40%, transparent 60%); filter: blur(4px); box-shadow: 0 0 30px 10px #ff8800, 0 0 60px 20px rgba(255,136,0,0.3); animation: pi-fire 2.5s ease-in-out infinite alternate; }
@keyframes pi-figA { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes pi-figB { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pi-fire { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.8; transform: scaleY(0.95); } }

.scn-telemachus-defies {
  background: 
    linear-gradient(135deg, #f5e6c8 0%, #d4b896 50%, #a07a5a 100%),
    radial-gradient(ellipse at 30% 20%, #fff5e0 0%, transparent 60%);
}
.scn-telemachus-defies .hall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f9f0d8 0%, #cbb28a 100%); animation: td-hall 12s ease-in-out infinite alternate;
}
.scn-telemachus-defies .column-left {
  position: absolute; left: 10%; top: 5%; width: 24px; height: 90%; background: linear-gradient(180deg, #d4c4a0, #b09468); border-radius: 8px; box-shadow: 4px 0 8px rgba(0,0,0,0.15); animation: td-column 6s ease-in-out infinite;
}
.scn-telemachus-defies .column-right {
  position: absolute; right: 10%; top: 5%; width: 24px; height: 90%; background: linear-gradient(180deg, #d4c4a0, #b09468); border-radius: 8px; box-shadow: -4px 0 8px rgba(0,0,0,0.15); animation: td-column 6s ease-in-out infinite 1s;
}
.scn-telemachus-defies .table {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 12%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 100%); border-radius: 60% 60% 20% 20% / 100% 100% 20% 20%; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); animation: td-table 4s ease-in-out infinite;
}
.scn-telemachus-defies .suitors {
  position: absolute; bottom: 24%; width: 18px; height: 40px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-telemachus-defies .group-a { left: 28%; animation: td-suitors 3s ease-in-out infinite; }
.scn-telemachus-defies .group-b { left: 52%; animation: td-suitors 3s ease-in-out infinite 0.5s; }
.scn-telemachus-defies .telemachus-defy {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 48px; background: linear-gradient(180deg, #c8a060 0%, #8a6a40 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: td-telemachus 2.5s ease-in-out infinite;
}
.scn-telemachus-defies .torch {
  position: absolute; bottom: 50%; left: 48%; width: 8px; height: 20px; background: linear-gradient(180deg, #502010 0%, #301000 100%); border-radius: 4px; transform: rotate(-5deg); animation: td-torch 1s ease-in-out infinite;
}
.scn-telemachus-defies .torch::after {
  content: ''; position: absolute; top: -18px; left: -6px; width: 20px; height: 20px; background: radial-gradient(circle, #ffcc44 0%, #ff8800 50%, transparent 70%); border-radius: 50%; animation: td-flame 0.8s ease-in-out infinite alternate;
}
@keyframes td-hall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes td-column { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes td-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes td-suitors { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 75% { transform: translateY(1px) rotate(-0.5deg); } }
@keyframes td-telemachus { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes td-torch { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(2deg); } }
@keyframes td-flame { 0% { transform: scale(1) translateY(0); opacity: 0.8; } 100% { transform: scale(1.3) translateY(-2px); opacity: 1; } }

.scn-telemachus-asserts {
  background: 
    linear-gradient(180deg, #fce8c8 0%, #d4b896 50%, #b09070 100%),
    radial-gradient(ellipse at 40% 50%, #fff8e0 0%, transparent 40%);
}
.scn-telemachus-asserts .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8d8b8 0%, #c8b090 100%); animation: ta-wall 10s ease-in-out infinite alternate;
}
.scn-telemachus-asserts .pillar {
  position: absolute; left: 12%; top: 0; width: 20px; height: 100%; background: linear-gradient(180deg, #c0a880, #907050); border-radius: 6px; box-shadow: 6px 0 12px rgba(0,0,0,0.2); animation: ta-pillar 8s ease-in-out infinite;
}
.scn-telemachus-asserts .telemachus-close {
  position: absolute; bottom: 20%; left: 38%; width: 30px; height: 60px; background: linear-gradient(180deg, #c8a060 0%, #7a5a30 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom; animation: ta-close 3s ease-in-out infinite;
}
.scn-telemachus-asserts .arm-raise {
  position: absolute; bottom: 50%; left: 42%; width: 6px; height: 34px; background: linear-gradient(180deg, #c8a060 0%, #a08050 100%); border-radius: 3px; transform-origin: bottom left; transform: rotate(-30deg); animation: ta-arm 2s ease-in-out infinite alternate;
}
.scn-telemachus-asserts .shadow-cast {
  position: absolute; bottom: 18%; left: 32%; width: 50px; height: 20px; background: rgba(0,0,0,0.25); border-radius: 50%; filter: blur(6px); animation: ta-shadow 4s ease-in-out infinite;
}
.scn-telemachus-asserts .window-light {
  position: absolute; top: 12%; right: 16%; width: 40px; height: 55px; background: radial-gradient(ellipse, rgba(255,240,200,0.8) 0%, transparent 80%); border-radius: 8px; animation: ta-window 5s ease-in-out infinite alternate;
}
@keyframes ta-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ta-pillar { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes ta-close { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(3deg); } }
@keyframes ta-arm { 0% { transform: rotate(-30deg) scaleY(1); } 100% { transform: rotate(-45deg) scaleY(1.1); } }
@keyframes ta-shadow { 0%,100% { transform: scale(1); opacity: 0.25; } 50% { transform: scale(1.1); opacity: 0.4; } }
@keyframes ta-window { 0% { opacity: 0.6; box-shadow: 0 0 20px 4px rgba(255,240,200,0.3); } 100% { opacity: 1; box-shadow: 0 0 40px 10px rgba(255,240,200,0.6); } }

.scn-antinous-questions {
  background: 
    linear-gradient(180deg, #f0ddd0 0%, #dcc0a8 50%, #b89878 100%),
    radial-gradient(ellipse at 30% 70%, #ffe8d0 0%, transparent 50%);
}
.scn-antinous-questions .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: repeating-linear-gradient(90deg, #c8b098 0px, #c8b098 20px, #b8a088 20px, #b8a088 40px); animation: aq-floor 15s linear infinite;
}
.scn-antinous-questions .table-fore {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 8%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 -6px 12px rgba(0,0,0,0.3); animation: aq-table 5s ease-in-out infinite;
}
.scn-antinous-questions .antinous-fig {
  position: absolute; bottom: 14%; left: 40%; width: 26px; height: 54px; background: linear-gradient(180deg, #8a6a44 0%, #5a3a24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: aq-antinous 4s ease-in-out infinite;
}
.scn-antinous-questions .goblet {
  position: absolute; bottom: 22%; left: 48%; width: 10px; height: 18px; background: linear-gradient(180deg, #c8a050 0%, #a08030 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom; animation: aq-goblet 2.5s ease-in-out infinite alternate;
}
.scn-antinous-questions .chair {
  position: absolute; bottom: 4%; left: 38%; width: 30px; height: 50px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a10 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: aq-chair 6s ease-in-out infinite;
}
.scn-antinous-questions .wall-mosaic {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 60%; background: radial-gradient(circle at 50% 40%, #a08060 0%, #d0b898 40%, #b89878 100%); border-radius: 30% 70% 40% 60%; animation: aq-mosaic 12s ease-in-out infinite alternate;
}
.scn-antinous-questions .curious-drift {
  position: absolute; top: 20%; left: 50%; width: 20px; height: 20px; background: radial-gradient(circle, rgba(200,180,160,0.6) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: aq-drift 8s ease-in-out infinite;
}
@keyframes aq-floor { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }
@keyframes aq-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes aq-antinous { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(2deg); } 75% { transform: translateY(1px) rotate(-2deg); } }
@keyframes aq-goblet { 0% { transform: translateY(0) rotate(0); } 100% { transform: translateY(-1px) rotate(5deg); } }
@keyframes aq-chair { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes aq-mosaic { 0% { opacity: 0.8; transform: scale(0.95); } 100% { opacity: 1; transform: scale(1.05); } }
@keyframes aq-drift { 0%,100% { transform: translate(0, 0); } 50% { transform: translate(4px, -4px); } }

.scn-telemachus-answers {
  background: 
    linear-gradient(180deg, #f2e8d8 0%, #ddd0b8 50%, #c0a888 100%),
    radial-gradient(ellipse at 40% 40%, #fff5e0 0%, transparent 60%);
}
.scn-telemachus-answers .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8d8c0 0%, #c8b8a0 100%); animation: tan-bg 15s ease-in-out infinite alternate;
}
.scn-telemachus-answers .floor-calm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%; background: linear-gradient(180deg, #c8b8a0 0%, #a89878 100%); border-radius: 20% 20% 0 0; animation: tan-floor 8s ease-in-out infinite;
}
.scn-telemachus-answers .telemachus-seated {
  position: absolute; bottom: 12%; left: 38%; width: 28px; height: 44px; background: linear-gradient(180deg, #c8a060 0%, #8a6a40 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tan-seated 6s ease-in-out infinite;
}
.scn-telemachus-answers .mother-fig {
  position: absolute; bottom: 14%; left: 54%; width: 22px; height: 40px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tan-mother 7s ease-in-out infinite;
}
.scn-telemachus-answers .lamp-soft {
  position: absolute; top: 18%; right: 20%; width: 12px; height: 16px; background: linear-gradient(180deg, #ffd080 0%, #b08040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 24px 8px rgba(255,208,128,0.5), 0 0 48px 16px rgba(255,208,128,0.2); animation: tan-lamp 4s ease-in-out infinite alternate;
}
.scn-telemachus-answers .dog-sleep {
  position: absolute; bottom: 6%; left: 46%; width: 24px; height: 12px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 70% 70% 40% 40% / 100% 100% 60% 60%; animation: tan-dog 10s ease-in-out infinite;
}
@keyframes tan-bg { 0% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes tan-floor { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } }
@keyframes tan-seated { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes tan-mother { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(1px) rotate(1deg); } }
@keyframes tan-lamp { 0% { box-shadow: 0 0 20px 6px rgba(255,208,128,0.4); } 100% { box-shadow: 0 0 30px 10px rgba(255,208,128,0.7); } }
@keyframes tan-dog { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(0.95) translateY(1px); } }

.scn-alcinous-speaks {
  background: linear-gradient(180deg, #d9a05a 0%, #b87a3a 40%, #8b5e2e 100%),
              radial-gradient(ellipse at 50% 30%, #e8b86a 0%, transparent 70%);
}
.scn-alcinous-speaks .bg-hall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(200,160,80,0.3) 0%, transparent 100%);
  animation: alsp-bg 18s ease-in-out infinite alternate;
}
.scn-alcinous-speaks .pillar {
  position: absolute; bottom: 0; width: 20px; height: 80%;
  background: linear-gradient(90deg, #b08a5a, #d4b07a, #b08a5a);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -2px 0 4px rgba(0,0,0,0.2);
}
.scn-alcinous-speaks .pillar-l { left: 10%; }
.scn-alcinous-speaks .pillar-r { right: 10%; }
.scn-alcinous-speaks .table {
  position: absolute; bottom: 20%; left: 50%; width: 140px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4828, #4a3018);
  border-radius: 20px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-alcinous-speaks .figure {
  position: absolute; bottom: 20%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a, #1a120a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-alcinous-speaks .speaker { left: 50%; margin-left: -24px; transform: scale(1.1); }
.scn-alcinous-speaks .audience { width: 22px; height: 44px; bottom: 20%; }
.scn-alcinous-speaks .audience-1 { left: 12%; animation: alsp-aud 6s ease-in-out infinite; }
.scn-alcinous-speaks .audience-2 { right: 12%; animation: alsp-aud 6s ease-in-out infinite 2s; }
.scn-alcinous-speaks .lamp {
  position: absolute; bottom: 60%; left: 50%; width: 14px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd480 0%, #ffa030 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #ffa030, 0 0 48px 16px rgba(255,160,48,0.4);
  animation: alsp-glow 3s ease-in-out infinite alternate;
}
@keyframes alsp-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes alsp-aud { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes alsp-glow { 0% { box-shadow:0 0 20px 6px #ffa030, 0 0 40px 12px rgba(255,160,48,0.3); opacity:0.9 } 50% { box-shadow:0 0 32px 12px #ffc060, 0 0 64px 24px rgba(255,192,96,0.5); opacity:1 } 100% { box-shadow:0 0 20px 6px #ffa030, 0 0 40px 12px rgba(255,160,48,0.3); opacity:0.9 } }

.scn-ulysses-responds {
  background: linear-gradient(180deg, #c89650 0%, #a07030 50%, #705028 100%),
              radial-gradient(ellipse at 50% 40%, #d8a860 0%, transparent 60%);
}
.scn-ulysses-responds .bg-chamber {
  position: absolute; inset:0;
  background: linear-gradient(180deg, rgba(180,140,80,0.2) 0%, transparent 100%);
  animation: ulrr-bg 14s ease-in-out infinite alternate;
}
.scn-ulysses-responds .floor {
  position: absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #5a4020, #3a2a10);
  border-radius: 30% 30% 0 0 / 100% 100% 0 0;
}
.scn-ulysses-responds .figure {
  position: absolute; bottom:15%; left:50%; width:26px; height:56px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ulrr-figure 3s ease-in-out infinite;
}
.scn-ulysses-responds .shadow {
  position: absolute; bottom:15%; left:40%; width:40px; height:50px;
  background: rgba(0,0,0,0.3);
  transform: skewX(-10deg) scale(0.8);
  filter: blur(6px);
  animation: ulrr-shadow 3s ease-in-out infinite;
}
.scn-ulysses-responds .torch {
  position: absolute; bottom:55%; left:70%; width:10px; height:10px;
  background: radial-gradient(circle, #ffd080 0%, #ff8020 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ff8020, 0 0 40px 12px rgba(255,128,32,0.4);
  animation: ulrr-torch 2s ease-in-out infinite alternate;
}
.scn-ulysses-responds .wall-sconce {
  position: absolute; bottom:55%; left:70%; width:6px; height:20px;
  transform: translateX(-2px);
  background: linear-gradient(180deg, #8a6a40, #4a3018);
  border-radius: 2px;
}
@keyframes ulrr-bg { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes ulrr-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 25% { transform: translateX(-40%) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(2deg) } 75% { transform: translateX(-60%) translateY(-2px) rotate(-1deg) } }
@keyframes ulrr-shadow { 0%,100% { transform: skewX(-10deg) scale(0.8) translateX(0) } 50% { transform: skewX(-10deg) scale(0.85) translateX(5px) } }
@keyframes ulrr-torch { 0% { box-shadow:0 0 16px 4px #ff8020, 0 0 32px 8px rgba(255,128,32,0.3); opacity:0.8 } 100% { box-shadow:0 0 28px 10px #ffa040, 0 0 48px 16px rgba(255,160,64,0.5); opacity:1 } }

.scn-ulysses-dines {
  background: linear-gradient(180deg, #d4a85c 0%, #b8883a 40%, #8a6028 100%),
              radial-gradient(ellipse at 50% 30%, #e0b868 0%, transparent 70%);
}
.scn-ulysses-dines .bg-dining {
  position: absolute; inset:0;
  background: linear-gradient(135deg, rgba(200,160,80,0.4) 0%, transparent 50%, rgba(200,160,80,0.1) 100%);
  animation: uldi-bg 20s ease-in-out infinite alternate;
}
.scn-ulysses-dines .table {
  position: absolute; bottom:20%; left:50%; width:160px; height:12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a30, #5a3a18);
  border-radius: 30px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-ulysses-dines .plate {
  position: absolute; bottom:24%; left:50%; width:30px; height:8px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #e8d0a0 0%, #c8a870 100%);
  border-radius: 50%;
  animation: uldi-plate 4s ease-in-out infinite alternate;
}
.scn-ulysses-dines .cup {
  position: absolute; bottom:24%; left:46%; width:10px; height:14px;
  background: linear-gradient(180deg, #b89870, #907850);
  border-radius: 0 0 20% 20%;
  animation: uldi-cup 5s ease-in-out infinite;
}
.scn-ulysses-dines .bread {
  position: absolute; bottom:24%; left:53%; width:18px; height:10px;
  background: radial-gradient(ellipse, #d4a86a, #a88040);
  border-radius: 50%;
  animation: uldi-bread 6s ease-in-out infinite;
}
.scn-ulysses-dines .figure {
  position: absolute; bottom:18%; width:22px; height:48px;
  background: linear-gradient(180deg, #3a2a1a, #1a120a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: uldi-seated 7s ease-in-out infinite;
}
.scn-ulysses-dines .seated-1 { left: 20%; }
.scn-ulysses-dines .seated-2 { right: 20%; animation-delay: 2s; }
.scn-ulysses-dines .lamp {
  position: absolute; bottom:65%; left:50%; width:12px; height:12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd480 0%, #ffa030 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffa030, 0 0 40px 10px rgba(255,160,48,0.3);
  animation: uldi-glow 4s ease-in-out infinite alternate;
}
@keyframes uldi-bg { 0% { opacity:0.7 } 50% { opacity:0.95 } 100% { opacity:0.8 } }
@keyframes uldi-plate { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } }
@keyframes uldi-cup { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes uldi-bread { 0%,100% { transform: rotate(0) scale(1) } 50% { transform: rotate(3deg) scale(1.03) } }
@keyframes uldi-seated { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes uldi-glow { 0% { box-shadow:0 0 16px 4px #ffa030, 0 0 32px 8px rgba(255,160,48,0.2); opacity:0.85 } 50% { box-shadow:0 0 28px 10px #ffc060, 0 0 48px 16px rgba(255,192,96,0.5); opacity:1 } 100% { box-shadow:0 0 20px 6px #ffa030, 0 0 36px 10px rgba(255,160,48,0.3); opacity:0.9 } }

.scn-ulysses-narrates {
  background: linear-gradient(180deg, #b89858 0%, #8a6e38 40%, #5a4620 100%),
              radial-gradient(ellipse at 50% 30%, #c8a85a 0%, transparent 70%);
}
.scn-ulysses-narrates .bg-sad-hall {
  position: absolute; inset:0;
  background: linear-gradient(180deg, rgba(140,100,50,0.2) 0%, transparent 100%);
  animation: ulna-bg 22s ease-in-out infinite alternate;
}
.scn-ulysses-narrates .floor-dark {
  position: absolute; bottom:0; left:0; right:0; height:22%;
  background: linear-gradient(180deg, #4a3a1a, #2a1a0a);
  border-radius: 40% 40% 0 0 / 100% 100% 0 0;
}
.scn-ulysses-narrates .figure {
  position: absolute; bottom:10%; left:50%; width:24px; height:52px;
  transform: translateX(-50%) scale(0.95);
  background: linear-gradient(180deg, #2a1a0a, #1a0e00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ulna-figure 8s ease-in-out infinite;
}
.scn-ulysses-narrates .tear {
  position: absolute; bottom:32%; left:48%; width:4px; height:6px;
  background: radial-gradient(circle at 50% 30%, #a0c8d8 0%, #6088a0 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: ulna-tear 4s ease-in-out infinite;
}
.scn-ulysses-narrates .memory-ship {
  position: absolute; bottom:55%; right:15%; width:40px; height:20px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  clip-path: polygon(0% 100%, 40% 0%, 60% 0%, 100% 100%);
  animation: ulna-ship 15s ease-in-out infinite alternate;
}
.scn-ulysses-narrates .memory-wave {
  position: absolute; bottom:50%; right:10%; width:60px; height:8px;
  background: rgba(100,150,180,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: ulna-wave 20s linear infinite;
}
.scn-ulysses-narrates .wave-a { right:5%; animation-duration: 14s; }
.scn-ulysses-narrates .wave-b { right:15%; bottom:48%; animation-duration: 18s; animation-delay: 3s; }
.scn-ulysses-narrates .candle {
  position: absolute; bottom:60%; left:40%; width:6px; height:16px;
  background: linear-gradient(180deg, #e8d0a0, #b89868);
  border-radius: 2px;
  animation: ulna-candle 4s ease-in-out infinite alternate;
}
.scn-ulysses-narrates .glow {
  position: absolute; bottom:60%; left:40%; width:14px; height:14px;
  transform: translate(-4px, -14px);
  background: radial-gradient(circle, #ffd480 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(255,212,128,0.4);
  animation: ulna-glow 4s ease-in-out infinite alternate;
}
@keyframes ulna-bg { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes ulna-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 25% { transform: translateX(-55%) translateY(-2px) rotate(0deg) } 50% { transform: translateX(-50%) translateY(0) rotate(1deg) } 75% { transform: translateX(-45%) translateY(-2px) rotate(0deg) } }
@keyframes ulna-tear { 0% { transform: translateY(0) scale(1); opacity:0.4 } 50% { transform: translateY(6px) scale(1.2); opacity:0.7 } 100% { transform: translateY(12px) scale(0.8); opacity:0 } }
@keyframes ulna-ship { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-10px) rotate(3deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes ulna-wave { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-30px) scaleX(1.2) } 100% { transform: translateX(-60px) scaleX(1) } }
@keyframes ulna-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes ulna-glow { 0% { box-shadow:0 0 12px 4px rgba(255,212,128,0.3); opacity:0.7 } 100% { box-shadow:0 0 20px 8px rgba(255,212,128,0.6); opacity:1 } }

.scn-euryclea-pleads {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 50%, #0f0a08 100%),
              radial-gradient(ellipse at 60% 20%, #3a2a22 0%, transparent 60%);
}
.scn-euryclea-pleads .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2a22 0%, #2a1f1a 100%);
  animation: ep-wall-pulse 12s ease-in-out infinite;
}
.scn-euryclea-pleads .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
}
.scn-euryclea-pleads .hearth {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, #2a1a10 100%);
  border-radius: 20% 20% 0 0;
}
.scn-euryclea-pleads .flame {
  position: absolute; bottom: 36%; left: 22%; width: 40px; height: 50px;
  background: radial-gradient(circle at 50% 100%, #ff8c42 0%, #b85a2a 40%, #3a1a0a 80%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(2px);
  animation: ep-flame 2s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 8px rgba(255,140,66,0.4);
}
.scn-euryclea-pleads .figure-old {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ep-figure 5s ease-in-out infinite;
}
.scn-euryclea-pleads .figure-shadow {
  position: absolute; bottom: 30%; left: 38%; width: 40px; height: 60px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: ep-shadow 5s ease-in-out infinite;
}
.scn-euryclea-pleads .window-shutter {
  position: absolute; top: 20%; right: 10%; width: 30px; height: 50px;
  background: linear-gradient(90deg, #2a1a10 0%, #1a0f0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: ep-shutter 8s ease-in-out infinite alternate;
}
@keyframes ep-wall-pulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ep-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.1) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(1px); opacity: 0.7; }
}
@keyframes ep-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ep-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(5px) scale(1.1); opacity: 0.4; }
  100% { transform: translateX(-3px) scale(0.95); opacity: 0.3; }
}
@keyframes ep-shutter {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(-3px); }
}

.scn-telemachus-reassures {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 50%, #0f0a08 100%),
              radial-gradient(ellipse at 40% 30%, #3a2a22 0%, transparent 70%);
}
.scn-telemachus-reassures .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #3a2a22 0%, #2a1f1a 100%);
}
.scn-telemachus-reassures .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
}
.scn-telemachus-reassures .pillar {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a10 50%, #4a3a2a 100%);
  box-shadow: 2px 0 10px rgba(0,0,0,0.5);
}
.scn-telemachus-reassures .figure-young {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-figure 6s ease-in-out infinite;
}
.scn-telemachus-reassures .spear {
  position: absolute; bottom: 25%; left: 55%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: tr-spear 4s ease-in-out infinite alternate;
}
.scn-telemachus-reassures .figure-shadow {
  position: absolute; bottom: 20%; left: 48%; width: 35px; height: 70px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: tr-shadow 6s ease-in-out infinite;
}
.scn-telemachus-reassures .torch {
  position: absolute; top: 15%; right: 20%; width: 10px; height: 30px;
  background: radial-gradient(circle at 50% 0%, #ffaa44 0%, #cc7733 50%, #2a1a0a 100%);
  border-radius: 50% / 20% 20% 50% 50%;
  box-shadow: 0 0 30px 15px rgba(255,170,68,0.3);
  animation: tr-torch 3s ease-in-out infinite alternate;
}
@keyframes tr-figure {
  0% { transform: translateX(0) scaleY(1); }
  25% { transform: translateX(2px) scaleY(1.01); }
  50% { transform: translateX(-1px) scaleY(0.99); }
  75% { transform: translateX(1px) scaleY(1); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes tr-spear {
  0% { transform: rotate(12deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(14deg) translateY(0); }
}
@keyframes tr-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(4px) scale(1.05); opacity: 0.4; }
  100% { transform: translateX(-2px) scale(0.95); opacity: 0.3; }
}
@keyframes tr-torch {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.15) translateY(-3px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(2px); opacity: 0.7; }
}

.scn-euryclea-swears {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 50%, #0f0a08 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a22 0%, transparent 70%);
}
.scn-euryclea-swears .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #3a2a22 0%, #2a1f1a 100%);
}
.scn-euryclea-swears .table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
}
.scn-euryclea-swears .jar {
  position: absolute; bottom: 28%; left: 35%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: inset 0 -8px 10px rgba(0,0,0,0.3);
}
.scn-euryclea-swears .hand-old {
  position: absolute; bottom: 30%; left: 40%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 20% 20% 50%;
  transform: rotate(-20deg);
  transform-origin: bottom left;
  animation: es-hand 4s ease-in-out infinite alternate;
}
.scn-euryclea-swears .wine-pour {
  position: absolute; bottom: 35%; left: 44%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #8c3a2a 0%, #5a1a1a 100%);
  border-radius: 2px;
  animation: es-pour 6s ease-in-out infinite;
}
.scn-euryclea-swears .figure-profile {
  position: absolute; bottom: 25%; left: 55%; width: 24px; height: 65px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 50% 50% 40% / 60% 50% 50% 60%;
  transform: scaleX(-1);
  animation: es-figure 5s ease-in-out infinite;
}
.scn-euryclea-swears .shadow-cast {
  position: absolute; bottom: 25%; left: 45%; width: 60px; height: 40px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: es-shadow 5s ease-in-out infinite;
}
@keyframes es-hand {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-2px); }
  100% { transform: rotate(-22deg) translateY(1px); }
}
@keyframes es-pour {
  0% { transform: scaleY(1); opacity: 0.6; }
  50% { transform: scaleY(1.2); opacity: 0.9; }
  100% { transform: scaleY(0.8); opacity: 0.5; }
}
@keyframes es-figure {
  0% { transform: scaleX(-1) translateX(0); }
  50% { transform: scaleX(-1) translateX(2px); }
  100% { transform: scaleX(-1) translateX(-1px); }
}
@keyframes es-shadow {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.1); opacity: 0.4; }
  100% { transform: scale(0.95); opacity: 0.25; }
}

.scn-minerva-gathers-crew {
  background: linear-gradient(180deg, #2a1f3a 0%, #1a1230 30%, #2a1a1a 60%, #0f0a08 100%),
              radial-gradient(ellipse at 30% 90%, #4a2a2a 0%, transparent 60%);
}
.scn-minerva-gathers-crew .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 40%, #1a1220 100%);
  animation: mg-sky 15s ease-in-out infinite alternate;
}
.scn-minerva-gathers-crew .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
}
.scn-minerva-gathers-crew .building-silhouette-left {
  position: absolute; bottom: 40%; left: 5%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #1a1220 0%, #0f0a10 100%);
  border-radius: 4% 4% 0 0;
  clip-path: polygon(0% 100%, 0% 30%, 20% 30%, 20% 0%, 80% 0%, 80% 30%, 100% 30%, 100% 100%);
}
.scn-minerva-gathers-crew .building-silhouette-right {
  position: absolute; bottom: 40%; right: 5%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #1a1220 0%, #0f0a10 100%);
  border-radius: 4% 4% 0 0;
  clip-path: polygon(0% 100%, 0% 20%, 30% 20%, 30% 0%, 70% 0%, 70% 20%, 100% 20%, 100% 100%);
}
.scn-minerva-gathers-crew .ship-mast {
  position: absolute; bottom: 42%; left: 50%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: mg-mast 8s ease-in-out infinite alternate;
}
.scn-minerva-gathers-crew .figure-minerva {
  position: absolute; bottom: 40%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mg-figure 7s ease-in-out infinite;
}
.scn-minerva-gathers-crew .figure-crew-1 {
  position: absolute; bottom: 40%; left: 60%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mg-crew1 6s ease-in-out infinite 1s;
}
.scn-minerva-gathers-crew .figure-crew-2 {
  position: absolute; bottom: 40%; left: 68%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mg-crew2 5s ease-in-out infinite 2s;
}
.scn-minerva-gathers-crew .dusk-cloud {
  position: absolute; top: 15%; right: 20%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(60,40,80,0.6) 0%, rgba(40,20,60,0.2) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mg-cloud 30s linear infinite;
}
@keyframes mg-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes mg-mast {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes mg-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mg-crew1 {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(2px) scaleY(1.02); }
  100% { transform: translateX(-1px) scaleY(0.98); }
}
@keyframes mg-crew2 {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-2px) scaleY(1.01); }
  100% { transform: translateX(1px) scaleY(0.99); }
}
@keyframes mg-cloud {
  0% { transform: translateX(0); }
  50% { transform: translateX(-40px); }
  100% { transform: translateX(-80px); }
}

/* minerva-prays */
.scn-minerva-prays {
  background:
    linear-gradient(180deg, #f7e8c0 0%, #e3c78a 30%, #b8a06a 70%, #7f6b4a 100%),
    radial-gradient(ellipse at 50% 0%, #ffefc0 0%, transparent 40%);
}
.scn-minerva-prays .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #b8d4f0 0%, transparent 100%);
  animation: mp-sky 15s ease-in-out infinite alternate;
}
.scn-minerva-prays .sun-rays {
  position:absolute; top:0; left:30%; width:70%; height:50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,220,150,0.4) 0%, transparent 60%);
  animation: mp-rays 8s ease-in-out infinite alternate;
}
.scn-minerva-prays .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #7f6b4a 0%, #5a4a30 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-minerva-prays .altar {
  position:absolute; bottom:28%; left:50%; transform:translateX(-50%);
  width:60px; height:35px;
  background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%);
  border-radius: 6px 6px 3px 3px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-minerva-prays .figure {
  position:absolute; bottom:20%; left:48%; width:20px; height:50px;
  background: linear-gradient(180deg, #d4c4a0 0%, #a09070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-figure 6s ease-in-out infinite;
}
.scn-minerva-prays .cup {
  position:absolute; bottom:26%; left:55%; width:10px; height:14px;
  background: linear-gradient(180deg, #e0b060 0%, #a07030 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: mp-cup 4s ease-in-out infinite;
}
.scn-minerva-prays .halo {
  position:absolute; top:12%; left:46%; width:20px; height:20px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,230,150,0.6) 0%, transparent 70%);
  box-shadow: 0 0 20px 6px rgba(255,230,150,0.3);
  animation: mp-halo 5s ease-in-out infinite alternate;
}
@keyframes mp-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes mp-rays { 0%{transform:scale(1) rotate(0deg); opacity:0.5} 50%{transform:scale(1.1) rotate(2deg); opacity:0.8} 100%{transform:scale(0.95) rotate(-1deg); opacity:0.6} }
@keyframes mp-figure { 0%{transform:translateX(0) translateY(0) rotate(0deg)} 25%{transform:translateX(2px) translateY(-1px) rotate(2deg)} 50%{transform:translateX(0) translateY(-2px) rotate(0deg)} 75%{transform:translateX(-2px) translateY(-1px) rotate(-2deg)} 100%{transform:translateX(0) translateY(0) rotate(0deg)} }
@keyframes mp-cup { 0%,100%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-3px) rotate(5deg)} }
@keyframes mp-halo { 0%{opacity:0.4; transform:scale(0.8)} 50%{opacity:0.8; transform:scale(1.2)} 100%{opacity:0.5; transform:scale(0.9)} }

/* dinner */
.scn-dinner {
  background:
    linear-gradient(180deg, #d4bfa0 0%, #b89a70 30%, #8a7a5a 60%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 0%, #ffecb0 0%, transparent 50%);
}
.scn-dinner .walls {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #d8c8a0 0%, #b0a080 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-dinner .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6a5a40 0%, #4a3a28 100%);
}
.scn-dinner .table {
  position:absolute; bottom:26%; left:20%; right:20%; height:12%;
  background: linear-gradient(180deg, #b09060 0%, #8a7040 100%);
  border-radius: 8px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: di-table 10s ease-in-out infinite alternate;
}
.scn-dinner .platter {
  position:absolute; bottom:32%; left:35%; width:30%; height:6%;
  background: radial-gradient(ellipse, #c0a070 0%, #a08050 60%, #8a6a40 100%);
  border-radius: 50%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
  animation: di-platter 6s ease-in-out infinite;
}
.scn-dinner .fig-left {
  position:absolute; bottom:14%; left:18%; width:22px; height:44px;
  background: linear-gradient(180deg, #d4c4a8 0%, #a89878 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: di-fig 7s ease-in-out infinite;
}
.scn-dinner .fig-right {
  position:absolute; bottom:14%; right:18%; width:22px; height:44px;
  background: linear-gradient(180deg, #d4c4a8 0%, #a89878 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: di-fig 7s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-dinner .goblet {
  position:absolute; bottom:32%; left:48%; width:8px; height:16px;
  background: linear-gradient(180deg, #e0b060 0%, #a07030 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: di-goblet 4s ease-in-out infinite;
}
@keyframes di-table { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes di-platter { 0%{opacity:0.9; transform:scale(1)} 50%{opacity:1; transform:scale(1.02) rotate(1deg)} 100%{opacity:0.95; transform:scale(0.98)} }
@keyframes di-fig { 0%{transform:translateX(0) translateY(0) rotate(0deg)} 25%{transform:translateX(1px) translateY(-1px) rotate(2deg)} 50%{transform:translateX(0) translateY(-2px) rotate(0deg)} 75%{transform:translateX(-1px) translateY(-1px) rotate(-2deg)} 100%{transform:translateX(0) translateY(0) rotate(0deg)} }
@keyframes di-goblet { 0%,100%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-4px) rotate(8deg)} }

/* nestor-asks */
.scn-nestor-asks {
  background:
    linear-gradient(180deg, #c8b898 0%, #a89870 40%, #7a6a50 70%, #4a3a28 100%),
    radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 50%);
}
.scn-nestor-asks .tent {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-nestor-asks .ground {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #5a4a38 0%, #3a2a1a 100%);
}
.scn-nestor-asks .table {
  position:absolute; bottom:22%; left:25%; right:25%; height:10%;
  background: linear-gradient(180deg, #b09060 0%, #8a7040 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: na-table 12s ease-in-out infinite alternate;
}
.scn-nestor-asks .chair {
  position:absolute; bottom:18%; left:30%; width:16px; height:30px;
  background: linear-gradient(180deg, #9a7a50 0%, #6a4a28 100%);
  border-radius: 4px;
  animation: na-chair 6s ease-in-out infinite;
}
.scn-nestor-asks .nestor {
  position:absolute; bottom:16%; left:40%; width:24px; height:52px;
  background: linear-gradient(180deg, #d4c4a8 0%, #a09070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: na-nestor 8s ease-in-out infinite;
}
.scn-nestor-asks .telemachus {
  position:absolute; bottom:16%; left:56%; width:20px; height:46px;
  background: linear-gradient(180deg, #c8b898 0%, #988870 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: na-telemachus 6s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-nestor-asks .shadow {
  position:absolute; bottom:10%; left:35%; right:35%; height:8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  filter: blur(4px);
}
@keyframes na-table { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes na-chair { 0%{transform:rotate(0deg)} 50%{transform:rotate(3deg)} 100%{transform:rotate(0deg)} }
@keyframes na-nestor { 0%{transform:translateX(0) translateY(0) rotate(0deg)} 33%{transform:translateX(2px) translateY(-2px) rotate(3deg)} 66%{transform:translateX(-1px) translateY(-1px) rotate(-2deg)} 100%{transform:translateX(0) translateY(0) rotate(0deg)} }
@keyframes na-telemachus { 0%{transform:translateX(0) translateY(0) rotate(0deg)} 25%{transform:translateX(1px) translateY(-1px) rotate(2deg)} 50%{transform:translateX(0) translateY(-2px) rotate(0deg)} 75%{transform:translateX(-1px) translateY(-1px) rotate(-2deg)} 100%{transform:translateX(0) translateY(0) rotate(0deg)} }

/* nestor-reminisces (sad, sunlit) */
.scn-nestor-reminisces {
  background:
    linear-gradient(180deg, #a0a0b8 0%, #7a8a9a 30%, #4a5a6a 60%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 0%, #d0c8b0 0%, transparent 50%);
}
.scn-nestor-reminisces .sky-lg {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #b8c8d8 0%, transparent 100%);
  animation: nr-sky 20s ease-in-out infinite alternate;
}
.scn-nestor-reminisces .sun-lg {
  position:absolute; top:5%; left:40%; width:30px; height:30px;
  border-radius: 50%;
  background: radial-gradient(circle, #f0d8a0 0%, #d0b870 50%, transparent 70%);
  box-shadow: 0 0 30px 10px rgba(240,216,160,0.3);
  animation: nr-sun 12s ease-in-out infinite;
}
.scn-nestor-reminisces .sea {
  position:absolute; bottom:20%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: nr-sea 8s ease-in-out infinite alternate;
}
.scn-nestor-reminisces .ship {
  position:absolute; bottom:35%; left:20%; width:60px; height:20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: nr-ship 15s ease-in-out infinite;
}
.scn-nestor-reminisces .warrior {
  position:absolute; bottom:28%; left:50%; width:18px; height:40px;
  background: linear-gradient(180deg, #3a4a4a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nr-warrior 5s ease-in-out infinite;
}
.scn-nestor-reminisces .fallen {
  position:absolute; bottom:20%; left:46%; width:16px; height:24px;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  transform: rotate(60deg);
  transform-origin: bottom center;
  animation: nr-fallen 6s ease-in-out infinite alternate;
}
.scn-nestor-reminisces .spear {
  position:absolute; bottom:30%; left:52%; width:2px; height:30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a1a 100%);
  border-radius: 0 0 20% 20%;
  transform: rotate(-20deg);
  animation: nr-spear 4s ease-in-out infinite;
}
@keyframes nr-sky { 0%{opacity:0.6} 50%{opacity:0.9} 100%{opacity:0.7} }
@keyframes nr-sun { 0%{opacity:0.3; transform:scale(0.9)} 33%{opacity:0.6; transform:scale(1.1)} 66%{opacity:0.4; transform:scale(0.95)} 100%{opacity:0.3; transform:scale(0.9)} }
@keyframes nr-sea { 0%{transform:translateY(0)} 50%{transform:translateY(4px)} 100%{transform:translateY(0)} }
@keyframes nr-ship { 0%{transform:translateX(0) rotate(0deg)} 33%{transform:translateX(10px) rotate(2deg)} 66%{transform:translateX(-5px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes nr-warrior { 0%{transform:translateY(0) rotate(0deg)} 25%{transform:translateY(-2px) rotate(3deg)} 50%{transform:translateY(0) rotate(0deg)} 75%{transform:translateY(-1px) rotate(-3deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes nr-fallen { 0%{opacity:0.6; transform:rotate(55deg) scale(0.95)} 50%{opacity:0.8; transform:rotate(60deg) scale(1)} 100%{opacity:0.6; transform:rotate(65deg) scale(0.95)} }
@keyframes nr-spear { 0%{transform:rotate(-20deg) translateY(0)} 50%{transform:rotate(-18deg) translateY(-2px)} 100%{transform:rotate(-20deg) translateY(0)} }

/* Scene: ulysses-retorts – angry, sunlit */
.scn-ulysses-retorts {
  background: linear-gradient(180deg, #8cc4f0 0%, #f9e77c 40%, #f0c27f 70%, #d9a066 100%),
              radial-gradient(ellipse at 50% 0%, #fff7d0 0%, transparent 60%);
}
.scn-ulysses-retorts .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7bb8e0 0%, #f9e77c 60%, transparent 100%);
  animation: ur-sky 12s ease-in-out infinite alternate;
}
.scn-ulysses-retorts .sun {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff7d0 0%, #f9d76c 50%, transparent 70%);
  border-radius: 50%;
  animation: ur-sun 6s ease-in-out infinite alternate;
}
.scn-ulysses-retorts .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #cba35a 0%, #8b7340 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  animation: ur-ground 8s ease-in-out infinite;
}
.scn-ulysses-retorts .figure {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ur-figure 3s ease-in-out infinite;
}
.scn-ulysses-retorts .disc {
  position: absolute; bottom: 40%; left: 55%; width: 24px; height: 24px;
  background: radial-gradient(circle, #c06030 0%, #7a3a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(192,96,48,0.6);
  animation: ur-disc 2.5s ease-in-out infinite;
}
.scn-ulysses-retorts .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: ur-shadow 3s ease-in-out infinite;
}
@keyframes ur-sky    { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes ur-sun    { 0% { transform: scale(0.95); opacity: 0.9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.9; } }
@keyframes ur-ground { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(0); } }
@keyframes ur-figure { 0% { transform: rotate(-5deg) translateX(0); } 25% { transform: rotate(0deg) translateX(5px); } 50% { transform: rotate(5deg) translateX(10px); } 75% { transform: rotate(0deg) translateX(5px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes ur-disc  { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-20px) rotate(720deg); } 100% { transform: translateY(0) rotate(1440deg); } }
@keyframes ur-shadow{ 0% { width: 80px; opacity: 0.6; } 50% { width: 100px; opacity: 0.3; } 100% { width: 80px; opacity: 0.6; } }

/* Scene: ulysses-challenges – proud, sunlit */
.scn-ulysses-challenges {
  background: linear-gradient(180deg, #9ac4e8 0%, #f0d68a 40%, #e8b86a 70%, #c89848 100%),
              radial-gradient(ellipse at 50% 0%, #fff7e0 0%, transparent 50%);
}
.scn-ulysses-challenges .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #89b8e0 0%, #f0d68a 70%, transparent 100%);
  animation: uc-sky 14s ease-in-out infinite alternate;
}
.scn-ulysses-challenges .sun {
  position: absolute; top: 8%; left: 65%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff7d0 0%, #f9d76c 60%, transparent 80%);
  border-radius: 50%;
  animation: uc-sun 7s ease-in-out infinite alternate;
}
.scn-ulysses-challenges .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #dbb26a 0%, #a88a4a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  animation: uc-ground 10s ease-in-out infinite;
}
.scn-ulysses-challenges .figure {
  position: absolute; bottom: 18%; left: 40%; width: 55px; height: 100px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uc-figure 4s ease-in-out infinite;
}
.scn-ulysses-challenges .arm {
  position: absolute; bottom: 65%; left: 52%; width: 30px; height: 10px;
  background: #1a1a1a;
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: left center;
  animation: uc-arm 2s ease-in-out infinite;
}
.scn-ulysses-challenges .lance {
  position: absolute; bottom: 70%; left: 60%; width: 60px; height: 6px;
  background: linear-gradient(90deg, #8b6a3a 0%, #6a4a2a 100%);
  border-radius: 2px;
  transform-origin: bottom left;
  animation: uc-lance 2s ease-in-out infinite;
}
.scn-ulysses-challenges .shadow {
  position: absolute; bottom: 18%; left: 35%; width: 90px; height: 14px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: uc-shadow 4s ease-in-out infinite;
}
@keyframes uc-sky    { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes uc-sun    { 0% { transform: scale(0.9) rotate(0deg); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(0.9) rotate(0deg); } }
@keyframes uc-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes uc-figure { 0% { transform: rotate(-2deg) translateX(0); } 25% { transform: rotate(1deg) translateX(3px); } 50% { transform: rotate(2deg) translateX(5px); } 75% { transform: rotate(1deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes uc-arm   { 0% { transform: rotate(-30deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-30deg); } }
@keyframes uc-lance { 0% { transform: rotate(-30deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(0.9); } 100% { transform: rotate(-30deg) scaleY(1); } }
@keyframes uc-shadow{ 0% { width: 90px; opacity: 0.5; } 50% { width: 110px; opacity: 0.3; } 100% { width: 90px; opacity: 0.5; } }

/* Scene: dancing – calm, sunlit */
.scn-dancing {
  background: linear-gradient(180deg, #b5d8f0 0%, #f0e0a0 40%, #e8c870 70%, #d0a850 100%),
              radial-gradient(ellipse at 50% 0%, #fff7e0 0%, transparent 50%);
}
.scn-dancing .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a5cce8 0%, #f0e0a0 70%, transparent 100%);
  animation: da-sky 16s ease-in-out infinite alternate;
}
.scn-dancing .sun {
  position: absolute; top: 12%; left: 75%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff7d0 0%, #f9d76c 50%, transparent 70%);
  border-radius: 50%;
  animation: da-sun 8s ease-in-out infinite alternate;
}
.scn-dancing .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d8b870 0%, #b8984a 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  animation: da-ground 12s ease-in-out infinite;
}
.scn-dancing .dancer-1 {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: da-dancer-1 3.5s ease-in-out infinite;
}
.scn-dancing .dancer-2 {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: da-dancer-2 3.5s ease-in-out infinite;
  animation-delay: -1.75s;
}
.scn-dancing .lyre {
  position: absolute; bottom: 30%; left: 42%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c08040 0%, #a06020 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  transform: rotate(20deg);
  animation: da-lyre 6s ease-in-out infinite;
}
.scn-dancing .sparkle-1 {
  position: absolute; top: 25%; left: 20%; width: 6px; height: 6px;
  background: #fff7d0;
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(255,247,208,0.6);
  animation: da-sparkle 2s ease-in-out infinite;
}
.scn-dancing .sparkle-2 {
  position: absolute; top: 30%; left: 65%; width: 5px; height: 5px;
  background: #fff7d0;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,247,208,0.5);
  animation: da-sparkle 2.5s ease-in-out infinite;
  animation-delay: -1s;
}
@keyframes da-sky     { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes da-sun     { 0% { transform: scale(0.95); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }
@keyframes da-ground  { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes da-dancer-1 { 0% { transform: rotate(-10deg) translateX(0); } 25% { transform: rotate(5deg) translateX(5px); } 50% { transform: rotate(10deg) translateX(10px); } 75% { transform: rotate(5deg) translateX(5px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes da-dancer-2 { 0% { transform: rotate(10deg) translateX(0); } 25% { transform: rotate(-5deg) translateX(-5px); } 50% { transform: rotate(-10deg) translateX(-10px); } 75% { transform: rotate(-5deg) translateX(-5px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes da-lyre   { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(25deg) scaleY(0.9); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes da-sparkle { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0; transform: scale(0.5); } }

/* Scene: song-continues – calm, sunlit (interior/cutaway) */
.scn-song-continues {
  background: linear-gradient(180deg, #2a2a3a 0%, #4a3a4a 30%, #6a4a3a 60%, #3a2a2a 100%),
              radial-gradient(ellipse at 50% 50%, #8a6a5a 0%, transparent 70%);
}
.scn-song-continues .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #5a4a4a 40%, #4a3a3a 100%);
  animation: sc-bg 10s ease-in-out infinite alternate;
}
.scn-song-continues .couch {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: sc-couch 8s ease-in-out infinite;
}
.scn-song-continues .figure-venus {
  position: absolute; bottom: 15%; left: 30%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a3a3a 0%, #3a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: sc-venus 4s ease-in-out infinite;
}
.scn-song-continues .figure-mars {
  position: absolute; bottom: 15%; left: 55%; width: 55px; height: 85px;
  background: linear-gradient(180deg, #3a3a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: sc-mars 4s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-song-continues .chains {
  position: absolute; bottom: 50%; left: 25%; width: 50%; height: 4px;
  background: repeating-linear-gradient(90deg, #8a7a5a 0px, #8a7a5a 10px, transparent 10px, transparent 20px);
  animation: sc-chains 6s linear infinite;
}
.scn-song-continues .net {
  position: absolute; top: 20%; left: 15%; width: 70%; height: 60%;
  background: repeating-linear-gradient(45deg, transparent, transparent 15px, rgba(200,180,120,0.1) 15px, rgba(200,180,120,0.1) 16px),
              repeating-linear-gradient(-45deg, transparent, transparent 15px, rgba(200,180,120,0.1) 15px, rgba(200,180,120,0.1) 16px);
  border-radius: 20%;
  animation: sc-net 12s ease-in-out infinite;
}
.scn-song-continues .glow {
  position: absolute; bottom: 35%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  animation: sc-glow 3s ease-in-out infinite alternate;
}
@keyframes sc-bg     { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sc-couch  { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes sc-venus  { 0% { transform: rotate(-10deg) translateY(0); } 25% { transform: rotate(-8deg) translateY(-2px); } 50% { transform: rotate(-10deg) translateY(0); } 75% { transform: rotate(-12deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes sc-mars   { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(7deg) translateY(-2px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes sc-chains { 0% { background-position: 0 0; } 100% { background-position: -40px 0; } }
@keyframes sc-net    { 0% { transform: scale(0.98) rotate(0deg); opacity: 0.5; } 50% { transform: scale(1.02) rotate(2deg); opacity: 0.7; } 100% { transform: scale(0.98) rotate(0deg); opacity: 0.5; } }
@keyframes sc-glow   { 0% { opacity: 0.6; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(0.8); } }

.scn-ulysses-pleads { background: linear-gradient(180deg, #f2d5a0 0%, #e8b87a 40%, #d4945a 70%, #b86a3a 100%), radial-gradient(ellipse at 30% 60%, #f0c878 0%, transparent 60%); }
.scn-ulysses-pleads .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fce8c0 0%, #f2d5a0 40%, transparent 100%); }
.scn-ulysses-pleads .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #c89a5a 0%, #a87a3a 50%, #8a6030 100%); border-radius: 30% 0 0 0 / 20% 0 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-ulysses-pleads .figure-ulysses { position:absolute; bottom:20%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #d4a56a 0%, #b8844a 60%, #8a6030 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-10deg); transform-origin: bottom center; animation: up-implore 4s ease-in-out infinite; box-shadow: -4px 0 12px rgba(0,0,0,.3); }
.scn-ulysses-pleads .figure-nausicaa { position:absolute; bottom:18%; right:25%; width:36px; height:80px; background: linear-gradient(180deg, #e8c89a 0%, #d4aa7a 50%, #b8844a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform: translateY(-2px); animation: up-stand 6s ease-in-out infinite; }
.scn-ulysses-pleads .maids-shadow { position:absolute; bottom:15%; right:40%; width:50px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.2) 0%, transparent 80%); border-radius: 50%; filter: blur(8px); animation: up-fade 8s ease-in-out infinite alternate; }
.scn-ulysses-pleads .sunburst { position:absolute; top:5%; left:20%; width:100px; height:100px; background: radial-gradient(circle, #fce8a0 0%, #f2d080 30%, transparent 70%); border-radius: 50%; animation: up-pulse 6s ease-in-out infinite alternate; }
.scn-ulysses-pleads .dust { position:absolute; inset:0; background: radial-gradient(2px 2px at 20% 30%, rgba(255,220,150,.6), transparent), radial-gradient(3px 3px at 60% 20%, rgba(255,200,120,.4), transparent), radial-gradient(2px 2px at 80% 40%, rgba(255,210,140,.5), transparent); background-size: 100% 100%; animation: up-drift 15s linear infinite; filter: blur(1px); }
@keyframes up-implore { 0%,100% { transform: rotate(-10deg) translateY(0) scaleX(1); } 50% { transform: rotate(-5deg) translateY(-4px) scaleX(.98); } }
@keyframes up-stand { 0%,100% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0px) rotate(2deg); } }
@keyframes up-fade { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.2; } }
@keyframes up-pulse { 0% { opacity:.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.08); } 100% { opacity:.85; transform: scale(.95); } }
@keyframes up-drift { 0% { background-position: 0% 0%; } 100% { background-position: 40% -20%; } }

.scn-nausicaa-orders-maids { background: linear-gradient(180deg, #f0d8a8 0%, #e0c080 30%, #c8a060 60%, #a88040 100%), radial-gradient(ellipse at 60% 70%, #f0d898 0%, transparent 60%); }
.scn-nausicaa-orders-maids .sky-bright { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f8e8c8 0%, #f0d8a8 50%, transparent 100%); }
.scn-nausicaa-orders-maids .shore { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #d4b070 0%, #b89050 40%, #a07840 100%); border-radius: 10% 20% 0 0 / 30% 40% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.2); }
.scn-nausicaa-orders-maids .nausicaa-figure { position:absolute; bottom:25%; left:50%; width:38px; height:85px; transform:translateX(-50%); background: linear-gradient(180deg, #e8c89a 0%, #d4aa7a 50%, #b8844a 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; box-shadow: -2px 0 10px rgba(0,0,0,.2); animation: no-authority 5s ease-in-out infinite; }
.scn-nausicaa-orders-maids .maids-group { position:absolute; bottom:22%; right:15%; width:60px; height:50px; background: radial-gradient(ellipse, rgba(180,130,70,.6) 0%, transparent 80%); border-radius: 50%; filter: blur(6px); animation: no-scatter 7s ease-in-out infinite alternate; }
.scn-nausicaa-orders-maids .stream-pool { position:absolute; bottom:10%; left:20%; width:100px; height:30px; background: linear-gradient(90deg, #a0c8d0 0%, #80b0c0 50%, #6090a0 100%); border-radius: 60% 40% 50% 50% / 80% 70% 70% 80%; box-shadow: inset 0 4px 10px rgba(0,40,60,.3); animation: no-flow 12s ease-in-out infinite alternate; }
.scn-nausicaa-orders-maids .olive-tree { position:absolute; bottom:45%; left:12%; width:30px; height:80px; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 50%, #4a3020 100%); border-radius: 20% 20% 30% 30% / 10% 10% 40% 40%; transform: rotate(5deg); box-shadow: -4px 0 8px rgba(0,0,0,.2); }
.scn-nausicaa-orders-maids .sun-ray { position:absolute; top:0; left:30%; width:120px; height:120px; background: radial-gradient(ellipse at 50% 0%, rgba(255,230,150,.4) 0%, transparent 80%); border-radius: 50%; filter: blur(10px); animation: no-ray 8s ease-in-out infinite alternate; }
@keyframes no-authority { 0%,100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(3deg) scaleY(1.03); } }
@keyframes no-scatter { 0% { transform: translateX(0) scale(1); opacity:.5; } 50% { transform: translateX(8px) scale(.9); opacity:.3; } 100% { transform: translateX(-4px) scale(1.1); opacity:.6; } }
@keyframes no-flow { 0% { background-position: 0% 0%; transform: scaleX(1); } 50% { background-position: 20% 0%; transform: scaleX(1.02); } 100% { background-position: -10% 0%; transform: scaleX(.98); } }
@keyframes no-ray { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.8; transform: scale(1.15); } 100% { opacity:.5; transform: scale(.9); } }

.scn-ulysses-transformed { background: linear-gradient(180deg, #f0e0c0 0%, #e0c898 40%, #c8a870 70%, #a88850 100%), radial-gradient(ellipse at 40% 40%, #f8e8c8 0%, transparent 60%); }
.scn-ulysses-transformed .sky-calm { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f8e8d0 0%, #f0d8b0 50%, transparent 100%); }
.scn-ulysses-transformed .hill-bg { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #a8c0a0 0%, #809870 60%, #607850 100%); border-radius: 40% 60% 0 0 / 60% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); }
.scn-ulysses-transformed .ulysses-transformed-body { position:absolute; bottom:20%; left:40%; width:50px; height:90px; background: linear-gradient(180deg, #e8d0a0 0%, #d0b880 40%, #b89860 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; box-shadow: 0 0 30px 8px rgba(200,180,120,.5); transform: scale(1.08); animation: ut-glow 6s ease-in-out infinite alternate; }
.scn-ulysses-transformed .nausicaa-gaze { position:absolute; bottom:22%; right:20%; width:34px; height:75px; background: linear-gradient(180deg, #e0c090 0%, #c8a870 50%, #a88850 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform: rotate(8deg); animation: ut-gaze 8s ease-in-out infinite; }
.scn-ulysses-transformed .athena-light { position:absolute; top:10%; left:35%; width:120px; height:140px; background: radial-gradient(ellipse, rgba(240,220,160,.5) 0%, rgba(220,200,140,.2) 40%, transparent 70%); border-radius: 50%; filter: blur(12px); animation: ut-light 5s ease-in-out infinite alternate; }
.scn-ulysses-transformed .oil-sheen { position:absolute; bottom:28%; left:38%; width:30px; height:20px; background: radial-gradient(ellipse, rgba(200,180,120,.4) 0%, transparent 80%); border-radius: 50%; filter: blur(4px); animation: ut-sheen 7s ease-in-out infinite alternate; }
.scn-ulysses-transformed .garment-flow { position:absolute; bottom:18%; left:38%; width:60px; height:30px; background: radial-gradient(ellipse at 50% 0%, rgba(220,200,160,.6) 0%, transparent 80%); border-radius: 50%; filter: blur(5px); animation: ut-flow 9s ease-in-out infinite alternate; }
.scn-ulysses-transformed .radiant-haze { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 50%, rgba(255,240,180,.15) 0%, transparent 60%); animation: ut-haze 10s ease-in-out infinite alternate; }
@keyframes ut-glow { 0% { box-shadow: 0 0 20px 4px rgba(200,180,120,.3); transform: scale(1.05); } 50% { box-shadow: 0 0 50px 16px rgba(220,200,140,.6); transform: scale(1.12); } 100% { box-shadow: 0 0 30px 8px rgba(200,180,120,.4); transform: scale(1.08); } }
@keyframes ut-gaze { 0%,100% { transform: translateY(0) rotate(6deg); } 50% { transform: translateY(-3px) rotate(10deg); } }
@keyframes ut-light { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.8; transform: scale(1.2); } 100% { opacity:.5; transform: scale(.95); } }
@keyframes ut-sheen { 0% { opacity:.2; } 50% { opacity:.6; } 100% { opacity:.3; } }
@keyframes ut-flow { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.15) translateY(-2px); } 100% { transform: scaleX(.9) translateY(1px); } }
@keyframes ut-haze { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.4; } }

.scn-ulysses-eats { background: linear-gradient(180deg, #c8a060 0%, #b08848 30%, #987038 60%, #785828 100%), radial-gradient(ellipse at 50% 30%, #e0c080 0%, transparent 70%); }
.scn-ulysses-eats .table-wood { position:absolute; bottom:20%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #a07840 0%, #886830 40%, #685020 100%); border-radius: 4% 4% 20% 20% / 8% 8% 30% 30%; box-shadow: inset 0 8px 20px rgba(0,0,0,.4), 0 -4px 12px rgba(0,0,0,.2); }
.scn-ulysses-eats .bread-loaf { position:absolute; bottom:40%; left:35%; width:40px; height:28px; background: radial-gradient(ellipse, #e8c88a 0%, #c8a060 60%, #a88040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%; box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: ue-bite 5s ease-in-out infinite; }
.scn-ulysses-eats .wine-cup { position:absolute; bottom:38%; right:30%; width:18px; height:24px; background: linear-gradient(180deg, #8a5a3a 0%, #6a4030 50%, #4a2820 100%); border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ue-sip 7s ease-in-out infinite; }
.scn-ulysses-eats .meat-piece { position:absolute; bottom:42%; left:50%; width:30px; height:20px; background: radial-gradient(ellipse, #b87858 0%, #986040 60%, #785030 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 3px 8px rgba(0,0,0,.3); animation: ue-tear 6s ease-in-out infinite; }
.scn-ulysses-eats .ulysses-hand { position:absolute; bottom:38%; left:42%; width:20px; height:30px; background: linear-gradient(180deg, #d4b080 0%, #b89060 60%, #a07840 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(15deg); animation: ue-reach 4s ease-in-out infinite alternate; }
.scn-ulysses-eats .ulysses-face { position:absolute; bottom:55%; left:20%; width:28px; height:34px; background: linear-gradient(180deg, #d4b080 0%, #c09868 50%, #a88050 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; box-shadow: inset -2px -4px 8px rgba(0,0,0,.2); animation: ue-chew 3s ease-in-out infinite alternate; }
.scn-ulysses-eats .shadow-hunger { position:absolute; bottom:15%; left:5%; right:5%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 80%); border-radius: 50%; filter: blur(10px); animation: ue-darken 8s ease-in-out infinite alternate; }
@keyframes ue-bite { 0%,100% { transform: scale(1) translateY(0); } 25% { transform: scale(.9) translateY(-2px); } 50% { transform: scale(.95) translateY(0); } 75% { transform: scale(.85) translateY(-3px); } }
@keyframes ue-sip { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(-5deg); } 60% { transform: translateY(0) rotate(0deg); } 85% { transform: translateY(-2px) rotate(3deg); } }
@keyframes ue-tear { 0%,100% { transform: scale(1) rotate(0deg); } 20% { transform: scale(.8) rotate(-8deg); } 40% { transform: scale(1.05) rotate(2deg); } 60% { transform: scale(.9) rotate(-5deg); } 80% { transform: scale(1) rotate(3deg); } }
@keyframes ue-reach { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-6px); } 100% { transform: rotate(15deg) translateY(-2px); } }
@keyframes ue-chew { 0% { transform: translateY(0) scaleY(1); } 25% { transform: translateY(-2px) scaleY(.95); } 50% { transform: translateY(0) scaleY(1); } 75% { transform: translateY(-1px) scaleY(.97); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ue-darken { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }

.scn-all-weep { background: linear-gradient(180deg, #f0e0c8 0%, #e8d0b0 50%, #d8b890 100%), radial-gradient(ellipse at 30% 20%, #fff8e8 0%, transparent 60%); }
.scn-all-weep .wall { position:absolute; inset:20% 10% 10% 10%; background: linear-gradient(180deg, #e8c8a0 0%, #d4b48a 100%); border-radius: 10px; box-shadow: inset 0 0 40px rgba(0,0,0,0.08); }
.scn-all-weep .window { position:absolute; top:15%; left:15%; width:30%; height:35%; background: radial-gradient(circle at 30% 30%, #f0e8d8 0%, #d0b898 100%); border-radius: 8px; box-shadow: 0 0 30px rgba(255,255,200,0.3); animation: aw-window 12s ease-in-out infinite alternate; }
.scn-all-weep .table { position:absolute; bottom:20%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%); border-radius: 20% / 40%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-all-weep .figure-a { position:absolute; bottom:28%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aw-bow 8s ease-in-out infinite; }
.scn-all-weep .figure-b { position:absolute; bottom:28%; left:45%; width:22px; height:42px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aw-bow 10s ease-in-out infinite reverse; }
.scn-all-weep .figure-c { position:absolute; bottom:28%; left:65%; width:18px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aw-bow 6s ease-in-out infinite; }
.scn-all-weep .tears { position:absolute; bottom:38%; left:22%; width:4px; height:4px; background: radial-gradient(circle, #80c0ff 0%, transparent 100%); border-radius: 50%; animation: aw-tear 4s ease-in-out infinite; box-shadow: 8px 0 0 rgba(128,192,255,0.5), 16px 2px 0 rgba(128,192,255,0.3); }
.scn-all-weep .wine-cup { position:absolute; bottom:20%; left:40%; width:12px; height:16px; background: linear-gradient(180deg, #b09070 0%, #806050 100%); border-radius: 0 0 40% 40%; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); animation: aw-cup 5s ease-in-out infinite; }
@keyframes aw-window { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes aw-bow { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes aw-tear { 0% { opacity:0.8; transform: translateY(0) } 50% { opacity:1; transform: translateY(6px) } 100% { opacity:0.8; transform: translateY(0) } }
@keyframes aw-cup { 0%,100% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(2px, -1px) rotate(2deg) } }

.scn-menelaus-compliments { background: linear-gradient(180deg, #f5e8d0 0%, #e0c8a8 50%, #c8a880 100%), radial-gradient(ellipse at 70% 30%, #fff0c0 0%, transparent 70%); }
.scn-menelaus-compliments .wall { position:absolute; inset:15% 5% 5% 5%; background: linear-gradient(180deg, #e8d0b0 0%, #d0b898 100%); border-radius: 20px; box-shadow: inset 0 0 60px rgba(0,0,0,0.05); }
.scn-menelaus-compliments .table { position:absolute; bottom:15%; left:5%; right:5%; height:10%; background: linear-gradient(180deg, #9a7a6a 0%, #7a5a4a 100%); border-radius: 30% / 50%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }
.scn-menelaus-compliments .figure-m { position:absolute; bottom:25%; left:30%; width:24px; height:44px; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-gesture 6s ease-in-out infinite; }
.scn-menelaus-compliments .figure-t { position:absolute; bottom:25%; left:60%; width:20px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: mc-nod 9s ease-in-out infinite alternate; }
.scn-menelaus-compliments .wine-cup { position:absolute; bottom:15%; left:45%; width:14px; height:18px; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 0 0 50% 50%; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); animation: mc-cup 4s ease-in-out infinite; }
.scn-menelaus-compliments .plate { position:absolute; bottom:18%; left:55%; width:24px; height:8px; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: mc-plate 7s ease-in-out infinite; }
.scn-menelaus-compliments .lamp { position:absolute; top:10%; left:50%; width:20px; height:30px; background: radial-gradient(circle, #ffe080 0%, #c88020 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 10px #ffc040; animation: mc-lamp 5s ease-in-out infinite alternate; }
@keyframes mc-gesture { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-5px) rotate(5deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-3px) rotate(4deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes mc-nod { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mc-cup { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(3px, -2px) rotate(3deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes mc-plate { 0% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-1px) } 100% { transform: scale(1) } }
@keyframes mc-lamp { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.9; transform: scale(1) } }

.scn-helen-drugs-wine { background: linear-gradient(180deg, #f0e0c8 0%, #e0c8a8 50%, #d0b090 100%), radial-gradient(ellipse at 50% 20%, #fff0d0 0%, transparent 60%); }
.scn-helen-drugs-wine .wall { position:absolute; inset:12% 8% 8% 8%; background: linear-gradient(135deg, #e8d0b0 0%, #d4b890 100%); border-radius: 15px; box-shadow: inset 0 0 50px rgba(0,0,0,0.06); }
.scn-helen-drugs-wine .table { position:absolute; bottom:18%; left:5%; right:5%; height:12%; background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%); border-radius: 40% / 60%; box-shadow: 0 10px 20px rgba(0,0,0,0.25); }
.scn-helen-drugs-wine .figure-helen { position:absolute; bottom:30%; left:55%; width:22px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hdw-pour 8s ease-in-out infinite; }
.scn-helen-drugs-wine .wine-cup { position:absolute; bottom:20%; left:50%; width:16px; height:20px; background: linear-gradient(180deg, #b09070 0%, #906050 100%); border-radius: 0 0 50% 50%; clip-path: polygon(5% 0, 95% 0, 100% 100%, 0 100%); animation: hdw-cup 4s ease-in-out infinite; }
.scn-helen-drugs-wine .wine-bowl { position:absolute; bottom:28%; left:64%; width:20px; height:16px; background: radial-gradient(circle at 50% 30%, #884466 0%, #552244 100%); border-radius: 50%; box-shadow: 0 0 12px rgba(136,68,102,0.5); animation: hdw-bowl 6s ease-in-out infinite alternate; }
.scn-helen-drugs-wine .herb { position:absolute; bottom:32%; left:60%; width:6px; height:6px; background: radial-gradient(circle, #70a860 0%, #408030 100%); border-radius: 50%; animation: hdw-herb 3s ease-in-out infinite; }
.scn-helen-drugs-wine .lamp { position:absolute; top:8%; left:40%; width:18px; height:28px; background: radial-gradient(circle, #ffe080 0%, #c08020 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 50px 12px #ffc040; animation: hdw-lamp 7s ease-in-out infinite alternate; }
@keyframes hdw-pour { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes hdw-cup { 0%,100% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(4px, -2px) rotate(4deg) } }
@keyframes hdw-bowl { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes hdw-herb { 0% { opacity:0.6; transform: translateY(0) } 50% { opacity:1; transform: translateY(-3px) } 100% { opacity:0.6; transform: translateY(0) } }
@keyframes hdw-lamp { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.08) } 100% { opacity:0.9; transform: scale(1) } }

.scn-menelaus-tells-story { background: linear-gradient(180deg, #f2e0c8 0%, #e0c8a8 50%, #ccb090 100%), radial-gradient(ellipse at 60% 25%, #fff0c0 0%, transparent 65%); }
.scn-menelaus-tells-story .wall { position:absolute; inset:18% 6% 6% 6%; background: linear-gradient(180deg, #e8d0b0 0%, #d0b898 100%); border-radius: 18px; box-shadow: inset 0 0 50px rgba(0,0,0,0.05); }
.scn-menelaus-tells-story .window { position:absolute; top:12%; left:8%; width:35%; height:35%; background: radial-gradient(circle at 40% 40%, #f0e8d8 0%, #d0b898 100%); border-radius: 6px; box-shadow: 0 0 40px rgba(255,255,200,0.25); animation: mt-window 10s ease-in-out infinite alternate; }
.scn-menelaus-tells-story .table { position:absolute; bottom:14%; left:3%; right:3%; height:9%; background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%); border-radius: 30% / 50%; box-shadow: 0 6px 14px rgba(0,0,0,0.3); }
.scn-menelaus-tells-story .figure-m { position:absolute; bottom:23%; left:20%; width:24px; height:44px; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mt-gesture 8s ease-in-out infinite; }
.scn-menelaus-tells-story .figure-p { position:absolute; bottom:23%; left:55%; width:20px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: mt-listen 11s ease-in-out infinite alternate; }
.scn-menelaus-tells-story .figure-t { position:absolute; bottom:23%; left:75%; width:18px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: mt-listen 13s ease-in-out infinite alternate-reverse; }
.scn-menelaus-tells-story .wine-cup { position:absolute; bottom:16%; left:42%; width:14px; height:18px; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 0 0 50% 50%; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); animation: mt-cup 5s ease-in-out infinite; }
.scn-menelaus-tells-story .plate { position:absolute; bottom:18%; left:70%; width:22px; height:7px; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: mt-plate 6s ease-in-out infinite; }
@keyframes mt-window { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mt-gesture { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-6px) rotate(6deg) } 50% { transform: translateY(0) rotate(-3deg) } 75% { transform: translateY(-4px) rotate(5deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes mt-listen { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mt-cup { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(2px, -2px) rotate(2deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes mt-plate { 0% { transform: scale(1) } 50% { transform: scale(1.03) translateY(-1px) } 100% { transform: scale(1) } }

.scn-ulysses-names-himself {
  background: 
    linear-gradient(180deg, #1a0e08 0%, #3a2010 50%, #2a1a0a 100%),
    radial-gradient(ellipse 80% 40% at 50% 100%, #c06020 0%, #4a2a10 60%, transparent 80%);
}

.scn-ulysses-names-himself .fire-light {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 100%, rgba(255,160,64,0.3) 0%, transparent 60%);
  animation: ul-firelight 8s ease-in-out infinite alternate;
}

.scn-ulysses-names-himself .fire-pit {
  position: absolute;
  bottom: 20%;
  left: 45%;
  width: 80px;
  height: 30px;
  background: radial-gradient(ellipse, #603010 0%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px #ff8040;
  animation: ul-firepit 6s ease-in-out infinite;
}

.scn-ulysses-names-himself .flame-1 {
  position: absolute;
  bottom: calc(20% + 30px);
  left: 48%;
  width: 40px;
  height: 60px;
  background: linear-gradient(180deg, #ffa040 0%, #c06020 50%, transparent 100%);
  border-radius: 50%;
  transform: scaleY(1.5) scaleX(0.6);
  transform-origin: bottom center;
  animation: ul-flame1 1s ease-in-out infinite alternate;
}

.scn-ulysses-names-himself .flame-2 {
  position: absolute;
  bottom: calc(20% + 20px);
  left: 44%;
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #ffa040 0%, #c06020 50%, transparent 100%);
  border-radius: 50%;
  transform: scaleY(1.3) scaleX(0.7);
  transform-origin: bottom center;
  animation: ul-flame2 1.2s ease-in-out infinite alternate;
}

.scn-ulysses-names-himself .figure {
  position: absolute;
  left: 50%;
  bottom: 24%;
  width: 44px;
  height: 90px;
  transform: translateX(-50%);
  background: #1a0e08;
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  box-shadow: -2px 0 8px rgba(255,160,64,0.4);
  animation: ul-figure 12s ease-in-out infinite;
}

.scn-ulysses-names-himself .shadow {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 120px;
  height: 10px;
  background: #0a0503;
  border-radius: 50%;
  filter: blur(4px);
  opacity: 0.6;
  animation: ul-shadow 12s ease-in-out infinite;
}

.scn-ulysses-names-himself .ember-1 {
  position: absolute;
  bottom: 50%;
  left: 30%;
  width: 6px;
  height: 6px;
  background: #ff8030;
  border-radius: 50%;
  box-shadow: 0 0 6px #ff8030;
  animation: ul-ember1 4s linear infinite;
}

.scn-ulysses-names-himself .ember-2 {
  position: absolute;
  bottom: 60%;
  left: 60%;
  width: 5px;
  height: 5px;
  background: #ff8030;
  border-radius: 50%;
  box-shadow: 0 0 5px #ff8030;
  animation: ul-ember2 5s linear infinite reverse;
}

@keyframes ul-firelight {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

@keyframes ul-firepit {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(0.95); }
}

@keyframes ul-flame1 {
  0% { transform: scaleY(1.5) scaleX(0.6) translateY(0); }
  50% { transform: scaleY(1.8) scaleX(0.5) translateY(-5px); }
  100% { transform: scaleY(1.4) scaleX(0.7) translateY(2px); }
}

@keyframes ul-flame2 {
  0% { transform: scaleY(1.3) scaleX(0.7) translateY(0); }
  50% { transform: scaleY(1.6) scaleX(0.6) translateY(-3px); }
  100% { transform: scaleY(1.2) scaleX(0.8) translateY(1px); }
}

@keyframes ul-figure {
  0% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-4px); }
  100% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
}

@keyframes ul-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.1); opacity: 0.5; }
  100% { transform: scaleX(0.9); opacity: 0.7; }
}

@keyframes ul-ember1 {
  0% { transform: translate(0,0) scale(1); opacity: 0.8; }
  50% { transform: translate(10px,-20px) scale(0.6); opacity: 0.4; }
  100% { transform: translate(20px,-40px) scale(0.2); opacity: 0; }
}

@keyframes ul-ember2 {
  0% { transform: translate(0,0) scale(0.2); opacity: 0; }
  50% { transform: translate(-15px,-30px) scale(0.8); opacity: 0.6; }
  100% { transform: translate(-30px,-60px) scale(0.1); opacity: 0; }
}

/* minerva-leads */
.scn-minerva-leads { background: linear-gradient(180deg, #fad6a5 0%, #f7c59f 30%, #d4a373 60%, #8d6e63 100%), radial-gradient(ellipse at 50% 0%, #ffe0b2 0%, transparent 60%); }
.scn-minerva-leads .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffcc80 0%, #f8b878 40%, #e8a87c 70%, #b8a090 100%); animation: ml-sky 20s ease-in-out infinite alternate; }
.scn-minerva-leads .sun-glow { position:absolute; top:15%; left:50%; width:120px; height:120px; transform:translate(-50%,0); background: radial-gradient(circle, #fff5e0 0%, #ffd699 30%, #f8b878 60%, transparent 80%); border-radius:50%; animation: ml-sun 12s ease-in-out infinite alternate; }
.scn-minerva-leads .distant-city { position:absolute; bottom:35%; left:15%; right:20%; height:30%; background: linear-gradient(180deg, #c8a882 0%, #a0876f 100%); border-radius: 10% 10% 0 0; clip-path: polygon(5% 100%, 8% 70%, 15% 75%, 20% 60%, 28% 65%, 35% 55%, 42% 60%, 48% 50%, 55% 55%, 62% 45%, 70% 50%, 78% 40%, 85% 48%, 92% 35%, 95% 50%, 100% 100%); animation: ml-city 8s ease-in-out infinite alternate; }
.scn-minerva-leads .path { position:absolute; bottom:15%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #b89a7a 0%, #927a60 100%); border-radius: 30% 30% 5% 5% / 50% 50% 10% 10%; box-shadow: inset 0 4px 12px rgba(0,0,0,0.3); animation: ml-path 6s ease-in-out infinite; }
.scn-minerva-leads .figure-minerva { position:absolute; bottom:30%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #f2c9b3 0%, #c89a7a 40%, #7a5a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ml-walk-a 4s ease-in-out infinite; }
.scn-minerva-leads .figure-telemachus { position:absolute; bottom:30%; left:25%; width:18px; height:46px; background: linear-gradient(180deg, #d4b0a0 0%, #a08070 50%, #604040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ml-walk-b 4.5s ease-in-out infinite; }
.scn-minerva-leads .bird-a { position:absolute; top:10%; left:20%; width:30px; height:12px; background: #5a4a3a; border-radius: 50% 50% 0 0; filter: blur(1px); animation: ml-bird 30s linear infinite; }
.scn-minerva-leads .bird-b { position:absolute; top:16%; left:60%; width:22px; height:10px; background: #4a3a2a; border-radius: 50% 50% 0 0; filter: blur(1px); animation: ml-bird 25s linear infinite reverse; animation-delay: -10s; }
@keyframes ml-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ml-sun { 0% { transform:translate(-50%,-5px) scale(0.98); opacity:0.9 } 50% { transform:translate(-50%,0) scale(1.02); opacity:1 } 100% { transform:translate(-50%,-3px) scale(0.99); opacity:0.95 } }
@keyframes ml-city { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes ml-path { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ml-walk-a { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes ml-walk-b { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(6px) rotate(1deg) } 75% { transform: translateX(9px) rotate(-1deg) } 100% { transform: translateX(12px) rotate(0) } }
@keyframes ml-bird { 0% { transform: translateX(-40px) translateY(0) } 50% { transform: translateX(50vw) translateY(-15px) } 100% { transform: translateX(110vw) translateY(0) } }

/* telemachus-hesitates */
.scn-telemachus-hesitates { background: linear-gradient(180deg, #bcaaa4 0%, #8d6e63 40%, #5d4037 100%), radial-gradient(ellipse at 50% 100%, #6d4c41 0%, transparent 70%); }
.scn-telemachus-hesitates .dawn-mist { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #e8d5c4 0%, #d7b8a0 40%, #bcaaa4 100%); opacity:0.6; animation: th-mist 15s ease-in-out infinite alternate; }
.scn-telemachus-hesitates .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8d6e63 0%, #5d4037 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.4); }
.scn-telemachus-hesitates .figure-mentor { position:absolute; bottom:28%; left:55%; width:22px; height:54px; background: linear-gradient(180deg, #f8e0d0 0%, #c8a890 50%, #7a5a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: th-stand 6s ease-in-out infinite; }
.scn-telemachus-hesitates .figure-telemachus-h { position:absolute; bottom:28%; left:40%; width:18px; height:46px; background: linear-gradient(180deg, #d4b0a0 0%, #a08070 50%, #604040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: th-hesitate 4s ease-in-out infinite; }
.scn-telemachus-hesitates .shadow { position:absolute; bottom:28%; left:35%; width:40px; height:8px; background: rgba(0,0,0,0.2); border-radius:50%; filter:blur(3px); animation: th-shadow 4s ease-in-out infinite; }
.scn-telemachus-hesitates .leaf-a { position:absolute; top:20%; left:10%; width:12px; height:8px; background: #6d8a5a; border-radius: 50% 0 50% 0; filter: blur(1px); animation: th-leaf 8s linear infinite; }
.scn-telemachus-hesitates .leaf-b { position:absolute; top:30%; left:80%; width:10px; height:6px; background: #7a9a68; border-radius: 0 50% 0 50%; filter: blur(1px); animation: th-leaf 10s linear infinite reverse; animation-delay: -3s; }
@keyframes th-mist { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes th-stand { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes th-hesitate { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes th-shadow { 0%,100% { transform: scale(1) } 50% { transform: scale(1.2) translateX(-5px) } }
@keyframes th-leaf { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(20px) rotate(180deg) } 100% { transform: translateY(40px) rotate(360deg) } }

/* meeting-nestor */
.scn-meeting-nestor { background: linear-gradient(180deg, #fce4ec 0%, #fff3e0 30%, #ffe0b2 60%, #ffcc80 100%), radial-gradient(ellipse at 50% 0%, #fff3e0 0%, transparent 50%); }
.scn-meeting-nestor .sunlit-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fff9c4 0%, #ffe082 50%, #ffcc80 100%); animation: mn-sunlight 12s ease-in-out infinite alternate; }
.scn-meeting-nestor .table { position:absolute; bottom:15%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #bcaaa4 0%, #8d6e63 100%); border-radius: 5% 5% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: mn-table 8s ease-in-out infinite; }
.scn-meeting-nestor .figure-nestor { position:absolute; bottom:25%; left:30%; width:35px; height:60px; background: linear-gradient(180deg, #e0c8b0 0%, #b09580 50%, #7a5a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mn-seated 7s ease-in-out infinite; }
.scn-meeting-nestor .figure-son-left { position:absolute; bottom:25%; left:18%; width:18px; height:45px; background: linear-gradient(180deg, #d4b0a0 0%, #a08070 50%, #604040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mn-son 5s ease-in-out infinite; }
.scn-meeting-nestor .figure-son-right { position:absolute; bottom:25%; left:48%; width:18px; height:45px; background: linear-gradient(180deg, #d4b0a0 0%, #a08070 50%, #604040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mn-son 5.5s ease-in-out infinite; }
.scn-meeting-nestor .dish { position:absolute; bottom:22%; left:38%; width:40px; height:12px; background: #cc9a7a; border-radius: 10% 10% 5% 5% / 50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: mn-dish 6s ease-in-out infinite; }
.scn-meeting-nestor .wine-cup { position:absolute; bottom:23%; left:42%; width:12px; height:16px; background: radial-gradient(circle at 50% 30%, #f8d68a 0%, #b8860b 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: mn-cup 4s ease-in-out infinite; }
.scn-meeting-nestor .pillar-left { position:absolute; top:0; left:10%; width:8px; height:100%; background: linear-gradient(180deg, #e0c8b0 0%, #b09580 100%); border-radius: 4px; animation: mn-pillar 20s ease-in-out infinite alternate; }
.scn-meeting-nestor .pillar-right { position:absolute; top:0; right:10%; width:8px; height:100%; background: linear-gradient(180deg, #e0c8b0 0%, #b09580 100%); border-radius: 4px; animation: mn-pillar 20s ease-in-out infinite alternate; animation-delay: -10s; }
@keyframes mn-sunlight { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes mn-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes mn-seated { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes mn-son { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mn-dish { 0%,100% { transform: scale(1) } 50% { transform: scale(1.03) } }
@keyframes mn-cup { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(5deg) } }
@keyframes mn-pillar { 0% { background-position: 0 0; } 50% { background-position: 0 100%; } 100% { background-position: 0 0; } }

/* hospitality */
.scn-hospitality { background: linear-gradient(180deg, #5d4037 0%, #4e342e 40%, #3e2723 100%), radial-gradient(ellipse at 50% 60%, #8d6e63 0%, transparent 60%); }
.scn-hospitality .altar-bg { position:absolute; inset:20% 10% 10% 10%; background: linear-gradient(180deg, #6d4c41 0%, #4e342e 100%); border-radius: 5% 5% 10% 10%; box-shadow: inset 0 4px 12px rgba(0,0,0,0.5), 0 8px 16px rgba(0,0,0,0.3); }
.scn-hospitality .fire { position:absolute; bottom:25%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: radial-gradient(circle at bottom, #ff8a50 0%, #ff6f00 40%, #bf360c 80%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: hp-fire 3s ease-in-out infinite alternate; }
.scn-hospitality .hand-holding-cup { position:absolute; bottom:30%; left:55%; width:15px; height:30px; background: linear-gradient(180deg, #f2c9b3 0%, #c89a7a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hp-hand 5s ease-in-out infinite; }
.scn-hospitality .wine-stream { position:absolute; bottom:38%; left:56%; width:4px; height:20px; background: linear-gradient(180deg, #c62828 0%, #8e1a1a 100%); border-radius: 2px; filter: blur(1px); animation: hp-pour 4s ease-in-out infinite; }
.scn-hospitality .golden-cup { position:absolute; bottom:28%; left:55%; width:14px; height:18px; background: radial-gradient(circle at 50% 30%, #ffd54f 0%, #f9a825 60%, #bf360c 100%); border-radius: 30% 30% 15% 15% / 50% 50% 25% 25%; box-shadow: 0 0 8px 2px rgba(255,215,0,0.4); animation: hp-cup 4s ease-in-out infinite; }
.scn-hospitality .offering-plate { position:absolute; bottom:22%; left:42%; width:40px; height:8px; background: linear-gradient(180deg, #8d6e63 0%, #5d4037 100%); border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: hp-plate 6s ease-in-out infinite; }
.scn-hospitality .smoke { position:absolute; bottom:50%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,255,255,0.15) 0%, transparent 70%); border-radius: 50%; filter: blur(5px); animation: hp-smoke 8s ease-in-out infinite; opacity:0; }
@keyframes hp-fire { 0% { transform:translateX(-50%) scale(1) rotate(0deg); opacity:0.8 } 50% { transform:translateX(-50%) scale(1.1) rotate(2deg); opacity:1 } 100% { transform:translateX(-50%) scale(1) rotate(-1deg); opacity:0.9 } }
@keyframes hp-hand { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes hp-pour { 0% { transform: scaleY(1); opacity:0.8 } 50% { transform: scaleY(1.3); opacity:1 } 100% { transform: scaleY(1); opacity:0.9 } }
@keyframes hp-cup { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(3deg) } }
@keyframes hp-plate { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes hp-smoke { 0% { opacity:0; transform: translateX(-50%) translateY(0) scale(0.8) } 50% { opacity:0.3; transform: translateX(-50%) translateY(-20px) scale(1.2) } 100% { opacity:0; transform: translateX(-50%) translateY(-40px) scale(1.5) } }

/* SCENE 1: night-in-ithaca — calm, moonlit interior */
.scn-night-in-ithaca {
  background: linear-gradient(180deg, #0c0c2e 0%, #1a1a4e 40%, #2a2a5e 100%),
              radial-gradient(ellipse at 50% 0%, #3a3a7e 0%, transparent 60%);
}
.scn-night-in-ithaca .sky-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a2a 0%, #151545 50%, #1e1e5e 100%); animation: ni-sky 12s ease-in-out infinite alternate; }
.scn-night-in-ithaca .tower-wall { position:absolute; top:5%; left:8%; right:8%; bottom:8%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 60%, #0e0e1e 100%); border-radius:4px; box-shadow:inset 0 0 30px rgba(0,0,0,.6); }
.scn-night-in-ithaca .window-arch { position:absolute; top:12%; left:50%; width:120px; height:180px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #2a3a6e 0%, #0a0a2e 100%); border-radius:50% 50% 30% 30% / 40% 40% 60% 60%; box-shadow:inset 0 0 40px rgba(100,140,255,.15); }
.scn-night-in-ithaca .moonbeam { position:absolute; top:10%; left:50%; width:80px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(200,220,255,.35) 0%, rgba(200,220,255,.1) 40%, transparent 100%); border-radius:50%; filter:blur(12px); animation: ni-moon 8s ease-in-out infinite alternate; }
.scn-night-in-ithaca .bed-frame { position:absolute; bottom:18%; left:12%; right:60%; height:50px; background: linear-gradient(180deg, #3a2a1e 0%, #2a1a0e 100%); border-radius:6px; box-shadow:0 4px 8px rgba(0,0,0,.4); }
.scn-night-in-ithaca .figure-brooding { position:absolute; bottom:18%; left:16%; width:30px; height:52px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 60%, #06060e 100%); border-radius:40% 40% 50% 50% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ni-figure 6s ease-in-out infinite alternate; }
.scn-night-in-ithaca .euryclea-shadow { position:absolute; bottom:10%; right:14%; width:24px; height:48px; background: linear-gradient(180deg, rgba(20,20,30,.6) 0%, rgba(10,10,20,.8) 100%); border-radius:30% 30% 40% 40%; filter:blur(3px); animation: ni-shadow 9s ease-in-out infinite; }
@keyframes ni-sky { 0% { opacity:.7; transform:scaleY(1); } 50% { opacity:.9; transform:scaleY(1.02); } 100% { opacity:.75; transform:scaleY(.98); } }
@keyframes ni-moon { 0% { opacity:.3; transform:translateX(-50%) scaleY(1); } 50% { opacity:.6; transform:translateX(-50%) scaleY(1.05) rotate(2deg); } 100% { opacity:.4; transform:translateX(-50%) scaleY(.95) rotate(-1deg); } }
@keyframes ni-figure { 0% { transform:translateX(0) translateY(0) rotate(-2deg); } 50% { transform:translateX(3px) translateY(-2px) rotate(0); } 100% { transform:translateX(-2px) translateY(1px) rotate(1deg); } }
@keyframes ni-shadow { 0% { opacity:.3; transform:translateX(0); } 50% { opacity:.6; transform:translateX(-4px) scaleX(.95); } 100% { opacity:.35; transform:translateX(2px) scaleX(1.02); } }

/* SCENE 2: telemachus-plans — determined, moonlit close-up */
.scn-telemachus-plans {
  background: linear-gradient(180deg, #0a0a1e 0%, #12123a 40%, #1a1a4e 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a6e 0%, transparent 70%);
}
.scn-telemachus-plans .chamber-dark { position:absolute; inset:5%; background: linear-gradient(180deg, #0e0e22 0%, #18183a 60%, #0c0c1e 100%); border-radius:6px; box-shadow:inset 0 0 40px rgba(0,0,0,.7); }
.scn-telemachus-plans .moon-streak { position:absolute; top:2%; left:40%; right:40%; height:50%; background: linear-gradient(180deg, rgba(180,200,255,.25) 0%, rgba(180,200,255,.05) 60%, transparent 100%); filter:blur(8px); animation: tp-streak 7s ease-in-out infinite alternate; }
.scn-telemachus-plans .fleece-cover { position:absolute; bottom:10%; left:20%; right:20%; height:45px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 60%, #3a2a0e 100%); border-radius:30% 30% 20% 20%; box-shadow:0 4px 12px rgba(0,0,0,.5); animation: tp-fleece 5s ease-in-out infinite; }
.scn-telemachus-plans .figure-lying { position:absolute; bottom:10%; left:25%; right:25%; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%); border-radius:20% 20% 40% 40% / 60% 60% 20% 20%; transform-origin: bottom center; animation: tp-lying 4s ease-in-out infinite alternate; }
.scn-telemachus-plans .pillow-form { position:absolute; bottom:38%; left:35%; width:18px; height:12px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.3); }
.scn-telemachus-plans .thought-ripple { position:absolute; top:20%; left:46%; width:20px; height:20px; background: radial-gradient(circle, rgba(180,200,255,.2) 0%, transparent 70%); border-radius:50%; animation: tp-thought 6s ease-in-out infinite; }
.scn-telemachus-plans .shadow-cross { position:absolute; bottom:0; left:30%; right:30%; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); filter:blur(4px); }
@keyframes tp-streak { 0% { opacity:.2; transform:rotate(-2deg); } 50% { opacity:.5; transform:rotate(1deg) scaleX(1.05); } 100% { opacity:.3; transform:rotate(0) scaleX(.95); } }
@keyframes tp-fleece { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-3px) scale(1.02); } 100% { transform:translateY(1px) scale(.98); } }
@keyframes tp-lying { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-2px) rotate(3deg) scaleX(1.01); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes tp-thought { 0% { opacity:.1; transform:scale(.5); } 50% { opacity:.4; transform:scale(1.8) translate(5px, -5px); } 100% { opacity:.15; transform:scale(.6) translate(-3px, 3px); } }

/* SCENE 3: dawn-in-ithaca — calm, dawn, warm pinks/golds */
.scn-dawn-in-ithaca {
  background: linear-gradient(180deg, #4a3a5e 0%, #8a5a4a 20%, #d09850 40%, #e8c080 55%, #f0d8a0 70%, #d0b878 85%, #a08050 100%),
              radial-gradient(ellipse at 50% 0%, #f0d8a0 0%, transparent 60%);
}
.scn-dawn-in-ithaca .dawn-sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #4a3a5e 0%, #8a5a4a 30%, #d09850 50%, #f0d8a0 80%); animation: di-sky 14s ease-in-out infinite alternate; }
.scn-dawn-in-ithaca .horizon-glow { position:absolute; bottom:55%; left:0; right:0; height:25%; background: linear-gradient(180deg, transparent 0%, rgba(240,200,100,.6) 50%, rgba(240,200,100,.2) 100%); filter:blur(12px); animation: di-glow 10s ease-in-out infinite alternate; }
.scn-dawn-in-ithaca .tower-interior { position:absolute; top:5%; left:10%; right:10%; bottom:5%; background: linear-gradient(180deg, #3a2a3e 0%, #5a3a3e 60%, #3a2a2e 100%); border-radius:8px; box-shadow:inset 0 0 30px rgba(0,0,0,.4); }
.scn-dawn-in-ithaca .figure-standing { position:absolute; bottom:20%; left:50%; width:34px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 60%, #06060e 100%); border-radius:30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: di-figure 5s ease-in-out infinite; }
.scn-dawn-in-ithaca .sword-belt { position:absolute; bottom:37%; left:50%; width:10px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.4); }
.scn-dawn-in-ithaca .sandal-clasp { position:absolute; bottom:18%; left:44%; right:44%; height:6px; background: linear-gradient(90deg, #4a3a1a 0%, #6a5a3a 50%, #4a3a1a 100%); border-radius:2px; }
.scn-dawn-in-ithaca .door-opening { position:absolute; bottom:0; left:35%; right:35%; height:40px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:4px 4px 0 0; box-shadow:0 -4px 12px rgba(0,0,0,.5); }
.scn-dawn-in-ithaca .gold-dust { position:absolute; top:12%; left:30%; right:30%; height:100px; background: radial-gradient(ellipse at 50% 0%, rgba(240,200,80,.15) 0%, transparent 70%); filter:blur(10px); animation: di-dust 8s ease-in-out infinite alternate; }
@keyframes di-sky { 0% { opacity:.7; transform:scaleY(.98); } 50% { opacity:1; transform:scaleY(1.02); } 100% { opacity:.8; transform:scaleY(1); } }
@keyframes di-glow { 0% { opacity:.4; transform:translateY(3px); } 50% { opacity:.8; transform:translateY(-2px) scaleY(1.1); } 100% { opacity:.5; transform:translateY(0) scaleY(1); } }
@keyframes di-figure { 0% { transform:translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform:translateX(-50%) translateY(-3px) rotate(0) scaleY(1.01); } 100% { transform:translateX(-50%) translateY(0) rotate(1deg); } }
@keyframes di-dust { 0% { opacity:.1; transform:scale(.9); } 50% { opacity:.3; transform:scale(1.2) rotate(3deg); } 100% { opacity:.15; transform:scale(1) rotate(-1deg); } }

/* SCENE 4: assembly-begins — calm, sunlit, exterior */
.scn-assembly-begins {
  background: linear-gradient(180deg, #4a7a9a 0%, #7ab0c0 30%, #a0d0d0 50%, #c0e0d0 70%, #d0c8a0 100%),
              radial-gradient(ellipse at 50% 0%, #a0d8e0 0%, transparent 60%);
}
.scn-assembly-begins .sunlit-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a7a9a 0%, #7ab0c0 40%, #a0d0d0 100%); animation: ab-sky 15s ease-in-out infinite alternate; }
.scn-assembly-begins .market-stoa { position:absolute; bottom:30%; left:8%; right:8%; height:50%; background: linear-gradient(180deg, #b0a088 0%, #908068 50%, #706050 100%); border-radius:6px 6px 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.3); }
.scn-assembly-begins .crowd-silhouettes { position:absolute; bottom:25%; left:15%; right:15%; height:40%; background: linear-gradient(180deg, rgba(20,20,30,.6) 0%, rgba(10,10,20,.8) 60%, rgba(5,5,15,.9) 100%); mask-image: radial-gradient(circle at 50% 20%, transparent 0%, black 70%); -webkit-mask-image: radial-gradient(circle at 50% 20%, transparent 0%, black 70%); animation: ab-crowd 8s ease-in-out infinite alternate; }
.scn-assembly-begins .speaker-aegyptius { position:absolute; bottom:25%; left:50%; width:28px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%); border-radius:30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ab-speaker 4s ease-in-out infinite; }
.scn-assembly-begins .speaker-staff { position:absolute; bottom:28%; left:52%; width:4px; height:50px; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius:2px; transform:rotate(-5deg); transform-origin: bottom center; animation: ab-staff 5s ease-in-out infinite; }
.scn-assembly-begins .sun-flare { position:absolute; top:5%; left:35%; right:35%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,.3) 0%, transparent 70%); filter:blur(15px); animation: ab-flare 9s ease-in-out infinite alternate; }
.scn-assembly-begins .ground-plane { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b0a080 0%, #908060 50%, #706050 100%); border-radius:0; }
.scn-assembly-begins .distant-hills { position:absolute; bottom:38%; left:0; right:0; height:15%; background: linear-gradient(180deg, #6a8a7a 0%, #4a6a5a 50%, #3a5a4a 100%); border-radius:40% 60% 0 0; filter:blur(3px); animation: ab-hills 18s ease-in-out infinite alternate; }
@keyframes ab-sky { 0% { opacity:.8; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.01); } 100% { opacity:.85; transform:scaleY(.99); } }
@keyframes ab-crowd { 0% { opacity:.4; transform:scaleY(.98); } 50% { opacity:.7; transform:scaleY(1.02); } 100% { opacity:.5; transform:scaleY(1); } }
@keyframes ab-speaker { 0% { transform:translateX(-50%) translateY(0) rotate(0); } 50% { transform:translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform:translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes ab-staff { 0% { transform:rotate(-5deg); } 50% { transform:rotate(-3deg) translateY(-1px); } 100% { transform:rotate(-6deg); } }
@keyframes ab-flare { 0% { opacity:.1; transform:scale(.9); } 50% { opacity:.4; transform:scale(1.1); } 100% { opacity:.2; transform:scale(1); } }
@keyframes ab-hills { 0% { transform:translateY(0); } 50% { transform:translateY(-3px) scaleY(1.02); } 100% { transform:translateY(0) scaleY(.98); } }

/* ---- jove-responds ---- */
.scn-jove-responds {
  background: linear-gradient(135deg, #2a1f1a 0%, #4a3a2a 40%, #6a5a4a 100%), radial-gradient(ellipse at 50% 70%, #8a7a6a 0%, transparent 60%);
}
.scn-jove-responds .chamber-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 60%, #1a1210 100%);
  animation: jv-ambient 12s ease-in-out infinite alternate;
}
.scn-jove-responds .throne {
  position:absolute; bottom:20%; left:50%; width:100px; height:80px; transform:translateX(-50%) scale(1.2);
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-jove-responds .figure-jove {
  position:absolute; bottom:25%; left:48%; width:40px; height:70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jv-figure-jove 6s ease-in-out infinite;
}
.scn-jove-responds .figure-minerva {
  position:absolute; bottom:26%; left:56%; width:36px; height:68px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jv-figure-minerva 8s ease-in-out infinite;
}
.scn-jove-responds .torch {
  position:absolute; bottom:30%; left:30%; width:6px; height:30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 20% 20% 40% 40%;
}
.scn-jove-responds .glow-torch {
  position:absolute; bottom:30%; left:30%; width:40px; height:40px;
  background: radial-gradient(circle, #ffd080 0%, #c09050 40%, transparent 70%);
  border-radius:50%; transform:translate(-50%, -50%);
  animation: jv-torch-glow 3s ease-in-out infinite alternate;
}
.scn-jove-responds .pillar-left {
  position:absolute; bottom:10%; left:10%; width:20px; height:80%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
}
.scn-jove-responds .pillar-right {
  position:absolute; bottom:10%; right:10%; width:20px; height:80%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
}
@keyframes jv-ambient {
  0% { opacity:0.8; transform:scale(1); }
  50% { opacity:1; transform:scale(1.02); }
  100% { opacity:0.85; transform:scale(1); }
}
@keyframes jv-figure-jove {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes jv-figure-minerva {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(3px) translateY(-2px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes jv-torch-glow {
  0% { opacity:0.7; transform:translate(-50%,-50%) scale(0.9); }
  50% { opacity:1; transform:translate(-50%,-50%) scale(1.1); }
  100% { opacity:0.75; transform:translate(-50%,-50%) scale(0.95); }
}

/* ---- minerva-plans ---- */
.scn-minerva-plans {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a44 30%, #3a3a5e 60%, #4a4a7a 100%), radial-gradient(ellipse at 50% 100%, #6a6a9a 0%, transparent 70%);
}
.scn-minerva-plans .hall-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%);
  border-radius: 0 0 50% 50% / 0 0 10% 10%;
}
.scn-minerva-plans .table {
  position:absolute; bottom:28%; left:50%; width:120px; height:18px; transform:translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-minerva-plans .scroll {
  position:absolute; bottom:30%; left:45%; width:30px; height:12px;
  background: linear-gradient(90deg, #b8a88a 0%, #d8c8a8 30%, #b8a88a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(10deg);
  animation: mp-scroll 10s ease-in-out infinite alternate;
}
.scn-minerva-plans .figure-minerva-plan {
  position:absolute; bottom:30%; left:42%; width:34px; height:65px;
  background: linear-gradient(180deg, #5a5a7a 0%, #3a3a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-figure-minerva 7s ease-in-out infinite;
}
.scn-minerva-plans .figure-zeus-plan {
  position:absolute; bottom:30%; left:54%; width:44px; height:72px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-figure-zeus 9s ease-in-out infinite;
}
.scn-minerva-plans .lamp {
  position:absolute; top:20%; left:50%; width:8px; height:20px;
  background: linear-gradient(180deg, #b08040 0%, #704020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #c09050;
  animation: mp-lamp 4s ease-in-out infinite alternate;
}
.scn-minerva-plans .shadow-cast {
  position:absolute; bottom:28%; left:30%; right:30%; height:20%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 50%, transparent 100%);
  filter: blur(6px);
  animation: mp-shadow 12s ease-in-out infinite alternate;
}
@keyframes mp-scroll {
  0% { transform: rotate(8deg) translateX(0); }
  50% { transform: rotate(12deg) translateX(2px); }
  100% { transform: rotate(8deg) translateX(0); }
}
@keyframes mp-figure-minerva {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-3deg); }
}
@keyframes mp-figure-zeus {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(1px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes mp-lamp {
  0% { opacity:0.8; box-shadow:0 0 16px 4px #c09050; }
  50% { opacity:1; box-shadow:0 0 28px 8px #d0a060; }
  100% { opacity:0.85; box-shadow:0 0 20px 5px #c09050; }
}
@keyframes mp-shadow {
  0% { transform: translateX(-5px); opacity:0.6; }
  50% { transform: translateX(0); opacity:0.8; }
  100% { transform: translateX(5px); opacity:0.6; }
}

/* ---- minerva-to-ithaca ---- */
.scn-minerva-to-ithaca {
  background: linear-gradient(180deg, #4a7a9a 0%, #7aacba 30%, #aad4e0 60%, #e0f0f8 100%), radial-gradient(ellipse at 50% 30%, #f0e8c0 0%, transparent 70%);
}
.scn-minerva-to-ithaca .sky-sun {
  position:absolute; top:0; left:0; right:0; height:100%;
  background: radial-gradient(circle at 70% 20%, #ffe080 0%, #ffd050 30%, transparent 60%);
  animation: mi-sun 20s ease-in-out infinite alternate;
}
.scn-minerva-to-ithaca .clouds-bg {
  position:absolute; top:10%; left:0; right:0; height:40%;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, transparent 100%);
  filter: blur(8px);
  animation: mi-clouds-bg 40s linear infinite;
}
.scn-minerva-to-ithaca .clouds-fg {
  position:absolute; top:20%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.2) 100%);
  filter: blur(4px);
  animation: mi-clouds-fg 30s linear infinite reverse;
}
.scn-minerva-to-ithaca .figure-minerva-flying {
  position:absolute; bottom:40%; left:30%; width:38px; height:60px;
  background: linear-gradient(180deg, #6a6a8a 0%, #4a4a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: mi-fly 6s ease-in-out infinite;
}
.scn-minerva-to-ithaca .spear {
  position:absolute; bottom:42%; left:33%; width:4px; height:50px;
  background: linear-gradient(180deg, #c0a060 0%, #806040 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(30deg);
  animation: mi-spear 6s ease-in-out infinite;
}
.scn-minerva-to-ithaca .sandals-glow {
  position:absolute; bottom:38%; left:28%; width:20px; height:10px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius:50%;
  animation: mi-sandals 3s ease-in-out infinite alternate;
}
.scn-minerva-to-ithaca .wind-lines {
  position:absolute; bottom:45%; left:0; right:0; height:20%;
  background: repeating-linear-gradient(90deg, rgba(255,255,255,0.1) 0px, rgba(255,255,255,0.1) 10px, transparent 10px, transparent 30px);
  animation: mi-wind 8s linear infinite;
}
@keyframes mi-sun {
  0% { opacity:0.8; transform:scale(0.95); }
  50% { opacity:1; transform:scale(1.02); }
  100% { opacity:0.85; transform:scale(1); }
}
@keyframes mi-clouds-bg {
  0% { transform: translateX(0); }
  100% { transform: translateX(-200px); }
}
@keyframes mi-clouds-fg {
  0% { transform: translateX(0); }
  100% { transform: translateX(150px); }
}
@keyframes mi-fly {
  0% { transform: rotate(18deg) translateY(0); }
  50% { transform: rotate(22deg) translateY(-5px); }
  100% { transform: rotate(18deg) translateY(0); }
}
@keyframes mi-spear {
  0%,100% { transform: rotate(28deg) translateY(0); }
  50% { transform: rotate(32deg) translateY(-2px); }
}
@keyframes mi-sandals {
  0% { opacity:0.6; transform: scale(0.9); }
  100% { opacity:1; transform: scale(1.2); }
}
@keyframes mi-wind {
  0% { background-position: 0 0; }
  100% { background-position: 100px 0; }
}

/* ---- suitors-at-play ---- */
.scn-suitors-at-play {
  background: linear-gradient(180deg, #c8b898 0%, #b8a888 30%, #a89878 60%, #988868 100%), radial-gradient(ellipse at 50% 100%, #d8c8a8 0%, transparent 70%);
}
.scn-suitors-at-play .courtyard-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #a89878 0%, #887858 100%);
  border-radius: 20% 20% 0 0;
}
.scn-suitors-at-play .colonnade {
  position:absolute; bottom:25%; left:0; right:0; height:20%;
  background: repeating-linear-gradient(90deg, #c8b898 0px, #c8b898 20px, transparent 20px, transparent 40px);
  mask-image: linear-gradient(180deg, black 0%, transparent 50%);
  -webkit-mask-image: linear-gradient(180deg, black 0%, transparent 50%);
}
.scn-suitors-at-play .table-game {
  position:absolute; bottom:30%; left:50%; width:100px; height:10px; transform:translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-suitors-at-play .board {
  position:absolute; bottom:31%; left:50%; width:50px; height:50px; transform:translateX(-50%) rotate(45deg);
  background: linear-gradient(135deg, #e0d0b0 0%, #c0b090 50%, #a09070 100%);
  border: 2px solid #8a7a6a;
  border-radius: 10%;
  animation: su-board 8s ease-in-out infinite alternate;
}
.scn-suitors-at-play .piece-white {
  position:absolute; bottom:34%; left:47%; width:8px; height:8px;
  background: radial-gradient(circle, #f0e8d0 0%, #d0c8b0 100%);
  border-radius:50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: su-piece 5s ease-in-out infinite;
}
.scn-suitors-at-play .piece-black {
  position:absolute; bottom:34%; left:53%; width:8px; height:8px;
  background: radial-gradient(circle, #3a2a1a 0%, #1a0a00 100%);
  border-radius:50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: su-piece 5s ease-in-out infinite 2.5s;
}
.scn-suitors-at-play .figure-suitor-1 {
  position:absolute; bottom:30%; left:34%; width:30px; height:64px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: su-figure-1 6s ease-in-out infinite;
}
.scn-suitors-at-play .figure-suitor-2 {
  position:absolute; bottom:30%; left:58%; width:30px; height:64px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: su-figure-2 7s ease-in-out infinite;
}
.scn-suitors-at-play .servant {
  position:absolute; bottom:26%; left:22%; width:24px; height:48px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: su-servant 9s ease-in-out infinite;
}
@keyframes su-board {
  0% { transform: translateX(-50%) rotate(44deg) scale(1); }
  50% { transform: translateX(-50%) rotate(46deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(44deg) scale(1); }
}
@keyframes su-piece {
  0% { transform: translate(0,0); }
  25% { transform: translate(2px, -2px); }
  50% { transform: translate(4px, 0); }
  75% { transform: translate(2px, 2px); }
  100% { transform: translate(0,0); }
}
@keyframes su-figure-1 {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes su-figure-2 {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(-2px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes su-servant {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(5px) scaleY(1.03); }
  100% { transform: translateX(0) scaleY(1); }
}

.scn-alcinous-gives {
  background:
    linear-gradient(180deg, #4a2a1a 0%, #3a2010 50%, #2a150a 100%),
    radial-gradient(ellipse at 50% 80%, #c8553d 0%, transparent 70%);
}
.scn-alcinous-gives .fire {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 60px;
  height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #ffaa00 0%, #cc5500 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: ag-fire 2s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-alcinous-gives .copper {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 50px;
  height: 40px;
  background: linear-gradient(180deg, #8b5a2b, #4a2a1a);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  animation: ag-copper 6s ease-in-out infinite;
}
.scn-alcinous-gives .chest {
  position: absolute;
  bottom: 12%;
  left: 55%;
  width: 70px;
  height: 45px;
  background: linear-gradient(180deg, #7a4a2a, #3a2010);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: ag-chest 4s ease-in-out infinite;
}
.scn-alcinous-gives .cloak {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 50px;
  height: 60px;
  background: linear-gradient(180deg, #a06850, #6a4030);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: ag-cloak 7s ease-in-out infinite alternate;
}
.scn-alcinous-gives .steam-a {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 30px;
  height: 50px;
  background: radial-gradient(ellipse, rgba(255,200,150,0.3), transparent);
  filter: blur(8px);
  border-radius: 50%;
  animation: ag-steam 4s ease-out infinite;
}
.scn-alcinous-gives .steam-b {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 20px;
  height: 40px;
  background: radial-gradient(ellipse, rgba(255,200,150,0.2), transparent);
  filter: blur(6px);
  border-radius: 50%;
  animation: ag-steam 5s ease-out infinite 1.5s;
}
@keyframes ag-fire {
  0% { transform: scaleY(0.9) scaleX(1) translateY(0); opacity:0.9; }
  50% { transform: scaleY(1.1) scaleX(0.95) translateY(-3px); opacity:1; }
  100% { transform: scaleY(0.95) scaleX(1.05) translateY(0); opacity:0.85; }
}
@keyframes ag-copper {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px) scale(1.01); }
}
@keyframes ag-chest {
  0%,100% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-2px) translateY(-1px); }
}
@keyframes ag-cloak {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg) scaleX(1.02); }
  100% { transform: rotate(-1deg); }
}
@keyframes ag-steam {
  0% { transform: translateY(0) scale(1); opacity:0.6; }
  50% { transform: translateY(-30px) scale(1.5); opacity:0.3; }
  100% { transform: translateY(-60px) scale(2); opacity:0; }
}

.scn-chest-fastened {
  background:
    linear-gradient(180deg, #3a1a0a 0%, #2a1005 50%, #1a0800 100%),
    radial-gradient(ellipse at 50% 70%, #a0461a 0%, transparent 80%);
}
.scn-chest-fastened .chest-body {
  position: absolute;
  bottom: 15%;
  left: 50%;
  width: 80px;
  height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a3a20, #3a1a0a);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,.7);
  animation: cf-body 10s ease-in-out infinite;
}
.scn-chest-fastened .lid {
  position: absolute;
  bottom: 43%;
  left: 50%;
  width: 84px;
  height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a4a2a, #4a2a10);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -2px 6px rgba(0,0,0,.5);
  animation: cf-lid 6s ease-in-out infinite alternate;
}
.scn-chest-fastened .rope-top {
  position: absolute;
  bottom: 38%;
  left: 50%;
  width: 60px;
  height: 4px;
  transform: translateX(-50%);
  background: #8b7355;
  border-radius: 2px;
  animation: cf-rope1 4s ease-in-out infinite;
}
.scn-chest-fastened .rope-bot {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 60px;
  height: 4px;
  transform: translateX(-50%);
  background: #8b7355;
  border-radius: 2px;
  animation: cf-rope2 4s ease-in-out infinite 0.5s;
}
.scn-chest-fastened .knot {
  position: absolute;
  bottom: 32%;
  left: 50%;
  width: 10px;
  height: 10px;
  transform: translateX(-50%);
  background: #a08050;
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,.5);
  animation: cf-knot 3s ease-in-out infinite;
}
.scn-chest-fastened .shadow {
  position: absolute;
  bottom: 10%;
  left: 42%;
  width: 70px;
  height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6), transparent);
  border-radius: 50%;
  animation: cf-shadow 8s ease-in-out infinite;
}
@keyframes cf-body {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
}
@keyframes cf-lid {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-1deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(1deg) translateY(-1px); }
}
@keyframes cf-rope1 {
  0%,100% { transform: translateX(-50%) scaleX(1); opacity:0.9; }
  50% { transform: translateX(-50%) scaleX(1.03); opacity:1; }
}
@keyframes cf-rope2 {
  0%,100% { transform: translateX(-50%) scaleX(1); opacity:0.9; }
  50% { transform: translateX(-50%) scaleX(0.97); opacity:1; }
}
@keyframes cf-knot {
  0%,100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.3) rotate(15deg); }
}
@keyframes cf-shadow {
  0%,100% { transform: scaleX(1); opacity:0.6; }
  50% { transform: scaleX(1.05); opacity:0.8; }
}

.scn-ulysses-fastens {
  background:
    linear-gradient(180deg, #3a2010 0%, #2a1508 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 50%, #c8553d 0%, transparent 70%);
}
.scn-ulysses-fastens .bath {
  position: absolute;
  bottom: 5%;
  left: 35%;
  width: 90px;
  height: 50px;
  background: linear-gradient(180deg, #5a3a2a, #2a1a0a);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  animation: uf-bath 8s ease-in-out infinite;
}
.scn-ulysses-fastens .steam {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 40px;
  height: 60px;
  background: radial-gradient(ellipse, rgba(255,200,150,0.3), transparent);
  filter: blur(12px);
  border-radius: 50%;
  animation: uf-steam 5s ease-out infinite;
}
.scn-ulysses-fastens .chest-uf {
  position: absolute;
  bottom: 15%;
  left: 60%;
  width: 60px;
  height: 40px;
  background: linear-gradient(180deg, #6a3a20, #3a1a0a);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: uf-chest 12s ease-in-out infinite;
}
.scn-ulysses-fastens .rope-uf {
  position: absolute;
  bottom: 30%;
  left: 62%;
  width: 50px;
  height: 4px;
  background: #8b7355;
  border-radius: 2px;
  transform-origin: left center;
  animation: uf-rope 4s ease-in-out infinite;
}
.scn-ulysses-fastens .figure-uf {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uf-figure 4s ease-in-out infinite;
}
.scn-ulysses-fastens .lantern-uf {
  position: absolute;
  bottom: 35%;
  left: 45%;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #ffd080, #b08040);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.5);
  animation: uf-lantern 3s ease-in-out infinite alternate;
}
@keyframes uf-bath {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px) scale(1.01); }
}
@keyframes uf-steam {
  0% { transform: translateY(0) scale(1); opacity:0.5; }
  50% { transform: translateY(-40px) scale(1.5); opacity:0.2; }
  100% { transform: translateY(-80px) scale(2); opacity:0; }
}
@keyframes uf-chest {
  0%,100% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-2px) translateY(-1px); }
}
@keyframes uf-rope {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(1.05) translateY(1px); }
}
@keyframes uf-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(5px) rotate(2deg) translateY(-2px); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes uf-lantern {
  0% { box-shadow: 0 0 20px 5px rgba(255,208,128,0.4); }
  100% { box-shadow: 0 0 40px 15px rgba(255,208,128,0.7); }
}

.scn-supper {
  background:
    linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 40%, #2a0e00 100%),
    radial-gradient(ellipse at 50% 70%, #c8553d 0%, transparent 80%);
}
.scn-supper .table {
  position: absolute;
  bottom: 15%;
  left: 50%;
  width: 140px;
  height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4020, #3a2010);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: sp-table 20s ease-in-out infinite;
}
.scn-supper .plate {
  position: absolute;
  bottom: 22%;
  left: 38%;
  width: 35px;
  height: 30px;
  background: radial-gradient(ellipse, #8b6a4a, #5a3a2a);
  border-radius: 50%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.3);
  animation: sp-plate 8s ease-in-out infinite;
}
.scn-supper .pork {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 12px;
  height: 8px;
  background: #a06030;
  border-radius: 40% 40% 30% 30%;
  animation: sp-pork 3s ease-in-out infinite;
}
.scn-supper .fire-sp {
  position: absolute;
  bottom: 18%;
  left: 65%;
  width: 50px;
  height: 70px;
  background: radial-gradient(ellipse at 50% 100%, #ff8800 0%, #cc4400 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: sp-fire 2s ease-in-out infinite alternate;
}
.scn-supper .bard {
  position: absolute;
  bottom: 12%;
  left: 30%;
  width: 25px;
  height: 60px;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sp-bard 5s ease-in-out infinite;
}
.scn-supper .ulysses-sp {
  position: absolute;
  bottom: 12%;
  left: 55%;
  width: 25px;
  height: 60px;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sp-ulysses 7s ease-in-out infinite;
}
@keyframes sp-table {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
}
@keyframes sp-plate {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(2deg) scale(1.02); }
}
@keyframes sp-pork {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.1); }
}
@keyframes sp-fire {
  0% { transform: scaleY(0.9) scaleX(1); opacity:0.9; }
  50% { transform: scaleY(1.15) scaleX(0.95) translateY(-3px); opacity:1; }
  100% { transform: scaleY(0.95) scaleX(1.05); opacity:0.85; }
}
@keyframes sp-bard {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sp-ulysses {
  0%,100% { transform: translateX(0); }
  50% { transform: translateX(-2px) rotate(1deg); }
}

.scn-nestor-reports {
  background: linear-gradient(180deg, #6b9fcb 0%, #c4d8e8 40%, #f5e6c8 70%), radial-gradient(ellipse at 50% 0%, #fef9e7 0%, transparent 60%);
}
.scn-nestor-reports .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #89b4d4 0%, #b2cfdf 50%, #dce8f0 100%);
  animation: nr-sky 12s ease-in-out infinite alternate;
}
.scn-nestor-reports .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a7a9a 0%, #2d5a7a 100%);
  animation: nr-sea 20s ease-in-out infinite alternate;
}
.scn-nestor-reports .distant-city {
  position: absolute; bottom: 45%; left: 10%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #c8b288 0%, #a88860 100%);
  clip-path: polygon(0% 100%, 0% 60%, 8% 50%, 8% 30%, 15% 30%, 15% 50%, 25% 40%, 25% 100%);
  opacity: 0.6;
}
.scn-nestor-reports .figure-nestor {
  position: absolute; bottom: 38%; left: 55%; width: 36px; height: 80px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nr-nestor 6s ease-in-out infinite;
}
.scn-nestor-reports .hand-gesture {
  position: absolute; bottom: 60%; left: 58%; width: 14px; height: 18px;
  background: #5a4a3a;
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-15deg);
  animation: nr-hand 4s ease-in-out infinite alternate;
}
.scn-nestor-reports .bird-a {
  position: absolute; top: 30%; left: 20%; width: 20px; height: 8px;
  background: #3a2a1a; border-radius: 50%;
  clip-path: polygon(0% 50%, 40% 0%, 60% 0%, 100% 50%, 60% 100%, 40% 100%);
  animation: nr-bird-a 25s linear infinite;
}
.scn-nestor-reports .bird-b {
  position: absolute; top: 28%; left: 40%; width: 16px; height: 6px;
  background: #4a3a2a; border-radius: 50%;
  clip-path: polygon(0% 50%, 40% 0%, 60% 0%, 100% 50%, 60% 100%, 40% 100%);
  animation: nr-bird-b 30s linear infinite;
  animation-delay: -8s;
}
.scn-nestor-reports .sun-glint {
  position: absolute; top: 15%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff7d6 0%, #f5d6a0 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: nr-sunglint 8s ease-in-out infinite alternate;
}
@keyframes nr-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes nr-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes nr-nestor { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nr-hand { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes nr-bird-a { 0% { transform: translateX(-40px) scale(0.8); } 25% { transform: translateX(20vw) scale(1); } 50% { transform: translateX(50vw) scale(0.9); } 75% { transform: translateX(80vw) scale(1.1); } 100% { transform: translateX(120vw) scale(0.8); } }
@keyframes nr-bird-b { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(30vw) scale(0.9); } 50% { transform: translateX(60vw) scale(1.1); } 75% { transform: translateX(90vw) scale(0.8); } 100% { transform: translateX(120vw) scale(1); } }
@keyframes nr-sunglint { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(1); } }

.scn-telemachus-replies {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4bca0 30%, #b09478 60%), radial-gradient(ellipse at 50% 20%, #fff7e6 0%, transparent 60%);
}
.scn-telemachus-replies .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #a08060 0%, #c8b088 50%, #a08060 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 0% 100%);
}
.scn-telemachus-replies .light-shaft {
  position: absolute; top: 0; left: 35%; width: 25%; bottom: 40%;
  background: linear-gradient(180deg, rgba(255,247,230,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: tr-shaft 8s ease-in-out infinite alternate;
}
.scn-telemachus-replies .figure-telemachus {
  position: absolute; bottom: 18%; left: 45%; width: 32px; height: 72px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-body 5s ease-in-out infinite;
}
.scn-telemachus-replies .arm-raised {
  position: absolute; bottom: 48%; left: 51%; width: 10px; height: 24px;
  background: #3a2a1a;
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom left;
  animation: tr-arm 4s ease-in-out infinite alternate;
}
.scn-telemachus-replies .cloak-folds {
  position: absolute; bottom: 18%; left: 43%; width: 28px; height: 40px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30%;
  filter: blur(2px);
  opacity: 0.7;
  animation: tr-cloak 6s ease-in-out infinite alternate;
}
.scn-telemachus-replies .shadow-ground {
  position: absolute; bottom: 0; left: 30%; width: 55%; height: 18%;
  background: radial-gradient(ellipse at 50% 0%, #5a4a3a 0%, transparent 70%);
  opacity: 0.3;
  filter: blur(4px);
}
.scn-telemachus-replies .dust-mote {
  position: absolute; width: 4px; height: 4px;
  background: rgba(200,180,140,0.8);
  border-radius: 50%;
}
.scn-telemachus-replies .mote-a {
  top: 25%; left: 30%;
  animation: tr-mote-a 15s linear infinite;
}
.scn-telemachus-replies .mote-b {
  top: 35%; left: 60%;
  animation: tr-mote-b 20s linear infinite;
  animation-delay: -7s;
}
@keyframes tr-shaft { 0% { opacity: 0.5; transform: skewX(-2deg); } 50% { opacity: 0.8; transform: skewX(0deg); } 100% { opacity: 0.6; transform: skewX(2deg); } }
@keyframes tr-body { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tr-arm { 0% { transform: rotate(-40deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-4px); } 100% { transform: rotate(-35deg) translateY(0); } }
@keyframes tr-cloak { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes tr-mote-a { 0% { transform: translateY(0) translateX(0) scale(1); } 25% { transform: translateY(-30px) translateX(10px) scale(1.5); } 50% { transform: translateY(-60px) translateX(5px) scale(0.8); } 75% { transform: translateY(-90px) translateX(15px) scale(1.2); } 100% { transform: translateY(-120px) translateX(0) scale(1); } }
@keyframes tr-mote-b { 0% { transform: translateY(0) translateX(0) scale(1); } 25% { transform: translateY(-20px) translateX(-10px) scale(0.8); } 50% { transform: translateY(-40px) translateX(5px) scale(1.3); } 75% { transform: translateY(-60px) translateX(-5px) scale(0.9); } 100% { transform: translateY(-80px) translateX(0) scale(1); } }

.scn-nestor-advises {
  background: linear-gradient(180deg, #d4a050 0%, #b88840 30%, #a07030 60%), radial-gradient(ellipse at 50% 30%, #f5c870 0%, transparent 50%);
}
.scn-nestor-advises .interior-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #8a6030 0%, #b88840 50%, #8a6030 100%);
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%);
}
.scn-nestor-advises .hearth-glow {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, #f5c870 0%, #d49040 40%, transparent 70%);
  transform: translateX(-50%);
  border-radius: 50%;
  filter: blur(12px);
  animation: na-hearth 6s ease-in-out infinite alternate;
}
.scn-nestor-advises .figure-nestor-seated {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: na-seated 8s ease-in-out infinite;
}
.scn-nestor-advises .arm-extended {
  position: absolute; bottom: 46%; left: 42%; width: 8px; height: 28px;
  background: #4a2a1a;
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom right;
  animation: na-arm 5s ease-in-out infinite alternate;
}
.scn-nestor-advises .table {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 6px;
  background: #6a4a2a;
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-nestor-advises .cup {
  position: absolute; bottom: 26%; left: 45%; width: 12px; height: 14px;
  background: radial-gradient(ellipse at 50% 30%, #c09050 0%, #906030 100%);
  border-radius: 20% 20% 30% 30%;
  animation: na-cup 4s ease-in-out infinite alternate;
}
.scn-nestor-advises .column-left {
  position: absolute; bottom: 0; left: 5%; width: 8px; height: 70%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 4px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.2);
}
.scn-nestor-advises .column-right {
  position: absolute; bottom: 0; right: 5%; width: 8px; height: 70%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 4px;
  box-shadow: -2px 0 4px rgba(0,0,0,0.2);
}
@keyframes na-hearth { 0% { opacity: 0.8; transform: translateX(-50%) scale(0.9); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.9; transform: translateX(-50%) scale(1); } }
@keyframes na-seated { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes na-arm { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes na-cup { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }

.scn-telemachus-doubts {
  background: linear-gradient(180deg, #5a6a7a 0%, #7a8a9a 30%, #9aacba 60%), radial-gradient(ellipse at 50% 20%, #b0c4d0 0%, transparent 50%);
}
.scn-telemachus-doubts .bg-shadow {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 0% 100%);
  opacity: 0.6;
}
.scn-telemachus-doubts .column-arch {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, #8a9aaa 0%, transparent 70%);
  clip-path: polygon(0% 100%, 0% 30%, 20% 30%, 20% 60%, 80% 60%, 80% 30%, 100% 30%, 100% 100%);
}
.scn-telemachus-doubts .figure-telemachus-downcast {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 70px;
  background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: td-figure 10s ease-in-out infinite;
}
.scn-telemachus-doubts .head-bowed {
  position: absolute; bottom: 54%; left: 50%; width: 16px; height: 18px;
  background: #2a3a4a;
  border-radius: 50%;
  transform: translateX(-50%) rotate(10deg);
  transform-origin: bottom center;
  animation: td-head 8s ease-in-out infinite alternate;
}
.scn-telemachus-doubts .feet-still {
  position: absolute; bottom: 0; left: 50%; width: 28px; height: 8px;
  background: #1a2a3a;
  border-radius: 30%;
  transform: translateX(-50%);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-telemachus-doubts .tear-drop {
  position: absolute; bottom: 34%; left: 52%; width: 4px; height: 6px;
  background: radial-gradient(circle, #b0c4d0 0%, #8090a0 100%);
  border-radius: 50% 50% 50% 50% / 30% 30% 70% 70%;
  animation: td-tear 4s ease-in-out infinite;
}
.scn-telemachus-doubts .dust-mote {
  position: absolute; width: 3px; height: 3px;
  background: rgba(180,190,200,0.6);
  border-radius: 50%;
}
.scn-telemachus-doubts .mote-slow {
  top: 40%; left: 30%;
  animation: td-mote 30s linear infinite;
}
@keyframes td-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(1px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes td-head { 0% { transform: translateX(-50%) rotate(10deg); } 50% { transform: translateX(-50%) rotate(15deg); } 100% { transform: translateX(-50%) rotate(8deg); } }
@keyframes td-tear { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(20px) scale(0.5); opacity: 0; } 100% { transform: translateY(0) scale(1); opacity: 0.8; } }
@keyframes td-mote { 0% { transform: translateY(0) translateX(0); } 25% { transform: translateY(-20px) translateX(10px); } 50% { transform: translateY(-40px) translateX(-5px); } 75% { transform: translateY(-60px) translateX(8px); } 100% { transform: translateY(-80px) translateX(0); } }

.scn-suitors-astounded {
  background: linear-gradient(180deg, #fff4e0 0%, #f5d8a8 40%, #d9b870 100%), radial-gradient(ellipse at 30% 20%, #ffebc0 0%, transparent 60%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.15);
}
.scn-suitors-astounded .sun-burst {
  position: absolute; inset: 0 0 60% 40%;
  background: radial-gradient(ellipse at center, #ffedb0 0%, transparent 70%);
  animation: sa-sun-pulse 4s ease-in-out infinite alternate;
  filter: blur(12px);
}
.scn-suitors-astounded .colonnade {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(90deg, transparent 10%, #c69a6b 12%, #c69a6b 20%, transparent 22%, transparent 38%, #c69a6b 40%, #c69a6b 48%, transparent 50%, transparent 66%, #c69a6b 68%, #c69a6b 76%, transparent 78%);
  box-shadow: 0 -8px 20px rgba(0,0,0,.3);
  border-radius: 0 0 4px 4px;
}
.scn-suitors-astounded .suitors-group {
  position: absolute; bottom: 22%; left: 15%; width: 35%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: sa-group-shift 6s ease-in-out infinite;
}
.scn-suitors-astounded .suitors-shadow {
  position: absolute; bottom: 22%; left: 15%; width: 35%; height: 28%;
  background: rgba(0,0,0,.4);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translate(-8%, 10%) scale(1.05);
  filter: blur(6px);
}
.scn-suitors-astounded .antinous-figure {
  position: absolute; bottom: 24%; left: 52%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: sa-antinous-turn 8s ease-in-out infinite;
}
.scn-suitors-astounded .antinous-gesture {
  position: absolute; bottom: 38%; left: 56%; width: 12px; height: 6px;
  background: #2a1a0a;
  border-radius: 40% 40% 20% 20%;
  transform-origin: left center;
  animation: sa-gesture 1.5s ease-in-out infinite;
}
.scn-suitors-astounded .dust-particles {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 70% 30%, rgba(255,220,150,.15) 0%, transparent 50%);
  animation: sa-dust 12s linear infinite;
  filter: blur(4px);
}
@keyframes sa-sun-pulse {
  0% { opacity: .7; transform: scale(.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: .8; transform: scale(1); }
}
@keyframes sa-group-shift {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(2px) rotate(1deg); }
  66% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sa-antinous-turn {
  0% { transform: translateX(0) rotate(-5deg); }
  25% { transform: translateX(3px) rotate(3deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(-5deg); }
}
@keyframes sa-gesture {
  0%,100% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(20deg) scaleY(1.2); }
}
@keyframes sa-dust {
  0% { background-position: 0% 50%; opacity: .3; }
  50% { background-position: 100% 30%; opacity: .6; }
  100% { background-position: 0% 50%; opacity: .3; }
}

.scn-noemon-answers {
  background: linear-gradient(180deg, #d8e8f0 0%, #a0c0d0 30%, #7a9ab0 100%), radial-gradient(ellipse at 40% 10%, #b8d8e8 0%, transparent 50%);
  box-shadow: inset 0 0 60px rgba(255,255,240,.2);
}
.scn-noemon-answers .sky-glow {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0f8ff 0%, transparent 100%);
  animation: na-sky 15s ease-in-out infinite alternate;
}
.scn-noemon-answers .grove-bg {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 70% 30% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  animation: na-grove-sway 20s ease-in-out infinite alternate;
}
.scn-noemon-answers .noemon-figure {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: na-noemon-stand 10s ease-in-out infinite;
}
.scn-noemon-answers .ship-hull {
  position: absolute; bottom: 28%; left: 28%; width: 60px; height: 20px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 50% 50% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: na-ship-bob 12s ease-in-out infinite;
}
.scn-noemon-answers .mast-sail {
  position: absolute; bottom: 42%; left: 32%; width: 4px; height: 30px;
  background: #2a2a1a;
  border-radius: 2px;
  animation: na-mast-sway 10s ease-in-out infinite;
}
.scn-noemon-answers .mast-sail::after {
  content: ''; position: absolute; top: 0; left: -120%; width: 200%; height: 100%;
  background: rgba(240,235,210,.3);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  filter: blur(2px);
  animation: na-sail-billow 6s ease-in-out infinite alternate;
}
.scn-noemon-answers .mentor-figure {
  position: absolute; bottom: 26%; left: 30%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a4a4a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: na-mentor-wave 8s ease-in-out infinite;
  transform-origin: bottom;
}
.scn-noemon-answers .olive-branch {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 16px;
  background: #5a7a3a;
  border-radius: 50% 50% 20% 20%;
  filter: blur(1px);
  animation: na-branch 9s ease-in-out infinite;
}
@keyframes na-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes na-grove-sway { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes na-noemon-stand { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes na-ship-bob { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(2deg); } 66% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes na-mast-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes na-sail-billow { 0% { clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); } 100% { clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); } }
@keyframes na-mentor-wave { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } }
@keyframes na-branch { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-5deg) scale(.95); } }

.scn-antinous-plots {
  background: linear-gradient(180deg, #c08050 0%, #a06030 30%, #604020 100%), radial-gradient(ellipse at 50% 20%, #ffa040 0%, transparent 50%);
  box-shadow: inset 0 0 100px rgba(0,0,0,.3);
}
.scn-antinous-plots .storm-sun {
  position: absolute; top: 10%; right: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffcc60 0%, #ffa030 40%, transparent 70%);
  filter: blur(10px);
  animation: ap-sun-flash 4s ease-in-out infinite alternate;
}
.scn-antinous-plots .rocky-shore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.5);
  animation: ap-shore 12s ease-in-out infinite;
}
.scn-antinous-plots .antinous-angry {
  position: absolute; bottom: 25%; left: 45%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #5a1a0a 0%, #2a0800 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap-angry-body 2s ease-in-out infinite;
}
.scn-antinous-plots .ambush-ship {
  position: absolute; bottom: 30%; left: 20%; width: 70px; height: 22px;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 60% 60% / 50% 50% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: ap-ship-prow 5s ease-in-out infinite;
}
.scn-antinous-plots .spear {
  position: absolute; bottom: 38%; left: 48%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: ap-spear-thrust 1.5s ease-in-out infinite;
}
.scn-antinous-plots .chain {
  position: absolute; bottom: 32%; left: 38%; width: 30px; height: 4px;
  background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 6px, #8a7a5a 6px, #8a7a5a 12px);
  border-radius: 2px;
  filter: blur(1px);
  animation: ap-chain-tremble 3s ease-in-out infinite;
}
.scn-antinous-plots .sparks {
  position: absolute; bottom: 45%; left: 50%; width: 6px; height: 6px;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 14px 4px #ffa040, 0 0 28px 8px rgba(255,160,64,.6);
  animation: ap-spark 0.8s ease-in-out infinite alternate;
}
@keyframes ap-sun-flash { 0% { opacity: .5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .6; transform: scale(.9); } }
@keyframes ap-shore { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ap-angry-body { 0%,100% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(1px) rotate(5deg); } 50% { transform: translateX(-1px) rotate(-5deg); } 75% { transform: translateX(1px) rotate(3deg); } }
@keyframes ap-ship-prow { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(2deg); } 66% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ap-spear-thrust { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(15deg) translateX(4px); } }
@keyframes ap-chain-tremble { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-2px); } }
@keyframes ap-spark { 0% { opacity: .3; transform: scale(1); } 100% { opacity: 1; transform: scale(1.5); } }

.scn-suitors-applaud {
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 30%, #8a6a4a 100%), radial-gradient(ellipse at 50% 10%, #e8d8b8 0%, transparent 60%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.2);
}
.scn-suitors-applaud .hall-walls {
  position: absolute; inset: 0 10% 0 10%;
  background: linear-gradient(180deg, #b09070 0%, #7a5a3a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%);
  animation: sp-walls 20s ease-in-out infinite alternate;
}
.scn-suitors-applaud .suitors-row {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,.4);
  animation: sp-row-shift 8s ease-in-out infinite;
}
.scn-suitors-applaud .applause-hands {
  position: absolute; bottom: 45%; left: 20%; right: 20%; height: 8%;
  background: transparent;
  border-top: 4px dashed #4a3a2a;
  filter: blur(1px);
  animation: sp-hands-clap 0.4s ease-in-out infinite;
}
.scn-suitors-applaud .medon-shadow {
  position: absolute; bottom: 22%; left: 8%; width: 18px; height: 40px;
  background: rgba(0,0,0,.5);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(4px);
  animation: sp-medon-peer 10s ease-in-out infinite;
}
.scn-suitors-applaud .penelope-figure {
  position: absolute; bottom: 24%; left: 72%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sp-penelope-stand 12s ease-in-out infinite;
}
.scn-suitors-applaud .loom {
  position: absolute; bottom: 26%; left: 60%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.3);
  animation: sp-loom-shimmer 6s ease-in-out infinite;
}
.scn-suitors-applaud .loom::before {
  content: ''; position: absolute; top: 5%; left: 10%; width: 80%; height: 90%;
  background: repeating-linear-gradient(0deg, #8a7a5a 0px, #8a7a5a 2px, #b8a880 2px, #b8a880 4px);
  opacity: .5;
}
.scn-suitors-applaud .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 60% 40%, rgba(255,240,200,.1) 0%, transparent 50%);
  animation: sp-motes 20s linear infinite;
  filter: blur(4px);
}
@keyframes sp-walls { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(.98); } }
@keyframes sp-row-shift { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(0deg); } }
@keyframes sp-hands-clap { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } }
@keyframes sp-medon-peer { 0%,100% { transform: translateX(0) translateY(0); } 50% { transform: translateX(2px) translateY(-2px); } }
@keyframes sp-penelope-stand { 0%,100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(1px) rotate(-1deg); } 66% { transform: translateX(-1px) rotate(1deg); } }
@keyframes sp-loom-shimmer { 0% { opacity: 1; } 50% { opacity: .7; } 100% { opacity: 1; } }
@keyframes sp-motes { 0% { background-position: 0% 50%; opacity: .2; } 50% { background-position: 100% 30%; opacity: .4; } 100% { background-position: 0% 50%; opacity: .2; } }

.scn-telemachus-asks-about-agamemnon { background: linear-gradient(180deg, #7ec8e3 0%, #f0d78c 50%, #e8a870 100%), radial-gradient(ellipse at 80% 20%, #fcebb5 0%, transparent 60%); }
.scn-telemachus-asks-about-agamemnon .sky-tqa { position:absolute; inset:0; background: linear-gradient(180deg, #9ad8f0 0%, #f2e2b0 50%, #e8b87a 100%); animation: tqa-sky 12s ease-in-out infinite alternate; }
.scn-telemachus-asks-about-agamemnon .sun-tqa { position:absolute; top:12%; left:70%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle, #fff5d6 0%, #fce38a 60%, transparent 80%); box-shadow: 0 0 80px 30px rgba(252,227,138,.5); animation: tqa-sun 20s ease-in-out infinite; }
.scn-telemachus-asks-about-agamemnon .hill-back-tqa { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a8a5a 0%, #3a5a3a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.3); animation: tqa-hill 25s ease-in-out infinite alternate; }
.scn-telemachus-asks-about-agamemnon .hill-front-tqa { position:absolute; bottom:22%; left:0; right:0; height:15%; background: linear-gradient(180deg, #4a7a4a 0%, #2a4a2a 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.3); }
.scn-telemachus-asks-about-agamemnon .column-tqa { position:absolute; bottom:25%; left:50%; width:14px; height:60px; background: linear-gradient(180deg, #c8b092 0%, #a88e6a 100%); border-radius: 4% 4% 2% 2% / 10% 10% 4% 4%; box-shadow: inset -2px 0 6px rgba(0,0,0,.3); transform: translateX(-50%); }
.scn-telemachus-asks-about-agamemnon .figure-left-tqa { position:absolute; bottom:25%; left:40%; width:16px; height:44px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 2px 0 6px rgba(0,0,0,.5); animation: tqa-fig-l 4s ease-in-out infinite; }
.scn-telemachus-asks-about-agamemnon .figure-right-tqa { position:absolute; bottom:25%; left:56%; width:18px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -2px 0 6px rgba(0,0,0,.5); animation: tqa-fig-r 3.5s ease-in-out infinite; }
.scn-telemachus-asks-about-agamemnon .dust-tqa { position:absolute; bottom:24%; left:30%; right:30%; height:8px; background: rgba(232,168,112,.2); filter: blur(4px); border-radius: 50%; animation: tqa-dust 6s ease-in-out infinite alternate; }
@keyframes tqa-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes tqa-sun { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes tqa-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tqa-fig-l { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes tqa-fig-r { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } }
@keyframes tqa-dust { 0% { opacity:.1; transform: scale(1) } 100% { opacity:.4; transform: scale(1.2) } }

.scn-nestor-tells { background: linear-gradient(180deg, #5a7a8a 0%, #8a9a7a 40%, #c8b87a 70%, #e8c88a 100%), radial-gradient(ellipse at 70% 30%, #f0d8a0 0%, transparent 60%); }
.scn-nestor-tells .sky-nt { position:absolute; inset:0; background: linear-gradient(180deg, #7a9aaa 0%, #b0c09a 50%, #d8c888 100%); animation: nt-sky 15s ease-in-out infinite alternate; }
.scn-nestor-tells .sun-nt { position:absolute; top:15%; left:60%; width:50px; height:50px; border-radius:50%; background: radial-gradient(circle, #fff5d6 0%, #fce396 60%, transparent 80%); box-shadow: 0 0 70px 20px rgba(252,227,150,.4); }
.scn-nestor-tells .barrow-nt { position:absolute; bottom:20%; left:20%; right:20%; height:30px; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius: 60% 60% 0 0 / 100% 100% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.4); animation: nt-barrow 20s ease-in-out infinite; }
.scn-nestor-tells .figure-left-nt { position:absolute; bottom:28%; left:35%; width:16px; height:42px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 2px 0 6px rgba(0,0,0,.5); animation: nt-fig 5s ease-in-out infinite; }
.scn-nestor-tells .figure-right-nt { position:absolute; bottom:28%; left:50%; width:18px; height:46px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -2px 0 6px rgba(0,0,0,.5); animation: nt-fig 5s ease-in-out infinite reverse; }
.scn-nestor-tells .scepter-nt { position:absolute; bottom:30%; left:38%; width:4px; height:30px; background: #8a7a5a; border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,.4); transform: rotate(15deg); }
.scn-nestor-tells .ground-nt { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); }
.scn-nestor-tells .shadow-line-nt { position:absolute; bottom:20%; left:30%; right:30%; height:2px; background: rgba(0,0,0,.4); filter: blur(4px); animation: nt-shadow 8s ease-in-out infinite alternate; }
@keyframes nt-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes nt-barrow { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes nt-fig { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes nt-shadow { 0% { opacity:.2; transform: scaleX(1) } 100% { opacity:.5; transform: scaleX(1.1) } }

.scn-nestor-advises-travel { background: linear-gradient(180deg, #e8d8b0 0%, #f0e0c0 40%, #f8e8c8 70%, #e8d0a0 100%), radial-gradient(ellipse at 60% 30%, #fce8b8 0%, transparent 60%); }
.scn-nestor-advises-travel .arch-nat { position:absolute; top:5%; left:25%; right:25%; height:40%; background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); transform: scaleY(1.05); }
.scn-nestor-advises-travel .sun-nat { position:absolute; top:15%; left:12%; width:40px; height:40px; border-radius:50%; background: radial-gradient(circle, #fff5d6 0%, #fce38a 60%, transparent 80%); box-shadow: 0 0 60px 20px rgba(252,227,138,.4); animation: nat-sun 25s ease-in-out infinite; }
.scn-nestor-advises-travel .figure-nat { position:absolute; bottom:20%; left:42%; width:20px; height:48px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -2px 0 8px rgba(0,0,0,.5); animation: nat-fig 4s ease-in-out infinite; }
.scn-nestor-advises-travel .table-nat { position:absolute; bottom:22%; left:40%; right:30%; height:12px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-nestor-advises-travel .cup-nat { position:absolute; bottom:34%; left:44%; width:10px; height:12px; background: linear-gradient(180deg, #c08050 0%, #a06030 100%); border-radius: 0 0 30% 30% / 0 0 40% 40%; box-shadow: inset 0 0 4px rgba(0,0,0,.3); animation: nat-cup 6s ease-in-out infinite; }
.scn-nestor-advises-travel .scroll-nat { position:absolute; bottom:20%; left:52%; width:12px; height:16px; background: linear-gradient(180deg, #e8d8a0 0%, #c8b880 100%); border-radius: 10% 10% 10% 10% / 20% 20% 20% 20%; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.2); }
.scn-nestor-advises-travel .shadow-nat { position:absolute; bottom:18%; left:35%; right:20%; height:6px; background: rgba(0,0,0,.2); filter: blur(8px); animation: nat-shadow 10s ease-in-out infinite alternate; }
@keyframes nat-sun { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes nat-fig { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes nat-cup { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes nat-shadow { 0% { opacity:.3; transform: scaleX(1) } 100% { opacity:.6; transform: scaleX(1.15) } }

.scn-evening-rite { background: linear-gradient(180deg, #1a2a4a 0%, #2a3a5a 30%, #3a4a6a 60%, #4a5a7a 100%), radial-gradient(ellipse at 50% 100%, #4a6a8a 0%, transparent 70%); }
.scn-evening-rite .sky-er { position:absolute; inset:0; background: linear-gradient(180deg, #1a2a4a 0%, #2a3a6a 30%, #3a4a7a 60%, #2a3a5a 100%); animation: er-sky 20s ease-in-out infinite alternate; }
.scn-evening-rite .moon-er { position:absolute; top:12%; right:20%; width:50px; height:50px; border-radius:50%; background: radial-gradient(circle, #f0e8d0 0%, #c8b890 80%, transparent 90%); box-shadow: 0 0 80px 30px rgba(200,184,144,.3); animation: er-moon 30s linear infinite; }
.scn-evening-rite .sea-er { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a2a4a 0%, #0a1a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: er-sea 12s ease-in-out infinite; }
.scn-evening-rite .shore-er { position:absolute; bottom:25%; left:0; right:0; height:8%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-evening-rite .altar-er { position:absolute; bottom:28%; left:50%; width:40px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-evening-rite .flame-er { position:absolute; bottom:45%; left:50%; width:8px; height:16px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #e08040 50%, #a03020 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 0 30px 15px rgba(255,208,128,.3); animation: er-flame 2s ease-in-out infinite alternate; }
.scn-evening-rite .figure-er { position:absolute; bottom:25%; left:45%; width:16px; height:44px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,.5); animation: er-fig 5s ease-in-out infinite; }
.scn-evening-rite .star-a { position:absolute; top:8%; left:30%; width:3px; height:3px; background: #f0e8d0; border-radius:50%; box-shadow: 0 0 6px 2px rgba(240,232,208,.6); animation: er-star 4s ease-in-out infinite alternate, er-drift-a 60s linear infinite; }
.scn-evening-rite .star-b { position:absolute; top:5%; left:60%; width:2px; height:2px; background: #f0e8d0; border-radius:50%; box-shadow: 0 0 4px 1px rgba(240,232,208,.5); animation: er-star 5s ease-in-out infinite alternate-reverse, er-drift-b 80s linear infinite; }
@keyframes er-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes er-moon { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes er-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes er-flame { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.3) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes er-fig { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes er-star { 0% { opacity:.2 } 100% { opacity:1 } }
@keyframes er-drift-a { 0% { transform: translateX(0) } 100% { transform: translateX(80vw) } }
@keyframes er-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-60vw) } }

.scn-minerva-sends-sleep {
  background: 
    linear-gradient(180deg, #0a0a2e 0%, #19194a 40%, #2a1a3e 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a4e 0%, transparent 70%);
}
.scn-minerva-sends-sleep .room-bg {
  position:absolute; inset:0; 
  background: linear-gradient(135deg, #1a1a3e 0%, #0e0e2a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.8);
  animation: ms-room 15s ease-in-out infinite;
}
.scn-minerva-sends-sleep .table {
  position:absolute; bottom:15%; left:30%; width:40%; height:10%;
  background: linear-gradient(0deg, #2a1a1a 0%, #3a2a2a 100%);
  border-radius:4px 4px 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.5);
}
.scn-minerva-sends-sleep .cup {
  position:absolute; width:14px; height:16px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius:30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.scn-minerva-sends-sleep .cup-a { bottom:24%; left:35%; transform:rotate(-15deg); animation: ms-cup-fall 6s ease-in-out infinite; }
.scn-minerva-sends-sleep .cup-b { bottom:24%; left:45%; transform:rotate(10deg); animation: ms-cup-fall 6s ease-in-out infinite 2s; }
.scn-minerva-sends-sleep .cup-c { bottom:24%; left:55%; transform:rotate(30deg); animation: ms-cup-fall 6s ease-in-out infinite 4s; }
.scn-minerva-sends-sleep .sleeper {
  position:absolute; width:30px; height:40px;
  background: radial-gradient(ellipse 50% 60% at 50% 100%, #2a2a4a 0%, #1a1a2e 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-minerva-sends-sleep .sleeper-1 { bottom:18%; left:34%; transform:rotate(20deg); animation: ms-sleep 8s ease-in-out infinite; }
.scn-minerva-sends-sleep .sleeper-2 { bottom:18%; right:34%; transform:rotate(-15deg); animation: ms-sleep 8s ease-in-out infinite 4s; }
.scn-minerva-sends-sleep .minerva-shadow {
  position:absolute; bottom:25%; left:20%; width:60%; height:60%;
  background: radial-gradient(ellipse at 50% 80%, rgba(100,80,180,.25) 0%, transparent 70%);
  filter: blur(20px); animation: ms-shadow 10s ease-in-out infinite alternate;
}
.scn-minerva-sends-sleep .sleep-motes {
  position:absolute; inset:0;
  background: radial-gradient(circle at 45% 60%, rgba(200,180,255,.15) 0%, transparent 50%);
  animation: ms-motes 12s ease-in-out infinite alternate;
}
@keyframes ms-room { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes ms-cup-fall { 0% { transform:rotate(-15deg) translateY(0); opacity:1 } 30% { transform:rotate(-45deg) translateY(2px); opacity:.9 } 70% { transform:rotate(10deg) translateY(-1px); opacity:.95 } 100% { transform:rotate(-15deg) translateY(0); opacity:1 } }
@keyframes ms-sleep { 0%,100% { transform:rotate(20deg) translateY(0) scale(1) } 50% { transform:rotate(10deg) translateY(-2px) scale(1.02) } }
@keyframes ms-shadow { 0% { opacity:.4; transform:scale(.95) } 100% { opacity:.8; transform:scale(1.1) } }
@keyframes ms-motes { 0% { opacity:.3; background-position:50% 50% } 50% { opacity:.6; background-position:40% 60% } 100% { opacity:.3; background-position:55% 45% } }

.scn-telemachus-embarks {
  background: 
    linear-gradient(180deg, #0a0a2e 0%, #16163e 40%, #1a1a4a 100%),
    radial-gradient(ellipse at 50% 120%, #1a1a3e 0%, transparent 70%);
}
.scn-telemachus-embarks .night-sea {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #0e0e2e 0%, #1a1a4a 100%);
  border-radius:0 0 40% 40% / 0 0 20% 20%;
  animation: te-sea 20s ease-in-out infinite;
}
.scn-telemachus-embarks .night-sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 100%);
}
.scn-telemachus-embarks .ship-hull {
  position:absolute; bottom:28%; left:50%; width:120px; height:30px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius:0 0 40% 40% / 0 0 60% 60%;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
  animation: te-ship 4s ease-in-out infinite;
}
.scn-telemachus-embarks .oar {
  position:absolute; bottom:30%; width:8px; height:50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius:50% 50% 20% 20% / 30% 30% 10% 10%;
  transform-origin: bottom center;
}
.scn-telemachus-embarks .oar-1 { left:35%; animation: te-oar 2s ease-in-out infinite; }
.scn-telemachus-embarks .oar-2 { left:48%; animation: te-oar 2s ease-in-out infinite .5s; }
.scn-telemachus-embarks .oar-3 { left:61%; animation: te-oar 2s ease-in-out infinite 1s; }
.scn-telemachus-embarks .figure-telemachus {
  position:absolute; bottom:30%; left:40%; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: te-fig 3s ease-in-out infinite;
}
.scn-telemachus-embarks .figure-mentor {
  position:absolute; bottom:30%; left:52%; width:22px; height:52px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: te-fig 3s ease-in-out infinite .5s;
}
.scn-telemachus-embarks .shore-stones {
  position:absolute; bottom:22%; left:10%; right:10%; height:10%;
  background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 80%);
  background-size: 20px 8px; background-repeat: repeat-x;
  filter: blur(2px); animation: te-stones 10s ease-in-out infinite;
}
@keyframes te-sea { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes te-ship { 0%,100% { transform:translateX(-50%) rotate(0) } 50% { transform:translateX(-50%) rotate(2deg) } }
@keyframes te-oar { 0%,100% { transform:rotate(0) } 50% { transform:rotate(-20deg) } }
@keyframes te-fig { 0%,100% { transform:translateX(0) } 50% { transform:translateX(3px) } }
@keyframes te-stones { 0%,100% { opacity:.3 } 50% { opacity:.6 } }

.scn-telemachus-sails {
  background: 
    linear-gradient(180deg, #0a0a2a 0%, #12123a 40%, #1a1a4a 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a5a 0%, transparent 70%);
}
.scn-telemachus-sails .starlit-sky {
  position:absolute; inset:0 0 30% 0;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,200,.2) 0%, transparent 50%),
              radial-gradient(circle at 70% 40%, rgba(255,255,200,.15) 0%, transparent 50%);
  animation: ts-stars 10s ease-in-out infinite alternate;
}
.scn-telemachus-sails .deep-sea {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #0a0a3a 0%, #1a1a5a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
  animation: ts-sea 15s ease-in-out infinite;
}
.scn-telemachus-sails .ship-hull-sail {
  position:absolute; bottom:28%; left:50%; width:100px; height:40px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius:0 0 30% 30% / 0 0 50% 50%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: ts-hull 8s ease-in-out infinite;
}
.scn-telemachus-sails .sail-belly {
  position:absolute; bottom:45%; left:50%; width:70px; height:90px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse at 60% 50%, #f0f0e0 0%, #c0c0b0 100%);
  border-radius:30% 70% 50% 50% / 40% 80% 20% 60%;
  box-shadow: 0 0 30px rgba(240,240,224,.3);
  animation: ts-sail 20s ease-in-out infinite alternate;
}
.scn-telemachus-sails .foam {
  position:absolute; bottom:30%; width:120%; height:20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,220,255,.4) 0%, transparent 70%);
  filter: blur(4px);
}
.scn-telemachus-sails .foam-1 { left:-10%; animation: ts-foam 4s ease-in-out infinite; }
.scn-telemachus-sails .foam-2 { left:-20%; animation: ts-foam 4s ease-in-out infinite 2s; }
.scn-telemachus-sails .mixing-bowl {
  position:absolute; bottom:30%; left:55%; width:16px; height:14px;
  background: radial-gradient(circle, #c0a060 0%, #806040 70%);
  border-radius:50%; box-shadow: 0 0 12px 3px rgba(192,160,96,.5);
  animation: ts-bowl 6s ease-in-out infinite;
}
.scn-telemachus-sails .star-glows {
  position:absolute; top:10%; left:20%; right:20%; height:20%;
  background: radial-gradient(circle at 30% 40%, rgba(255,255,200,.15) 0%, transparent 40%),
              radial-gradient(circle at 70% 60%, rgba(255,255,200,.1) 0%, transparent 40%);
  animation: ts-glows 12s ease-in-out infinite alternate;
}
@keyframes ts-stars { 0%,100% { opacity:.6 } 50% { opacity:1 } }
@keyframes ts-sea { 0%,100% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(1.02) } }
@keyframes ts-hull { 0%,100% { transform:translateX(-50%) rotate(0) } 50% { transform:translateX(-50%) rotate(1deg) } }
@keyframes ts-sail { 0% { transform:translateX(-50%) scaleX(.95) } 50% { transform:translateX(-50%) scaleX(1.05) } 100% { transform:translateX(-50%) scaleX(.98) } }
@keyframes ts-foam { 0%,100% { transform:translateX(0) scaleY(1); opacity:.5 } 50% { transform:translateX(10px) scaleY(1.3); opacity:.8 } }
@keyframes ts-bowl { 0%,100% { transform:translate(0,0) rotate(0); box-shadow:0 0 12px 3px rgba(192,160,96,.5) } 50% { transform:translate(2px,-1px) rotate(5deg); box-shadow:0 0 20px 6px rgba(192,160,96,.7) } }
@keyframes ts-glows { 0% { opacity:.3 } 100% { opacity:.9 } }

.scn-pylos-sacrifice {
  background: 
    linear-gradient(180deg, #4a2a1a 0%, #6a4a2a 30%, #8a6a4a 60%, #aa8a6a 100%),
    radial-gradient(ellipse at 50% 0%, #f0c080 0%, transparent 60%);
}
.scn-pylos-sacrifice .dawn-sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #ffcc88 0%, #e8a060 40%, #c08040 70%, #a06030 100%);
  animation: ps-sky 30s ease-in-out infinite alternate;
}
.scn-pylos-sacrifice .dawn-sea {
  position:absolute; bottom:15%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #a06030 0%, #804020 100%);
  border-radius:0 0 50% 50% / 0 0 30% 30%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  animation: ps-sea 20s ease-in-out infinite;
}
.scn-pylos-sacrifice .shore-sand {
  position:absolute; bottom:0; left:0; right:0; height:18%;
  background: radial-gradient(ellipse at 50% 100%, #c09060 0%, #a07050 60%, #604030 100%);
  border-radius:60% 40% 0 0 / 40% 30% 0 0;
}
.scn-pylos-sacrifice .altar {
  position:absolute; bottom:20%; left:50%; width:40px; height:30px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius:10% 10% 30% 30% / 20% 20% 50% 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
  animation: ps-altar 8s ease-in-out infinite;
}
.scn-pylos-sacrifice .bull-silhouette {
  position:absolute; bottom:25%; left:35%; width:70px; height:40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius:40% 60% 30% 70% / 50% 50% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: ps-bull 12s ease-in-out infinite;
}
.scn-pylos-sacrifice .figure-priest {
  position:absolute; bottom:22%; left:48%; width:22px; height:50px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ps-priest 6s ease-in-out infinite;
}
.scn-pylos-sacrifice .figure-crowd {
  position:absolute; bottom:22%; left:55%; width:18px; height:44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ps-crowd 6s ease-in-out infinite .3s;
}
.scn-pylos-sacrifice .fire {
  position:absolute; bottom:26%; left:52%; width:12px; height:20px;
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff4020 50%, transparent 80%);
  border-radius:50%; box-shadow: 0 0 30px 8px rgba(255,128,64,.6), 0 0 60px 15px rgba(255,64,32,.3);
  animation: ps-fire 3s ease-in-out infinite alternate;
}
@keyframes ps-sky { 0%,100% { opacity:.8; background-position:0% 0% } 50% { opacity:1; background-position:100% 0% } }
@keyframes ps-sea { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes ps-altar { 0%,100% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.02) } }
@keyframes ps-bull { 0%,100% { transform:translateX(0) rotate(0) } 50% { transform:translateX(2px) rotate(2deg) } }
@keyframes ps-priest { 0%,100% { transform:translateX(0) rotate(0) } 50% { transform:translateX(-2px) rotate(-3deg) } }
@keyframes ps-crowd { 0%,100% { transform:translateX(0) } 50% { transform:translateX(3px) } }
@keyframes ps-fire { 0% { transform:scaleY(.8) scaleX(.9); opacity:.7 } 100% { transform:scaleY(1.2) scaleX(1.1); opacity:1 } }

/* ===== SCENE 1: nausicaa-dream (moonlit, calm) ===== */
.scn-nausicaa-dream {
  background:
    radial-gradient(ellipse at 70% 20%, #2a3a5a 0%, transparent 60%),
    linear-gradient(180deg, #0f1a2e 0%, #1a2a44 40%, #223355 100%);
}
.scn-nausicaa-dream .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1b2b4a 0%, #131f3a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
  animation: nd-wallp 10s ease-in-out infinite alternate;
}
.scn-nausicaa-dream .moonlight {
  position: absolute; top: -10%; left: 60%; width: 120%; height: 120%;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,220,255,0.15) 0%, transparent 70%);
  opacity: 0.6;
  animation: nd-moonpulse 6s ease-in-out infinite;
}
.scn-nausicaa-dream .window-frame {
  position: absolute; top: 8%; left: 62%; width: 90px; height: 110px;
  background: #1a2a3a;
  border: 6px solid #2c3e55;
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 0 20px rgba(100,150,200,0.3);
  animation: nd-window 4s ease-in-out infinite alternate;
}
.scn-nausicaa-dream .bed {
  position: absolute; bottom: 10%; left: 30%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 30% 50% 20% 20% / 40% 60% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-nausicaa-dream .sleeping-figure {
  position: absolute; bottom: 12%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #3a4a6a 0%, #1a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: nd-sleep 8s ease-in-out infinite;
}
.scn-nausicaa-dream .dream-friend {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(135deg, rgba(180,210,255,0.6) 0%, rgba(120,160,220,0.3) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: nd-friend 12s ease-in-out infinite alternate;
}
.scn-nausicaa-dream .glow-orb {
  position: absolute; top: 15%; left: 65%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffffff 0%, #aac0e0 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(170,190,230,0.6);
  animation: nd-glow 3s ease-in-out infinite alternate;
}
@keyframes nd-wallp { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes nd-moonpulse { 0%,100% { opacity: 0.4; transform: scale(1) } 50% { opacity: 0.7; transform: scale(1.02) } }
@keyframes nd-window { 0% { opacity: 0.7; box-shadow: inset 0 0 10px rgba(100,150,200,0.2) } 100% { opacity: 1; box-shadow: inset 0 0 30px rgba(140,180,230,0.5) } }
@keyframes nd-sleep { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } }
@keyframes nd-friend { 0% { transform: translate(0, 0) scale(1); opacity: 0.4 } 50% { transform: translate(8px, -6px) scale(1.1); opacity: 0.7 } 100% { transform: translate(0, -3px) scale(0.95); opacity: 0.5 } }
@keyframes nd-glow { 0% { opacity: 0.5; box-shadow: 0 0 15px 4px rgba(170,190,230,0.3) } 100% { opacity: 1; box-shadow: 0 0 40px 14px rgba(170,190,230,0.7) } }

/* ===== SCENE 2: nausicaa-asks (shy, dawn) ===== */
.scn-nausicaa-asks {
  background:
    radial-gradient(ellipse at 50% 0%, #f7dbb8 0%, transparent 60%),
    linear-gradient(180deg, #f2e1c0 0%, #d9b88a 50%, #a87a58 100%);
}
.scn-nausicaa-asks .dawn-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8d5b6 0%, #c9a88a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-nausicaa-asks .archway {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 90%;
  background: linear-gradient(180deg, #b89a7a 0%, #7a5a3a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
}
.scn-nausicaa-asks .nausicaa-figure {
  position: absolute; bottom: 18%; left: 38%; width: 28px; height: 44px;
  background: linear-gradient(180deg, #8a6a5a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  animation: na-shy 5s ease-in-out infinite alternate;
}
.scn-nausicaa-asks .alcinous-figure {
  position: absolute; bottom: 14%; left: 55%; width: 36px; height: 52px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(1.1);
  animation: na-king 7s ease-in-out infinite;
}
.scn-nausicaa-asks .waggon-shape {
  position: absolute; bottom: 8%; left: 60%; width: 70px; height: 30px;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a4a 50%, #6a4a2a 100%);
  border-radius: 10% 10% 30% 30% / 30% 30% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: na-waggon 6s ease-in-out infinite;
}
.scn-nausicaa-asks .clothing-pile {
  position: absolute; bottom: 14%; left: 65%; width: 30px; height: 20px;
  background: radial-gradient(circle at 50% 100%, #e8c8a0 0%, #c8a080 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.2);
  animation: na-cloth 9s ease-in-out infinite alternate;
}
.scn-nausicaa-asks .dawn-light-rays {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 60%);
  clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%);
  animation: na-rays 8s ease-in-out infinite alternate;
}
@keyframes na-shy { 0% { transform: scale(0.9) translateX(0) rotate(0deg); opacity: 0.8 } 50% { transform: scale(0.92) translateX(-2px) rotate(2deg); opacity: 0.95 } 100% { transform: scale(0.9) translateX(0) rotate(0deg); opacity: 0.85 } }
@keyframes na-king { 0%,100% { transform: scale(1.1) translateY(0) } 50% { transform: scale(1.12) translateY(-2px) } }
@keyframes na-waggon { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes na-cloth { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(5deg) scale(1.05) } 100% { transform: rotate(-3deg) scale(0.95) } }
@keyframes na-rays { 0% { opacity: 0.3; transform: translateY(0) } 100% { opacity: 0.6; transform: translateY(-10px) } }

/* ===== SCENE 3: alcinous-agrees (warm, dawn) ===== */
.scn-alcinous-agrees {
  background:
    radial-gradient(ellipse at 60% 10%, #f5dbb0 0%, transparent 70%),
    linear-gradient(180deg, #ecd5b0 0%, #c8a87a 30%, #9a7a5a 100%);
}
.scn-alcinous-agrees .palace-hall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #dac2a0 0%, #b08e6a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.2);
}
.scn-alcinous-agrees .window-light {
  position: absolute; top: 5%; left: 70%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at center, #ffeac0 0%, #f0c080 70%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 10px rgba(240,192,128,0.5);
  animation: aa-light 5s ease-in-out infinite alternate;
}
.scn-alcinous-agrees .waggon-ready {
  position: absolute; bottom: 12%; left: 40%; width: 90px; height: 40px;
  background: linear-gradient(90deg, #7a5a3a 0%, #9a7a5a 40%, #7a5a3a 100%);
  border-radius: 10% 10% 30% 30% / 40% 40% 10% 10%;
  box-shadow: 0 6px 14px rgba(0,0,0,0.4);
  animation: aa-waggon 8s ease-in-out infinite;
}
.scn-alcinous-agrees .mule-left {
  position: absolute; bottom: 14%; left: 35%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: aa-mule-l 4s ease-in-out infinite alternate;
}
.scn-alcinous-agrees .mule-right {
  position: absolute; bottom: 14%; left: 43%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: aa-mule-r 4.5s ease-in-out infinite alternate-reverse;
}
.scn-alcinous-agrees .nausicaa-joy {
  position: absolute; bottom: 16%; left: 28%; width: 26px; height: 40px;
  background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: aa-joy 3s ease-in-out infinite;
}
.scn-alcinous-agrees .mother-figure {
  position: absolute; bottom: 12%; left: 55%; width: 30px; height: 44px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: aa-mother 7s ease-in-out infinite alternate;
}
@keyframes aa-light { 0% { opacity: 0.6; transform: scale(0.95) } 50% { opacity: 0.9; transform: scale(1.05) } 100% { opacity: 0.7; transform: scale(1) } }
@keyframes aa-waggon { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(0.5deg) } }
@keyframes aa-mule-l { 0% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(2px) rotate(3deg) } }
@keyframes aa-mule-r { 0% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(-2px) rotate(-3deg) } }
@keyframes aa-joy { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-3px) } }
@keyframes aa-mother { 0% { opacity: 0.8; transform: translateY(0) } 100% { opacity: 1; transform: translateY(-4px) } }

/* ===== SCENE 4: nausicaa-throws-ball (sunlit, calm) ===== */
.scn-nausicaa-throws-ball {
  background:
    radial-gradient(ellipse at 70% 80%, #4a7a5a 0%, transparent 60%),
    linear-gradient(180deg, #87ceeb 0%, #b0d4f0 40%, #c8e8ff 70%, #a0c8e0 100%);
}
.scn-nausicaa-throws-ball .sky-sunlit {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7cc0e8 0%, #b0d8f0 100%);
  animation: nt-sky 8s ease-in-out infinite alternate;
}
.scn-nausicaa-throws-ball .river-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a8ab0 0%, #2a5a7a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: nt-water 12s ease-in-out infinite alternate;
}
.scn-nausicaa-throws-ball .near-bank {
  position: absolute; bottom: 10%; left: 5%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #6a8a4a 0%, #3a5a2a 100%);
  border-radius: 60% 40% 0 0;
  animation: nt-bank 14s ease-in-out infinite;
}
.scn-nausicaa-throws-ball .nausicaa-throw {
  position: absolute; bottom: 18%; left: 30%; width: 34px; height: 50px;
  background: linear-gradient(180deg, #8a6a5a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nt-throw 4s ease-in-out infinite;
}
.scn-nausicaa-throws-ball .ball-arc {
  position: absolute; bottom: 50%; left: 40%; width: 12px; height: 12px;
  background: radial-gradient(circle, #e8c040 0%, #c88820 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(200,136,32,0.5);
  animation: nt-ball 3s ease-in-out infinite alternate;
}
.scn-nausicaa-throws-ball .maid-one {
  position: absolute; bottom: 14%; left: 45%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nt-maid1 6s ease-in-out infinite alternate;
}
.scn-nausicaa-throws-ball .maid-two {
  position: absolute; bottom: 12%; left: 52%; width: 22px; height: 34px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nt-maid2 7s ease-in-out infinite alternate-reverse;
}
.scn-nausicaa-throws-ball .ripple-sparkle {
  position: absolute; bottom: 4%; left: 50%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,240,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: nt-ripple 5s ease-in-out infinite;
}
@keyframes nt-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes nt-water { 0% { transform: translateY(0); opacity: 0.8 } 50% { transform: translateY(-2px); opacity: 0.9 } 100% { transform: translateY(0); opacity: 0.85 } }
@keyframes nt-bank { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes nt-throw { 0%,100% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-15deg) translateY(-4px) } 50% { transform: rotate(10deg) translateY(-2px) } 75% { transform: rotate(-5deg) translateY(0) } }
@keyframes nt-ball { 0% { transform: translate(-10px, 0) scale(1); opacity: 0.7 } 50% { transform: translate(20px, -30px) scale(0.9); opacity: 1 } 100% { transform: translate(40px, 0) scale(0.95); opacity: 0.6 } }
@keyframes nt-maid1 { 0% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(-2px) rotate(2deg) } }
@keyframes nt-maid2 { 0% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(-3px) rotate(-2deg) } }
@keyframes nt-ripple { 0% { transform: scale(0.8); opacity: 0.4 } 50% { transform: scale(1.2); opacity: 0.7 } 100% { transform: scale(0.9); opacity: 0.5 } }

/* dawn-assembly */
.scn-dawn-assembly {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d0a0 30%, #d4b88a 60%, #b8906e 100%),
              radial-gradient(ellipse at 60% 20%, #ffedd5 0%, transparent 60%);
}
.scn-dawn-assembly .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f9eed8 0%, #f0d8b0 100%); animation: da-sky 12s ease-in-out infinite alternate; }
.scn-dawn-assembly .sun-glow { position:absolute; top:8%; left:55%; width:60px; height:60px; background: radial-gradient(circle, #ffdd99 0%, #ffcc66 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px #ffdd99; animation: da-sun 8s ease-in-out infinite alternate; }
.scn-dawn-assembly .city-silhouette { position:absolute; bottom:35%; left:5%; right:5%; height:25%; background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 50%, #5a4a3a 100%); clip-path: polygon(0% 100%, 3% 70%, 8% 70%, 10% 80%, 15% 60%, 20% 60%, 22% 75%, 28% 50%, 32% 50%, 34% 65%, 40% 40%, 46% 40%, 48% 55%, 55% 30%, 62% 30%, 64% 50%, 70% 35%, 78% 35%, 80% 55%, 88% 45%, 92% 45%, 95% 65%, 100% 70%, 100% 100%); border-radius: 0 0 4px 4px; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: da-city 20s ease-in-out infinite alternate; }
.scn-dawn-assembly .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 30% 20% 0 0 / 50% 40% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.2); }
.scn-dawn-assembly .herald { position:absolute; bottom:20%; left:30%; width:16px; height:36px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da-herald 6s ease-in-out infinite; }
.scn-dawn-assembly .figure { position:absolute; bottom:18%; width:12px; height:28px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-dawn-assembly .figure-1 { left:45%; animation: da-figure 10s ease-in-out infinite alternate; }
.scn-dawn-assembly .figure-2 { left:60%; animation: da-figure 10s ease-in-out 3s infinite alternate; }
.scn-dawn-assembly .haze { position:absolute; top:10%; left:10%; width:80px; height:60px; background: rgba(240,220,180,.15); filter: blur(20px); border-radius: 50%; animation: da-haze 30s linear infinite; }
@keyframes da-sky { 0% { opacity:.8; background-position: 0% 0% } 50% { opacity:1; background-position: 20% 0% } 100% { opacity:.9; background-position: 0% 0% } }
@keyframes da-sun { 0% { transform: scale(.9); opacity:.7 } 50% { transform: scale(1.05); opacity:.9 } 100% { transform: scale(1); opacity:.8 } }
@keyframes da-city { 0% { transform: translateY(0); filter: brightness(.85) } 50% { transform: translateY(-2px); filter: brightness(.95) } 100% { transform: translateY(0); filter: brightness(.9) } }
@keyframes da-herald { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes da-figure { 0% { transform: translateX(0) scaleY(1) } 25% { transform: translateX(4px) scaleY(.98) } 50% { transform: translateX(0) scaleY(1) } 75% { transform: translateX(-3px) scaleY(1.02) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes da-haze { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(40px) scale(1.2) } 100% { transform: translateX(0) scale(1) } }

/* preparations */
.scn-preparations {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 60%, #deb887 100%),
              radial-gradient(ellipse at 50% 0%, #ffedb0 0%, transparent 70%);
}
.scn-preparations .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 100%); animation: pr-sky 15s ease-in-out infinite alternate; }
.scn-preparations .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a6a8a 0%, #2a4a6a 100%); border-radius: 30% 20% 0 0 / 40% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: pr-sea 8s ease-in-out infinite alternate; }
.scn-preparations .ship-hull { position:absolute; bottom:30%; left:40%; width:100px; height:40px; background: linear-gradient(180deg, #8b4513 0%, #5c2e0a 100%); border-radius: 0 0 60% 60% / 0 0 80% 80%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: pr-hull 6s ease-in-out infinite; }
.scn-preparations .mast { position:absolute; bottom:32%; left:45%; width:4px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); animation: pr-mast 6s ease-in-out infinite; }
.scn-preparations .sail { position:absolute; bottom:32%; left:46%; width:40px; height:50px; background: linear-gradient(135deg, #f5f5dc 0%, #e8e0c8 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 10% 100%); border-radius: 0 30% 0 0; box-shadow: 0 2px 8px rgba(0,0,0,.2); animation: pr-sail 6s ease-in-out infinite alternate; }
.scn-preparations .oar { position:absolute; bottom:30%; width:4px; height:30px; background: #5c2e0a; border-radius: 2px 2px 50% 50%; animation: pr-oar 4s ease-in-out infinite; }
.scn-preparations .oar-1 { left:38%; transform: rotate(10deg); animation-delay: 0s; }
.scn-preparations .oar-2 { left:52%; transform: rotate(-10deg); animation-delay: 2s; }
.scn-preparations .figure-crew { position:absolute; bottom:27%; width:10px; height:24px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-preparations .crew-1 { left:42%; animation: pr-crew 8s ease-in-out infinite; }
.scn-preparations .crew-2 { left:48%; animation: pr-crew 8s ease-in-out 4s infinite; }
@keyframes pr-sky { 0% { opacity:.8; background-position: 0% 0% } 50% { opacity:1; background-position: 10% 0% } 100% { opacity:.85; background-position: 0% 0% } }
@keyframes pr-sea { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes pr-hull { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pr-mast { 0% { transform: rotate(0) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes pr-sail { 0% { transform: scaleX(.9) skewX(0) } 50% { transform: scaleX(1.05) skewX(5deg) } 100% { transform: scaleX(.95) skewX(0) } }
@keyframes pr-oar { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes pr-crew { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* demodocus-comes */
.scn-demodocus-comes {
  background: linear-gradient(180deg, #c8b89a 0%, #b0987a 30%, #a08868 60%, #907858 100%),
              radial-gradient(ellipse at 50% 30%, #f0d8b0 0%, transparent 70%);
}
.scn-demodocus-comes .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #a08868 0%, #887058 100%); }
.scn-demodocus-comes .column { position:absolute; top:0; width:16px; height:100%; background: linear-gradient(180deg, #b8a080 0%, #907050 100%); border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,.2); }
.scn-demodocus-comes .column-l { left:10%; }
.scn-demodocus-comes .column-r { right:10%; }
.scn-demodocus-comes .table { position:absolute; bottom:20%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-demodocus-comes .bard-seat { position:absolute; bottom:20%; left:45%; width:18px; height:30px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(5deg); animation: dc-seat 8s ease-in-out infinite alternate; }
.scn-demodocus-comes .bard { position:absolute; bottom:25%; left:44%; width:14px; height:36px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dc-bard 6s ease-in-out infinite; }
.scn-demodocus-comes .lyre { position:absolute; bottom:28%; left:48%; width:10px; height:14px; background: linear-gradient(180deg, #c8a050 0%, #a08030 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: dc-lyre 4s ease-in-out infinite alternate; }
.scn-demodocus-comes .servant { position:absolute; bottom:15%; left:55%; width:12px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dc-servant 10s ease-in-out infinite; }
.scn-demodocus-comes .table-food { position:absolute; bottom:20%; left:37%; width:20px; height:6px; background: #a08030; border-radius: 20% 20% 10% 10%; box-shadow: 0 0 6px #ffd060; animation: dc-food 5s ease-in-out infinite alternate; }
@keyframes dc-seat { 0% { transform: rotate(5deg) } 50% { transform: rotate(7deg) } 100% { transform: rotate(3deg) } }
@keyframes dc-bard { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dc-lyre { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.05) rotate(5deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes dc-servant { 0% { transform: translateX(0) } 50% { transform: translateX(-8px) } 100% { transform: translateX(0) } }
@keyframes dc-food { 0% { opacity:.6; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.7; transform: scale(.98) } }

/* feast-and-song */
.scn-feast-and-song {
  background: linear-gradient(180deg, #c8b89a 0%, #b0987a 30%, #a08868 60%, #907858 100%),
              radial-gradient(ellipse at 50% 20%, #f0d8b0 0%, transparent 70%);
}
.scn-feast-and-song .hall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #a08868 0%, #887058 100%); }
.scn-feast-and-song .pillar-left { position:absolute; top:0; left:5%; width:12px; height:100%; background: linear-gradient(180deg, #b8a080 0%, #907050 100%); border-radius: 3px; box-shadow: 3px 0 6px rgba(0,0,0,.2); animation: fs-pillar 20s linear infinite alternate; }
.scn-feast-and-song .pillar-right { position:absolute; top:0; right:5%; width:12px; height:100%; background: linear-gradient(180deg, #b8a080 0%, #907050 100%); border-radius: 3px; box-shadow: -3px 0 6px rgba(0,0,0,.2); animation: fs-pillar 20s linear 10s infinite alternate; }
.scn-feast-and-song .dais { position:absolute; bottom:15%; left:30%; width:40%; height:5%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-feast-and-song .bard-singing { position:absolute; bottom:20%; left:42%; width:16px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fs-bard 6s ease-in-out infinite; }
.scn-feast-and-song .listener { position:absolute; bottom:15%; width:14px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-feast-and-song .listener-1 { left:32%; animation: fs-listener 10s ease-in-out infinite; }
.scn-feast-and-song .listener-2 { left:55%; animation: fs-listener 10s ease-in-out 5s infinite; }
.scn-feast-and-song .table-cups { position:absolute; bottom:18%; left:45%; width:18px; height:8px; background: #a08030; border-radius: 20%; box-shadow: 0 0 6px #ffd060; animation: fs-cups 4s ease-in-out infinite alternate; }
.scn-feast-and-song .wine-sparkle { position:absolute; bottom:19%; left:50%; width:4px; height:4px; background: #ffd060; border-radius: 50%; box-shadow: 0 0 8px 2px #ffd060; animation: fs-sparkle 2s ease-in-out infinite alternate; }
@keyframes fs-pillar { 0% { opacity:.8 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes fs-bard { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-3px) rotate(3deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fs-listener { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fs-cups { 0% { transform: scaleY(.9) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(.95) } }
@keyframes fs-sparkle { 0% { opacity:.3; transform: scale(.5) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.4; transform: scale(.6) } }

.scn-penelope-grieves {
  background:
    radial-gradient(ellipse at 50% 40%, #4a3e3a 0%, #2a1e1a 40%, transparent 70%),
    linear-gradient(180deg, #2a2220 0%, #1e1816 40%, #161210 100%);
}
.scn-penelope-grieves .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #3a2e2a 0%, #2a1e1a 50%, #1e1614 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
}
.scn-penelope-grieves .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1e1816 0%, #120e0c 100%);
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.5);
}
.scn-penelope-grieves .window {
  position: absolute; top: 22%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #4a5a6a 0%, #2a3a4a 50%, #1a2028 100%);
  border: 6px solid #2a1e18;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3), 0 0 8px rgba(100,120,140,0.2);
  animation: pg-g-window 8s ease-in-out infinite alternate;
}
.scn-penelope-grieves .rain {
  position: absolute; top: 22%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: repeating-linear-gradient(
    0deg,
    rgba(180,200,220,0.3) 0px,
    transparent 2px,
    rgba(180,200,220,0.1) 4px,
    transparent 6px
  );
  animation: pg-g-rain 0.4s linear infinite;
  pointer-events: none;
}
.scn-penelope-grieves .lamp {
  position: absolute; top: 38%; left: 28%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 50%, #d4a060 0%, #a07030 60%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(180,120,40,0.5), 0 0 40px 12px rgba(180,120,40,0.2);
  animation: pg-g-lamp 3s ease-in-out infinite alternate;
}
.scn-penelope-grieves .figure {
  position: absolute; bottom: 32%; left: 38%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1410 50%, #0a0806 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pg-g-figure 6s ease-in-out infinite;
}
.scn-penelope-grieves .chair {
  position: absolute; bottom: 31%; left: 46%; width: 36px; height: 44px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0e08 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  transform: perspective(120px) rotateX(5deg);
}
.scn-penelope-grieves .shadow {
  position: absolute; bottom: 0; left: -10%; width: 120%; height: 40%;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(12px);
  pointer-events: none;
}
@keyframes pg-g-window {
  0% { opacity: 0.5; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 0.7; transform: translateX(-50%) scaleY(1.02); }
  100% { opacity: 0.5; transform: translateX(-50%) scaleY(0.98); }
}
@keyframes pg-g-rain {
  0% { background-position: 0 0; }
  100% { background-position: 0 20px; }
}
@keyframes pg-g-lamp {
  0% { box-shadow: 0 0 15px 4px rgba(180,120,40,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 28px 8px rgba(200,140,50,0.7); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px rgba(180,120,40,0.5); opacity: 0.85; }
}
@keyframes pg-g-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(6px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(3px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}

.scn-penelope-laments {
  background:
    radial-gradient(ellipse at 60% 50%, #5a3a2a 0%, #2a1a10 40%, transparent 70%),
    radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 50%),
    linear-gradient(180deg, #1e1410 0%, #16100c 50%, #0e0a08 100%);
}
.scn-penelope-laments .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a1e18 0%, #1e1410 50%, #16100c 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
}
.scn-penelope-laments .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-penelope-laments .hearth {
  position: absolute; bottom: 18%; left: 42%; width: 70px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%);
  border-radius: 60% 60% 20% 20%;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
}
.scn-penelope-laments .flame {
  position: absolute; bottom: 28%; left: 47%; width: 16px; height: 24px;
  background: radial-gradient(ellipse at 50% 60%, #e8a040 0%, #c07030 40%, #8a4018 70%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(200,120,40,0.5), 0 0 60px 20px rgba(200,120,40,0.2);
  animation: pg-l-flame 0.35s ease-in-out infinite alternate;
}
.scn-penelope-laments .figure {
  position: absolute; bottom: 26%; left: 32%; width: 30px; height: 64px;
  background: linear-gradient(180deg, #3a2820 0%, #1e1410 50%, #0e0a06 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pg-l-figure 3.5s ease-in-out infinite;
}
.scn-penelope-laments .maid {
  position: absolute; bottom: 26%; right: 28%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1e18 0%, #16100c 50%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pg-l-maid 4s ease-in-out infinite alternate;
}
.scn-penelope-laments .pillar {
  position: absolute; bottom: 10%; left: 22%; width: 14px; height: 80%;
  background: linear-gradient(90deg, #2a1e18 0%, #3a2a20 30%, #2a1e18 60%, #1a120e 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
}
.scn-penelope-laments .vase {
  position: absolute; bottom: 20%; left: 64%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e08 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  transform: skewX(-2deg);
}
@keyframes pg-l-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  30% { transform: scaleY(1.1) translateY(-2px); opacity: 1; }
  60% { transform: scaleY(0.95) translateY(1px); opacity: 0.9; }
  100% { transform: scaleY(1.05) translateY(-1px); opacity: 0.85; }
}
@keyframes pg-l-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(-2px) rotate(1deg) scaleY(1.01); }
  50% { transform: translateX(0) rotate(3deg); }
  75% { transform: translateX(2px) rotate(-2deg) scaleY(0.99); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes pg-l-maid {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  50% { transform: translateX(4px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(-2px) translateY(0) rotate(1deg); }
}

.scn-euryclea-speaks {
  background:
    radial-gradient(ellipse at 50% 45%, #5a4232 0%, #3a2a1e 35%, transparent 65%),
    linear-gradient(180deg, #2a1e18 0%, #1e1410 50%, #16100c 100%);
}
.scn-euryclea-speaks .wall {
  position: absolute; inset: 0 0 32% 0;
  background: linear-gradient(135deg, #3a2a20 0%, #2a1e18 50%, #1e1410 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.5);
}
.scn-euryclea-speaks .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #221a16 0%, #14100c 100%);
  box-shadow: inset 0 10px 24px rgba(0,0,0,0.6);
}
.scn-euryclea-speaks .doorway {
  position: absolute; top: 20%; left: 24%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border: 3px solid #2a1e14;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-euryclea-speaks .lamp {
  position: absolute; top: 36%; left: 50%; width: 10px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 50%, #e0b060 0%, #b08040 60%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 25px 8px rgba(180,120,50,0.6), 0 0 50px 16px rgba(180,120,50,0.25);
  animation: pg-e-lamp 2.5s ease-in-out infinite alternate;
}
.scn-euryclea-speaks .figure-old {
  position: absolute; bottom: 28%; left: 36%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a120e 50%, #0e0a06 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pg-e-old 4s ease-in-out infinite;
}
.scn-euryclea-speaks .figure-young {
  position: absolute; bottom: 30%; left: 52%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #3a2820 0%, #1e1410 50%, #0e0a06 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pg-e-young 3s ease-in-out infinite alternate;
}
.scn-euryclea-speaks .table {
  position: absolute; bottom: 24%; left: 42%; width: 48px; height: 8px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 2px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
  transform: perspective(80px) rotateX(10deg);
}
.scn-euryclea-speaks .cup {
  position: absolute; bottom: 30%; left: 46%; width: 8px; height: 6px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
@keyframes pg-e-lamp {
  0% { box-shadow: 0 0 20px 6px rgba(180,120,50,0.5); opacity: 0.9; }
  50% { box-shadow: 0 0 35px 10px rgba(200,140,60,0.7); opacity: 1; }
  100% { box-shadow: 0 0 22px 7px rgba(180,120,50,0.5); opacity: 0.92; }
}
@keyframes pg-e-old {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(2px) rotate(2deg) scaleY(1.01); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(1deg) scaleY(0.99); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes pg-e-young {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  50% { transform: translateX(-4px) translateY(-2px) rotate(-3deg); }
  100% { transform: translateX(2px) translateY(0) rotate(2deg); }
}

.scn-penelope-prays {
  background:
    radial-gradient(ellipse at 50% 35%, #4a3e32 0%, #2a1e16 35%, transparent 60%),
    radial-gradient(ellipse at 30% 50%, #3a2a1e 0%, transparent 50%),
    linear-gradient(180deg, #221a16 0%, #1a1410 50%, #120e0a 100%);
}
.scn-penelope-prays .wall {
  position: absolute; inset: 0 0 28% 0;
  background: linear-gradient(135deg, #322420 0%, #221a16 50%, #1a1410 100%);
  box-shadow: inset 0 0 70px rgba(0,0,0,0.6);
}
.scn-penelope-prays .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #1e1612 0%, #120e0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-penelope-prays .altar {
  position: absolute; bottom: 18%; left: 50%; width: 32px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e06 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
}
.scn-penelope-prays .flame-altar {
  position: absolute; bottom: 30%; left: 50%; width: 12px; height: 18px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #e8a840 0%, #c08030 40%, #904018 70%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 28px 8px rgba(200,120,40,0.5), 0 0 56px 16px rgba(200,120,40,0.2);
  animation: pg-p-flame 1.8s ease-in-out infinite alternate;
}
.scn-penelope-prays .figure {
  position: absolute; bottom: 22%; left: 38%; width: 28px; height: 62px;
  background: linear-gradient(180deg, #3a2620 0%, #1e1410 50%, #0e0a06 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pg-p-figure 7s ease-in-out infinite;
}
.scn-penelope-prays .basket {
  position: absolute; bottom: 26%; left: 54%; width: 16px; height: 12px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
  transform: perspective(40px) rotateX(8deg);
}
.scn-penelope-prays .column {
  position: absolute; bottom: 0; left: 16%; width: 12px; height: 85%;
  background: linear-gradient(90deg, #2a1e14 0%, #3a2a1e 30%, #2a1e14 60%, #1a120e 100%);
  border-radius: 3px;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.3);
}
.scn-penelope-prays .smoke {
  position: absolute; bottom: 32%; left: 48%; width: 30px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, rgba(160,140,120,0.2) 0%, transparent 70%);
  filter: blur(6px);
  animation: pg-p-smoke 6s ease-in-out infinite;
  pointer-events: none;
}
@keyframes pg-p-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.85; }
  30% { transform: scaleY(1.08) scaleX(0.95) translateY(-1px); opacity: 1; }
  70% { transform: scaleY(0.92) scaleX(1.05) translateY(1px); opacity: 0.9; }
  100% { transform: scaleY(1.02) scaleX(0.98) translateY(0); opacity: 0.88; }
}
@keyframes pg-p-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  20% { transform: translateX(0) rotate(-1deg) translateY(-2px); }
  40% { transform: translateX(0) rotate(-1deg) translateY(0); }
  60% { transform: translateX(0) rotate(-1deg) translateY(-1px); }
  80% { transform: translateX(0) rotate(-1deg) translateY(0); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes pg-p-smoke {
  0% { transform: translateY(0) scaleX(1); opacity: 0.3; }
  50% { transform: translateY(-20px) scaleX(1.5); opacity: 0.1; }
  100% { transform: translateY(-40px) scaleX(2); opacity: 0; }
}

/* telemachus-returns: calm dim interior, firelight, homecoming */
.scn-telemachus-returns {
  background:
    radial-gradient(ellipse at 50% 20%, #b87a4a 0%, transparent 50%),
    linear-gradient(180deg, #2e1a0c 0%, #3a2218 30%, #4a2e1a 70%, #1f1108 100%);
}
.scn-telemachus-returns .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #1f1108 0%, #3a2218 30%, #2e1a0c 70%, #1a0d06 100%);
  animation: tr-wall 20s ease-in-out infinite alternate;
}
.scn-telemachus-returns .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #2a1a0e 0%, #3a2218 100%);
  border-top: 2px solid #4a2e1a;
}
.scn-telemachus-returns .fire {
  position: absolute; bottom: 28%; left: 15%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #ff6a20 0%, #cc4400 40%, #661100 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 60px 30px rgba(255,106,32,.5);
  animation: tr-fire 1.5s ease-in-out infinite alternate;
}
.scn-telemachus-returns .table {
  position: absolute; bottom: 25%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(0deg, #3a2218 0%, #4a2e1a 100%);
  border-radius: 8% 8% 4% 4%;
  transform: perspective(200px) rotateX(10deg);
}
.scn-telemachus-returns .meat {
  position: absolute; bottom: 43%; left: 25%; width: 20px; height: 30px;
  background: radial-gradient(ellipse, #5e2e1a 0%, #3a1a0e 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: tr-meat 3s ease-in-out infinite alternate;
}
.scn-telemachus-returns .figure-telemachus {
  position: absolute; bottom: 25%; left: 50%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1f1108 0%, #0d0704 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-walk 5s ease-in-out infinite;
}
.scn-telemachus-returns .figure-antinous {
  position: absolute; bottom: 25%; left: 35%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2e1a0c 0%, #1a0d06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: tr-zag 4s ease-in-out infinite alternate;
}
@keyframes tr-wall { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes tr-fire { 0% { transform: scaleY(1) translateY(0); opacity: .9; } 50% { transform: scaleY(1.1) translateY(-3px); opacity: 1; } 100% { transform: scaleY(.95) translateY(2px); opacity: .85; } }
@keyframes tr-meat { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(1px); } }
@keyframes tr-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(10px) rotate(2deg); } 50% { transform: translateX(20px) rotate(-1deg); } 75% { transform: translateX(30px) rotate(1deg); } 100% { transform: translateX(40px) rotate(0); } }
@keyframes tr-zag { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }

/* telemachus-refuses: tense, sharp movements, snatching hand */
.scn-telemachus-refuses {
  background:
    radial-gradient(ellipse at 40% 70%, #ff7a30 0%, transparent 60%),
    linear-gradient(180deg, #1a0800 0%, #2e1208 40%, #1a0d06 100%);
}
.scn-telemachus-refuses .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #0d0500 0%, #1f0d06 30%, #1a0800 70%, #0a0300 100%);
}
.scn-telemachus-refuses .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #1a0d06 0%, #2e1208 100%);
}
.scn-telemachus-refuses .figure-telemachus {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #0d0704 0%, #080400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tf-snatch 2s ease-in-out infinite;
}
.scn-telemachus-refuses .figure-antinous {
  position: absolute; bottom: 20%; left: 38%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #2a1208 0%, #1a0800 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: tf-lean 3s ease-in-out infinite alternate;
}
.scn-telemachus-refuses .hand-reject {
  position: absolute; bottom: 42%; left: 50%; width: 14px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, #1a0d06 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(30deg);
  transform-origin: bottom right;
  animation: tf-hand 0.8s ease-in-out infinite alternate;
}
.scn-telemachus-refuses .shadow-jeer {
  position: absolute; bottom: 20%; left: 20%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: tf-jeer 4s ease-in-out infinite;
}
@keyframes tf-snatch { 0% { transform: translateX(0) rotate(-5deg); } 30% { transform: translateX(-15px) rotate(5deg); } 60% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes tf-lean { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-5px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes tf-hand { 0% { transform: rotate(20deg) scale(1); } 100% { transform: rotate(40deg) scale(1.1); } }
@keyframes tf-jeer { 0% { opacity: .3; transform: translateX(0); } 50% { opacity: .6; transform: translateX(10px); } 100% { opacity: .2; transform: translateY(5px); } }

/* telemachus-store-room: calm, storage, Euryclea guard */
.scn-telemachus-store-room {
  background:
    radial-gradient(ellipse at 30% 50%, #6b4a2a 0%, transparent 50%),
    linear-gradient(180deg, #1f1208 0%, #2a1a0e 40%, #1a0d06 100%);
}
.scn-telemachus-store-room .bg-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #1a0d06 0%, #2a1a0e 30%, #1f1208 70%, #120a04 100%);
}
.scn-telemachus-store-room .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #120a04 0%, #1f1208 100%);
}
.scn-telemachus-store-room .shelf {
  position: absolute; bottom: 45%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(90deg, #3a2218 0%, #4a2e1a 50%, #3a2218 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-telemachus-store-room .jar-1 { position: absolute; bottom: 48%; left: 15%; width: 20px; height: 28px; background: linear-gradient(180deg, #5e3a1a 0%, #3a2218 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ts-jar 8s ease-in-out infinite alternate; }
.scn-telemachus-store-room .jar-2 { position: absolute; bottom: 48%; left: 40%; width: 22px; height: 30px; background: linear-gradient(180deg, #6b4a2a 0%, #4a2e1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ts-jar 10s ease-in-out infinite alternate-reverse; }
.scn-telemachus-store-room .jar-3 { position: absolute; bottom: 48%; left: 65%; width: 18px; height: 26px; background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ts-jar 12s ease-in-out infinite alternate; }
.scn-telemachus-store-room .figure-euryclea {
  position: absolute; bottom: 18%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1f1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ts-stand 6s ease-in-out infinite;
}
.scn-telemachus-store-room .treasure-pile {
  position: absolute; bottom: 15%; right: 10%; width: 60px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, #c8a040 0%, #b08030 30%, #4a2e1a 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: ts-glow 5s ease-in-out infinite alternate;
}
@keyframes ts-jar { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ts-stand { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes ts-glow { 0% { box-shadow: 0 4px 8px rgba(0,0,0,.5); } 50% { box-shadow: 0 4px 16px 4px rgba(200,160,64,.3); } 100% { box-shadow: 0 4px 8px rgba(0,0,0,.5); } }

/* telemachus-orders: determined, nurse drawing wine, stacked jars */
.scn-telemachus-orders {
  background:
    radial-gradient(ellipse at 40% 30%, #8b5e3c 0%, transparent 50%),
    linear-gradient(180deg, #1f1208 0%, #2a1a0e 40%, #1a0d06 100%);
}
.scn-telemachus-orders .bg-wall {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(90deg, #120a04 0%, #1f1208 30%, #2a1a0e 70%, #120a04 100%);
}
.scn-telemachus-orders .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(0deg, #0d0704 0%, #1f1208 100%);
}
.scn-telemachus-orders .shelf {
  position: absolute; bottom: 55%; left: 5%; right: 5%; height: 6px;
  background: linear-gradient(90deg, #4a2e1a 0%, #3a2218 50%, #4a2e1a 100%);
  border-radius: 2px;
}
.scn-telemachus-orders .jar-a { position: absolute; bottom: 58%; left: 12%; width: 18px; height: 24px; background: linear-gradient(180deg, #5e3a1a 0%, #3a2218 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: to-jar 6s ease-in-out infinite; }
.scn-telemachus-orders .jar-b { position: absolute; bottom: 58%; left: 38%; width: 20px; height: 26px; background: linear-gradient(180deg, #6b4a2a 0%, #4a2e1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: to-jar 7s ease-in-out infinite alternate; }
.scn-telemachus-orders .jar-c { position: absolute; bottom: 58%; left: 64%; width: 22px; height: 28px; background: linear-gradient(180deg, #5e3a1a 0%, #2a1a0e 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: to-jar 8s ease-in-out infinite reverse; }
.scn-telemachus-orders .figure-nurse {
  position: absolute; bottom: 12%; left: 28%; width: 24px; height: 54px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1f1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: to-pour 4s ease-in-out infinite;
}
.scn-telemachus-orders .figure-telemachus {
  position: absolute; bottom: 12%; left: 50%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1f1208 0%, #120a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: to-sway 6s ease-in-out infinite;
}
.scn-telemachus-orders .wine-stream {
  position: absolute; bottom: 48%; left: 33%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #9a3a1a 0%, #6b2a0e 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 6px 2px rgba(154,58,26,.4);
  animation: to-stream 1.5s ease-in-out infinite alternate;
}
@keyframes to-jar { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes to-pour { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes to-sway { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-2px); } }
@keyframes to-stream { 0% { transform: scaleY(1) translateY(0); opacity: .8; } 50% { transform: scaleY(1.15) translateY(-2px); opacity: 1; } 100% { transform: scaleY(.9) translateY(2px); opacity: .7; } }

.scn-dawn-departure { background: linear-gradient(180deg, #ffccaa 0%, #ffddaa 30%, #ffaa77 60%, #885533 100%), radial-gradient(ellipse at 50% 100%, #885533 0%, transparent 70%); }
.scn-dawn-departure .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #ffddbb 0%, #ffaa88 50%, transparent 100%); animation: ddp-sky 15s ease-in-out infinite alternate; }
.scn-dawn-departure .sun { position: absolute; top: 25%; left: 75%; width: 50px; height: 50px; background: radial-gradient(circle, #ffeecc 0%, #ffcc88 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 30px #ffcc88; animation: ddp-sun 25s ease-in-out infinite alternate; }
.scn-dawn-departure .sea { position: absolute; bottom: 25%; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #6688aa 0%, #445566 100%); border-radius: 10% 30% 0 0 / 20% 40% 0 0; animation: ddp-sea 8s ease-in-out infinite alternate; }
.scn-dawn-departure .house { position: absolute; bottom: 25%; left: 30%; width: 70px; height: 50px; background: linear-gradient(180deg, #aa7744 0%, #663322 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: ddp-house 10s ease-in-out infinite; }
.scn-dawn-departure .bench { position: absolute; bottom: 24%; left: 35%; width: 40px; height: 8px; background: linear-gradient(180deg, #ccaa88 0%, #a08866 100%); border-radius: 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: ddp-bench 12s ease-in-out infinite alternate; }
.scn-dawn-departure .figure { position: absolute; bottom: 23%; left: 34%; width: 14px; height: 28px; background: linear-gradient(180deg, #332211 0%, #221100 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ddp-walk 4s ease-in-out infinite; }
.scn-dawn-departure .cloud-1 { position: absolute; top: 10%; left: 10%; width: 90px; height: 20px; background: linear-gradient(180deg, rgba(255,230,200,0.6) 0%, rgba(255,200,150,0.2) 100%); border-radius: 50%; filter: blur(8px); animation: ddp-cloud1 40s linear infinite; }
.scn-dawn-departure .cloud-2 { position: absolute; top: 18%; right: 15%; width: 70px; height: 16px; background: linear-gradient(180deg, rgba(255,210,180,0.5) 0%, rgba(255,180,130,0.15) 100%); border-radius: 50%; filter: blur(6px); animation: ddp-cloud2 55s linear infinite reverse; }
@keyframes ddp-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ddp-sun { 0% { transform: translate(0, 0); opacity: 0.8; box-shadow: 0 0 60px 20px #ffcc88; } 50% { transform: translate(5px, -3px); opacity: 1; box-shadow: 0 0 100px 40px #ffcc88; } 100% { transform: translate(-2px, 2px); opacity: 0.9; box-shadow: 0 0 70px 25px #ffcc88; } }
@keyframes ddp-sea { 0% { transform: translateY(0); background-position: 0% 0%; } 50% { transform: translateY(-3px); background-position: 50% 0%; } 100% { transform: translateY(0); background-position: 100% 0%; } }
@keyframes ddp-house { 0%,100% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-2px) translateY(-2px); } }
@keyframes ddp-bench { 0%,100% { transform: translateX(0) scale(1); } 50% { transform: translateX(3px) scale(1.02); } }
@keyframes ddp-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes ddp-cloud1 { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes ddp-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-nestor-orders { background: linear-gradient(180deg, #ffccaa 0%, #ffddaa 20%, #ffaa77 50%, #664422 100%), radial-gradient(ellipse at 50% 100%, #664422 0%, transparent 60%); }
.scn-nestor-orders .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #ffddbb 0%, #ffaa88 40%, transparent 100%); animation: nor-sky 12s ease-in-out infinite alternate; }
.scn-nestor-orders .sun { position: absolute; top: 20%; left: 70%; width: 45px; height: 45px; background: radial-gradient(circle, #ffeecc 0%, #ffcc88 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 70px 25px #ffcc88; animation: nor-sun 20s ease-in-out infinite alternate; }
.scn-nestor-orders .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #887755 0%, #554433 100%); border-radius: 20% 10% 0 0 / 30% 20% 0 0; box-shadow: inset 0 8px 10px rgba(0,0,0,0.3); animation: nor-ground 30s ease-in-out infinite alternate; }
.scn-nestor-orders .nestor { position: absolute; bottom: 40%; left: 30%; width: 20px; height: 40px; background: linear-gradient(180deg, #332211 0%, #110000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nor-nestor 5s ease-in-out infinite; }
.scn-nestor-orders .son-1 { position: absolute; bottom: 38%; left: 45%; width: 16px; height: 34px; background: linear-gradient(180deg, #554433 0%, #332211 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nor-son1 6s ease-in-out infinite; }
.scn-nestor-orders .son-2 { position: absolute; bottom: 42%; left: 50%; width: 14px; height: 30px; background: linear-gradient(180deg, #665544 0%, #443322 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nor-son2 6.5s ease-in-out infinite 1s; }
.scn-nestor-orders .staff { position: absolute; bottom: 42%; left: 27%; width: 4px; height: 34px; background: linear-gradient(180deg, #886644 0%, #553322 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 4px 6px rgba(0,0,0,0.3); transform-origin: bottom center; animation: nor-staff 4s ease-in-out infinite; }
@keyframes nor-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes nor-sun { 0% { transform: scale(0.95); opacity: 0.7; box-shadow: 0 0 50px 20px #ffcc88; } 50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 90px 35px #ffcc88; } 100% { transform: scale(0.98); opacity: 0.8; box-shadow: 0 0 60px 25px #ffcc88; } }
@keyframes nor-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes nor-nestor { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(2px) translateY(-2px) rotate(5deg); } 50% { transform: translateX(4px) translateY(-1px) rotate(2deg); } 75% { transform: translateX(2px) translateY(-2px) rotate(5deg); } }
@keyframes nor-son1 { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 30% { transform: translateX(3px) translateY(-1px) rotate(-3deg); } 60% { transform: translateX(6px) translateY(0) rotate(1deg); } }
@keyframes nor-son2 { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 30% { transform: translateX(-2px) translateY(-2px) rotate(4deg); } 60% { transform: translateX(-4px) translateY(0) rotate(-2deg); } }
@keyframes nor-staff { 0%,100% { transform: rotate(0); } 25% { transform: rotate(8deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(10deg); } }

.scn-sacrifice-preparations { background: linear-gradient(180deg, #aaccff 0%, #88bbdd 30%, #6699bb 60%, #447788 100%), radial-gradient(ellipse at 50% 80%, #6699bb 0%, transparent 70%); }
.scn-sacrifice-preparations .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #bbddff 0%, #88bbee 40%, transparent 100%); animation: spr-sky 10s ease-in-out infinite alternate; }
.scn-sacrifice-preparations .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #779966 0%, #445533 100%); border-radius: 10% 30% 0 0 / 20% 40% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.3); animation: spr-ground 20s ease-in-out infinite alternate; }
.scn-sacrifice-preparations .altar { position: absolute; bottom: 30%; left: 50%; width: 60px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #887766 0%, #665544 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: spr-altar 12s ease-in-out infinite; }
.scn-sacrifice-preparations .heifer { position: absolute; bottom: 32%; left: 40%; width: 30px; height: 18px; background: linear-gradient(135deg, #aa8866 0%, #886644 50%, #664422 100%); border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%; transform-origin: bottom center; animation: spr-heifer 8s ease-in-out infinite; }
.scn-sacrifice-preparations .goldsmith { position: absolute; bottom: 35%; left: 25%; width: 16px; height: 32px; background: linear-gradient(180deg, #554433 0%, #332211 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: spr-goldsmith 6s ease-in-out infinite; }
.scn-sacrifice-preparations .anvil { position: absolute; bottom: 33%; left: 22%; width: 20px; height: 10px; background: linear-gradient(180deg, #888888 0%, #555555 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: spr-anvil 9s ease-in-out infinite alternate; }
.scn-sacrifice-preparations .minerva { position: absolute; bottom: 36%; left: 55%; width: 18px; height: 36px; background: linear-gradient(180deg, #ffddaa 0%, #ffbb77 50%, #cc8844 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 40px 15px rgba(255,200,100,0.6); transform-origin: bottom center; animation: spr-minerva 7s ease-in-out infinite; }
.scn-sacrifice-preparations .flame { position: absolute; bottom: 30%; left: 50%; width: 10px; height: 20px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ffaa44 0%, #ff6600 50%, transparent 100%); border-radius: 50% 50% 0 0; animation: spr-flame 1.5s ease-in-out infinite alternate; }
@keyframes spr-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes spr-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes spr-altar { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes spr-heifer { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(3deg); } 50% { transform: translateX(8px) rotate(0); } 75% { transform: translateX(4px) rotate(-3deg); } }
@keyframes spr-goldsmith { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(2px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(4px) translateY(0) rotate(0); } 75% { transform: translateX(2px) translateY(-1px) rotate(-2deg); } }
@keyframes spr-anvil { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes spr-minerva { 0%,100% { transform: translateX(0) translateY(0) scale(1); opacity: 0.9; box-shadow: 0 0 30px 10px rgba(255,200,100,0.5); } 25% { transform: translateX(2px) translateY(-3px) scale(1.02); opacity: 1; box-shadow: 0 0 50px 20px rgba(255,200,100,0.7); } 50% { transform: translateX(4px) translateY(0) scale(1); opacity: 0.95; box-shadow: 0 0 40px 15px rgba(255,200,100,0.6); } 75% { transform: translateX(2px) translateY(-2px) scale(0.98); opacity: 1; box-shadow: 0 0 50px 20px rgba(255,200,100,0.7); } }
@keyframes spr-flame { 0% { height: 20px; opacity: 0.7; } 50% { height: 25px; opacity: 1; } 100% { height: 18px; opacity: 0.8; } }

.scn-sacrifice-killed { background: linear-gradient(180deg, #ffeedd 0%, #ffcc99 30%, #dd8844 60%, #664422 100%), radial-gradient(ellipse at 50% 80%, #dd8844 0%, transparent 70%); }
.scn-sacrifice-killed .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #ffeebb 0%, #ffcc88 40%, transparent 100%); animation: skl-sky 10s ease-in-out infinite alternate; }
.scn-sacrifice-killed .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #887755 0%, #554433 100%); border-radius: 15% 25% 0 0 / 25% 35% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.3); animation: skl-ground 20s ease-in-out infinite alternate; }
.scn-sacrifice-killed .altar { position: absolute; bottom: 30%; left: 50%; width: 70px; height: 25px; transform: translateX(-50%); background: linear-gradient(180deg, #887766 0%, #665544 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: skl-altar 12s ease-in-out infinite; }
.scn-sacrifice-killed .fire { position: absolute; bottom: 30%; left: 50%; width: 30px; height: 40px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 80%, #ffaa44 0%, #ff6600 40%, #cc4400 80%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 60px 30px rgba(255,100,0,0.5); animation: skl-fire 1.5s ease-in-out infinite alternate; }
.scn-sacrifice-killed .smoke { position: absolute; top: 15%; left: 45%; width: 50px; height: 30px; background: radial-gradient(ellipse, rgba(180,180,180,0.4) 0%, transparent 100%); filter: blur(10px); animation: skl-smoke 8s ease-in-out infinite alternate; }
.scn-sacrifice-killed .woman-1 { position: absolute; bottom: 35%; left: 38%; width: 16px; height: 32px; background: linear-gradient(180deg, #664422 0%, #442211 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: skl-woman1 5s ease-in-out infinite; }
.scn-sacrifice-killed .woman-2 { position: absolute; bottom: 36%; left: 55%; width: 14px; height: 28px; background: linear-gradient(180deg, #775533 0%, #553322 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: skl-woman2 5.5s ease-in-out infinite 1s; }
.scn-sacrifice-killed .thighbones { position: absolute; bottom: 30%; left: 48%; width: 12px; height: 8px; background: linear-gradient(180deg, #ddccaa 0%, #bbaa88 100%); border-radius: 30% 30% 10% 10%; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: skl-bones 4s ease-in-out infinite alternate; }
@keyframes skl-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes skl-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes skl-altar { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes skl-fire { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.8; box-shadow: 0 0 40px 20px rgba(255,100,0,0.4); } 50% { transform: translateX(-50%) scaleY(1.05); opacity: 1; box-shadow: 0 0 70px 35px rgba(255,100,0,0.6); } 100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.9; box-shadow: 0 0 50px 25px rgba(255,100,0,0.5); } }
@keyframes skl-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-10px) scale(1.2); opacity: 0.5; } 100% { transform: translateY(0) scale(1.1); opacity: 0.4; } }
@keyframes skl-woman1 { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(2px) translateY(-2px) rotate(5deg); } 50% { transform: translateX(4px) translateY(0) rotate(0); } 75% { transform: translateX(2px) translateY(-1px) rotate(-5deg); } }
@keyframes skl-woman2 { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(-2px) translateY(-3px) rotate(-4deg); } 50% { transform: translateX(-4px) translateY(0) rotate(0); } 75% { transform: translateX(-2px) translateY(-1px) rotate(4deg); } }
@keyframes skl-bones { 0%,100% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(25deg) scale(1.05); } }

/* ulysses-praises-bard – warm firelit, two figures, gesture */
.scn-ulysses-praises-bard {
  background:
    linear-gradient(180deg, #3a2210 0%, #2a1a0a 40%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 70%, #7a4a20 0%, transparent 80%);
}
.scn-ulysses-praises-bard .shadow-bg {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: upb-shadow 10s ease-in-out infinite alternate;
}
.scn-ulysses-praises-bard .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #4a2a14 0%, #2a1a0a 100%);
  border-radius: 20% 80% 0 0 / 10% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-ulysses-praises-bard .fire {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 60px;
  height: 80px;
  transform: translateX(-50%);
  background:
    radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6030 20%, #cc4020 60%, transparent 100%);
  border-radius: 0 0 40% 40%;
  filter: blur(2px);
  animation: upb-fire 2s ease-in-out infinite alternate;
}
.scn-ulysses-praises-bard .felame-glow {
  position: absolute;
  bottom: 18%;
  left: 50%;
  width: 120px;
  height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,160,60,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: upb-glow 3s ease-in-out infinite alternate;
}
.scn-ulysses-praises-bard .bard {
  position: absolute;
  bottom: 25%;
  right: 30%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: upb-bard 6s ease-in-out infinite;
}
.scn-ulysses-praises-bard .lyre {
  position: absolute;
  bottom: 28%;
  right: 32%;
  width: 18px;
  height: 22px;
  background: linear-gradient(180deg, #a07040 0%, #704a20 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-15deg);
  animation: upb-lyre 4s ease-in-out infinite;
}
.scn-ulysses-praises-bard .ulysses {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 28px;
  height: 58px;
  background: linear-gradient(180deg, #4a2a14 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation: upb-ulysses 7s ease-in-out infinite;
}
.scn-ulysses-praises-bard .arm-gesture {
  position: absolute;
  bottom: 52%;
  left: 38%;
  width: 30px;
  height: 8px;
  background: #4a2a14;
  border-radius: 40% 40% 20% 20%;
  transform-origin: right center;
  transform: rotate(-20deg);
  animation: upb-arm 3s ease-in-out infinite alternate;
}
.scn-ulysses-praises-bard .spark {
  position: absolute;
  bottom: 40%;
  left: 50%;
  width: 4px;
  height: 4px;
  background: #ffa040;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ff8030;
  animation: upb-spark 3s ease infinite;
}
.scn-ulysses-praises-bard .spark1 { margin-left: -10px; animation-delay: 0s; }
.scn-ulysses-praises-bard .spark2 { margin-left: 12px; animation-delay: 1.2s; }

@keyframes upb-shadow { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes upb-fire { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.08) } 100% { transform: translateX(-50%) scaleY(0.95) } }
@keyframes upb-glow { 0% { opacity: 0.6; transform: translateX(-50%) scale(1) } 50% { opacity: 0.9; transform: translateX(-50%) scale(1.1) } 100% { opacity: 0.7; transform: translateX(-50%) scale(1.02) } }
@keyframes upb-bard { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes upb-lyre { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-15deg) } }
@keyframes upb-ulysses { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes upb-arm { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-20deg) } }
@keyframes upb-spark { 0% { transform: translate(0, 0) scale(1); opacity: 1 } 50% { transform: translate(-15px, -30px) scale(0.5); opacity: 0.6 } 100% { transform: translate(-30px, -60px) scale(0); opacity: 0 } }

/* bard-sings – calm, bard singing, Ulysses weeping, wooden horse hint */
.scn-bard-sings {
  background:
    linear-gradient(180deg, #2a1808 0%, #1a0c04 60%, #0e0602 100%),
    radial-gradient(ellipse at 50% 80%, #5a3010 0%, transparent 80%);
}
.scn-bard-sings .room-bg {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: bs-room 15s ease-in-out infinite alternate;
}
.scn-bard-sings .pillar {
  position: absolute;
  top: 0;
  left: 20%;
  width: 8px;
  height: 100%;
  background: linear-gradient(180deg, #7a5020 0%, #4a2a10 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 2px rgba(0,0,0,0.6);
}
.scn-bard-sings .fire-pit {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 50px;
  height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff7020 0%, #cc4010 40%, transparent 100%);
  border-radius: 50% 50% 0 0;
  animation: bs-fire 4s ease-in-out infinite alternate;
}
.scn-bard-sings .ember {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 4px;
  height: 4px;
  background: #ffa040;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ff8030;
  animation: bs-ember 2s ease infinite;
  animation-delay: 0.5s;
}
.scn-bard-sings .bard-figure {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 26px;
  height: 55px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 35% 35%;
  animation: bs-bard 8s ease-in-out infinite;
}
.scn-bard-sings .lyre-body {
  position: absolute;
  bottom: 30%;
  left: 37%;
  width: 14px;
  height: 20px;
  background: linear-gradient(180deg, #a07040 0%, #704a20 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-10deg);
  animation: bs-lyre 5s ease-in-out infinite;
}
.scn-bard-sings .horse-head {
  position: absolute;
  bottom: 35%;
  right: 20%;
  width: 40px;
  height: 50px;
  background: linear-gradient(180deg, #4a2a14 0%, #2a1408 100%);
  border-radius: 20% 80% 60% 20% / 40% 60% 40% 20%;
  transform: rotate(10deg);
  opacity: 0.7;
  animation: bs-horse 10s ease-in-out infinite;
}
.scn-bard-sings .ulysses-sorrow {
  position: absolute;
  bottom: 25%;
  left: 58%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #4a2a14 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bs-ulysses 6s ease-in-out infinite;
}
.scn-bard-sings .tear {
  position: absolute;
  bottom: 50%;
  left: 59%;
  width: 3px;
  height: 6px;
  background: radial-gradient(circle, #a0c0d0 0%, transparent 100%);
  border-radius: 50%;
  animation: bs-tear 4s ease infinite;
}

@keyframes bs-room { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes bs-fire { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.06) } 100% { transform: translateX(-50%) scale(0.94) } }
@keyframes bs-ember { 0% { transform: translate(0, 0) scale(1); opacity: 1 } 50% { transform: translate(-8px, -16px) scale(0.6); opacity: 0.7 } 100% { transform: translate(-16px, -32px) scale(0); opacity: 0 } }
@keyframes bs-bard { 0% { transform: rotate(0deg) } 25% { transform: rotate(1deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes bs-lyre { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-10deg) } }
@keyframes bs-horse { 0% { transform: rotate(10deg) scale(0.95) } 50% { transform: rotate(15deg) scale(1) } 100% { transform: rotate(10deg) scale(0.95) } }
@keyframes bs-ulysses { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) } }
@keyframes bs-tear { 0% { transform: translate(0, 0); opacity: 0.8 } 50% { transform: translate(2px, 10px); opacity: 0.4 } 100% { transform: translate(4px, 20px); opacity: 0 } }

/* alcinous-asks – kind, king seated, Ulysses standing, columns */
.scn-alcinous-asks {
  background:
    linear-gradient(180deg, #2a1a08 0%, #1a0e04 50%, #0e0602 100%),
    radial-gradient(ellipse at 50% 60%, #6a3a18 0%, transparent 80%);
}
.scn-alcinous-asks .hall-bg {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: aa-hall 12s ease-in-out infinite alternate;
}
.scn-alcinous-asks .column {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 6px;
  background: linear-gradient(180deg, #705020 0%, #402810 100%);
  box-shadow: 0 0 10px 2px rgba(0,0,0,0.5);
}
.scn-alcinous-asks .left-col { left: 15%; }
.scn-alcinous-asks .right-col { right: 15%; }
.scn-alcinous-asks .fire-alt {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 45px;
  height: 55px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8030 0%, #cc4010 30%, transparent 100%);
  border-radius: 0 0 40% 40%;
  filter: blur(3px);
  animation: aa-fire 3s ease-in-out infinite alternate;
}
.scn-alcinous-asks .king-throne {
  position: absolute;
  bottom: 15%;
  left: 25%;
  width: 40px;
  height: 50px;
  background: linear-gradient(180deg, #8a6020 0%, #5a3a18 100%);
  border-radius: 10% 10% 30% 30% / 10% 10% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: aa-throne 9s ease-in-out infinite;
}
.scn-alcinous-asks .king-figure {
  position: absolute;
  bottom: 20%;
  left: 28%;
  width: 28px;
  height: 50px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation: aa-king 7s ease-in-out infinite;
}
.scn-alcinous-asks .ulysses-stand {
  position: absolute;
  bottom: 20%;
  left: 58%;
  width: 26px;
  height: 54px;
  background: linear-gradient(180deg, #4a2a14 0%, #2a1a0a 100%);
  border-radius: 48% 48% 36% 36% / 55% 55% 38% 38%;
  animation: aa-ulysses 6s ease-in-out infinite;
}

@keyframes aa-hall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes aa-fire { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.07) } 100% { transform: translateX(-50%) scaleY(0.93) } }
@keyframes aa-throne { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes aa-king { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes aa-ulysses { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }

/* ulysses-begins-story – sad, Ulysses seated, head bowed, fire low */
.scn-ulysses-begins-story {
  background:
    linear-gradient(180deg, #1a0c04 0%, #0e0602 40%, #060200 100%),
    radial-gradient(ellipse at 50% 80%, #3a1a08 0%, transparent 90%);
}
.scn-ulysses-begins-story .dark-room {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: ubs-dark 16s ease-in-out infinite alternate;
}
.scn-ulysses-begins-story .low-fire {
  position: absolute;
  bottom: 18%;
  left: 50%;
  width: 40px;
  height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #cc4010 0%, #8a2008 40%, transparent 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
  animation: ubs-fire 4s ease-in-out infinite alternate;
}
.scn-ulysses-begins-story .flash {
  position: absolute;
  bottom: 17%;
  left: 50%;
  width: 60px;
  height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(200,80,20,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: ubs-flash 5s ease-in-out infinite alternate;
}
.scn-ulysses-begins-story .ulysses-sad {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ubs-ulysses 8s ease-in-out infinite;
}
.scn-ulysses-begins-story .cloak {
  position: absolute;
  bottom: 18%;
  left: 36%;
  width: 50px;
  height: 25px;
  background: linear-gradient(180deg, #2a1810 0%, #0e0602 100%);
  border-radius: 20% 80% 60% 40% / 40% 60% 40% 20%;
  transform: rotate(-5deg);
  animation: ubs-cloak 10s ease-in-out infinite;
}
.scn-ulysses-begins-story .hand-on-forehead {
  position: absolute;
  bottom: 52%;
  left: 42%;
  width: 10px;
  height: 8px;
  background: #3a2010;
  border-radius: 40% 40% 20% 20%;
  transform: rotate(10deg);
  animation: ubs-hand 4s ease-in-out infinite;
}
.scn-ulysses-begins-story .shadow-shape {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.5));
  animation: ubs-shadow 6s ease-in-out infinite alternate;
}
.scn-ulysses-begins-story .mote {
  position: absolute;
  top: 30%;
  width: 3px;
  height: 3px;
  background: #a06020;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px #804010;
  animation: ubs-mote 8s ease infinite;
}
.scn-ulysses-begins-story .mote1 { left: 20%; animation-delay: 0s; }
.scn-ulysses-begins-story .mote2 { left: 60%; animation-delay: 3.5s; }

@keyframes ubs-dark { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ubs-fire { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(0.92) } }
@keyframes ubs-flash { 0% { opacity: 0.3; transform: translateX(-50%) scale(1) } 50% { opacity: 0.7; transform: translateX(-50%) scale(1.1) } 100% { opacity: 0.4; transform: translateX(-50%) scale(0.95) } }
@keyframes ubs-ulysses { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-3deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes ubs-cloak { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(0deg) scale(1.02) } 100% { transform: rotate(-5deg) scale(1) } }
@keyframes ubs-hand { 0% { transform: rotate(10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(10deg) } }
@keyframes ubs-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }
@keyframes ubs-mote { 0% { transform: translate(0, 0) scale(1); opacity: 0.6 } 50% { transform: translate(10px, -30px) scale(0.4); opacity: 0.3 } 100% { transform: translate(20px, -60px) scale(0); opacity: 0 } }

/* one block per scene id. Append to style.css. */
.scn-minerva-as-girl { 
  background: linear-gradient(180deg, #2b1f3a 0%, #5a3e4a 40%, #8a5e4a 70%, #b07858 100%), 
              radial-gradient(ellipse at 50% 20%, #d4a878 0%, transparent 50%);
}
.scn-minerva-as-girl .sky-dusk { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a2f42 0%, #6a4a4a 40%, #9a6a4a 100%); animation: mg-sky 15s ease-in-out infinite alternate; }
.scn-minerva-as-girl .wall-left { position:absolute; top:35%; left:10%; width:20%; height:45%; background: linear-gradient(90deg, #3a2a2a 0%, #5a3a3a 100%); border-radius: 0 20% 20% 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: mg-wall 12s ease-in-out infinite; }
.scn-minerva-as-girl .wall-right { position:absolute; top:35%; right:10%; width:20%; height:45%; background: linear-gradient(90deg, #5a3a3a 0%, #3a2a2a 100%); border-radius: 20% 0 0 20%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: mg-wall 12s ease-in-out infinite reverse; }
.scn-minerva-as-girl .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 30% 30% 0 0; }
.scn-minerva-as-girl .figure-girl { position:absolute; bottom:15%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mg-walk-girl 5s ease-in-out infinite; }
.scn-minerva-as-girl .figure-ulysses { position:absolute; bottom:16%; left:45%; width:24px; height:42px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mg-walk-ulysses 5s ease-in-out infinite 0.6s; }
.scn-minerva-as-girl .cloud-veil { position:absolute; top:20%; left:40%; width:120px; height:80px; background: radial-gradient(ellipse, rgba(200,180,160,0.3) 0%, rgba(200,180,160,0.05) 70%); filter: blur(10px); animation: mg-drift 30s linear infinite; }
.scn-minerva-as-girl .star-glow { position:absolute; top:12%; left:68%; width:8px; height:8px; background: radial-gradient(circle, #fff2d0 0%, #c8a870 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 18px 6px rgba(200,168,112,0.4); animation: mg-twinkle 4s ease-in-out infinite alternate; }
@keyframes mg-sky { 0% { opacity:0.9; background-position: 0 0; } 50% { opacity:1; background-position: 0 -10px; } 100% { opacity:0.8; background-position: 0 0; } }
@keyframes mg-wall { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes mg-walk-girl { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(10px) translateY(0) rotate(-2deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(20px) translateY(0) rotate(0deg); } }
@keyframes mg-walk-ulysses { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(16px) translateY(0) rotate(0deg); } }
@keyframes mg-drift { 0% { transform: translateX(-30px) scaleY(1); } 50% { transform: translateX(40px) scaleY(1.05); } 100% { transform: translateX(120vw) scaleY(1); } }
@keyframes mg-twinkle { 0% { opacity:0.6; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(0.9); } }

.scn-minerva-reveals {
  background: linear-gradient(180deg, #2a1f3a 0%, #4a3a4a 40%, #6a4a4a 80%, #8a5a4a 100%),
              radial-gradient(ellipse at 50% 80%, #b08050 0%, transparent 60%);
}
.scn-minerva-reveals .bg-dusk { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #4a3a4a 0%, #6a5a4a 50%, #9a7a5a 100%); animation: mr-dusk 18s ease-in-out infinite alternate; }
.scn-minerva-reveals .palace-facade { position:absolute; bottom:20%; left:15%; right:15%; height:45%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.4); animation: mr-facade 14s ease-in-out infinite; }
.scn-minerva-reveals .doorway { position:absolute; bottom:20%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: #2a1e1a; border-radius: 20% 20% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); }
.scn-minerva-reveals .threshold-bronze { position:absolute; bottom:22%; left:50%; width:52px; height:6px; transform:translateX(-50%); background: linear-gradient(90deg, #8a6a30 0%, #b08240 50%, #8a6a30 100%); border-radius: 2px; box-shadow: 0 0 12px 4px #b08240; animation: mr-threshold 5s ease-in-out infinite alternate; }
.scn-minerva-reveals .figure-arete { position:absolute; bottom:25%; left:42%; width:22px; height:38px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-stand 8s ease-in-out infinite; }
.scn-minerva-reveals .figure-alcinous { position:absolute; bottom:26%; left:56%; width:24px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-stand 8s ease-in-out infinite 0.5s; }
.scn-minerva-reveals .figure-ulysses { position:absolute; bottom:24%; left:34%; width:20px; height:36px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-approach 12s ease-in-out infinite; }
.scn-minerva-reveals .light-ray { position:absolute; top:10%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, rgba(255,220,180,0.2) 0%, transparent 100%); transform: rotate(10deg); filter: blur(8px); animation: mr-light 7s ease-in-out infinite alternate; }
@keyframes mr-dusk { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes mr-facade { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes mr-threshold { 0% { opacity:0.8; box-shadow: 0 0 10px 2px #b08240; } 50% { opacity:1; box-shadow: 0 0 20px 6px #d0a060; } 100% { opacity:0.9; box-shadow: 0 0 14px 3px #b08240; } }
@keyframes mr-stand { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes mr-approach { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes mr-light { 0% { opacity:0.3; transform: rotate(8deg) scaleX(0.95); } 50% { opacity:0.5; transform: rotate(12deg) scaleX(1.05); } 100% { opacity:0.4; transform: rotate(10deg) scaleX(1); } }

.scn-minerva-explains {
  background: linear-gradient(180deg, #1a152a 0%, #2a2035 40%, #4a3040 80%, #6a4040 100%),
              radial-gradient(ellipse at 50% 100%, #6a4a3a 0%, transparent 70%);
}
.scn-minerva-explains .bg-dusk-dark { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1f30 0%, #4a3040 50%, #6a4a3a 100%); animation: me-sky 20s ease-in-out infinite alternate; }
.scn-minerva-explains .palace-wall { position:absolute; bottom:25%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 15% 15% 0 0; box-shadow: inset 0 0 25px rgba(0,0,0,0.5); }
.scn-minerva-explains .threshold { position:absolute; bottom:28%; left:50%; width:60px; height:4px; transform:translateX(-50%); background: linear-gradient(90deg, #a07040 0%, #c09050 50%, #a07040 100%); border-radius: 2px; box-shadow: 0 0 12px 2px #c09050; animation: me-threshold 7s ease-in-out infinite alternate; }
.scn-minerva-explains .figure-minerva { position:absolute; bottom:30%; left:35%; width:18px; height:36px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: me-leave 15s ease-in-out infinite; }
.scn-minerva-explains .figure-ulysses { position:absolute; bottom:29%; left:48%; width:20px; height:38px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: me-pause 10s ease-in-out infinite; }
.scn-minerva-explains .departing-light { position:absolute; top:15%; left:40%; width:60px; height:40px; background: radial-gradient(ellipse, rgba(255,200,150,0.3) 0%, transparent 70%); filter: blur(8px); animation: me-dissipate 20s ease-in-out infinite; }
.scn-minerva-explains .shadow-pool { position:absolute; bottom:25%; left:20%; right:20%; height:10%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%); animation: me-shadow 9s ease-in-out infinite alternate; }
@keyframes me-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes me-threshold { 0% { opacity:0.7; box-shadow: 0 0 8px 1px #c09050; } 50% { opacity:1; box-shadow: 0 0 18px 5px #d0a060; } 100% { opacity:0.8; box-shadow: 0 0 10px 2px #c09050; } }
@keyframes me-leave { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity:1; } 25% { transform: translateX(-10px) translateY(-2px) rotate(-2deg); opacity:0.8; } 50% { transform: translateX(-20px) translateY(-5px) rotate(-4deg); opacity:0.5; } 75% { transform: translateX(-10px) translateY(-2px) rotate(-2deg); opacity:0.7; } 100% { transform: translateX(0) translateY(0) rotate(0deg); opacity:0.9; } }
@keyframes me-pause { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes me-dissipate { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.3); } 100% { opacity:0.2; transform: scale(0.8); } }
@keyframes me-shadow { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-palace-description {
  background: linear-gradient(180deg, #2a1a20 0%, #5a3a30 30%, #9a6a40 60%, #c09050 100%),
              radial-gradient(ellipse at 50% 50%, #e0b070 0%, transparent 70%);
}
.scn-palace-description .bg-warm { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #7a4a30 0%, #c09050 50%, #e0b070 100%); animation: pd-sky 16s ease-in-out infinite alternate; }
.scn-palace-description .mastiff-left { position:absolute; bottom:20%; left:12%; width:50px; height:35px; background: linear-gradient(180deg, #a07040 0%, #6a4020 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 0 15px 3px #c09050; animation: pd-guard 6s ease-in-out infinite; }
.scn-palace-description .mastiff-right { position:absolute; bottom:20%; right:12%; width:50px; height:35px; background: linear-gradient(180deg, #a07040 0%, #6a4020 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 0 15px 3px #c09050; animation: pd-guard 6s ease-in-out infinite 0.5s; }
.scn-palace-description .torch-holder { position:absolute; bottom:50%; left:50%; width:8px; height:40px; transform:translateX(-50%); background: #5a3a2a; border-radius: 2px; }
.scn-palace-description .torch-flame { position:absolute; bottom:68%; left:50%; width:18px; height:25px; transform:translateX(-50%); background: radial-gradient(ellipse, #ffc860 0%, #ff8020 40%, #c04010 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 25px 8px #ff8020, 0 0 50px 15px rgba(255,128,32,0.3); animation: pd-flame 2s ease-in-out infinite alternate; }
.scn-palace-description .woven-seat { position:absolute; bottom:10%; left:30%; width:80px; height:40px; background: linear-gradient(135deg, #c8a060 25%, #a08040 50%, #c8a060 75%); border-radius: 5%; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); animation: pd-weave 12s ease-in-out infinite; }
.scn-palace-description .maid-silhouette { position:absolute; bottom:15%; right:20%; width:16px; height:34px; background: #1a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-maid 8s ease-in-out infinite; }
.scn-palace-description .golden-figure { position:absolute; bottom:35%; left:25%; width:12px; height:28px; background: linear-gradient(180deg, #c0a050 0%, #a08030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 12px 3px #e0c070; animation: pd-golden 5s ease-in-out infinite alternate; }
@keyframes pd-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes pd-guard { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes pd-flame { 0% { transform: translateX(-50%) scaleY(0.8); opacity:0.9; } 50% { transform: translateX(-50%) scaleY(1.15); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.9); opacity:0.95; } }
@keyframes pd-weave { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes pd-maid { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(2deg); } }
@keyframes pd-golden { 0% { opacity:0.8; box-shadow: 0 0 8px 1px #e0c070; transform: scale(1); } 50% { opacity:1; box-shadow: 0 0 20px 6px #e0c070; transform: scale(1.05); } 100% { opacity:0.9; box-shadow: 0 0 12px 3px #e0c070; transform: scale(0.98); } }

.scn-departure-for-pherae {
  background:
    linear-gradient(180deg, #b8d4f0 0%, #f0d8a0 50%, #e0b060 100%),
    radial-gradient(ellipse at 50% 100%, #c8a060 0%, transparent 70%);
}
.scn-departure-for-pherae .sky-sdp {
  position:absolute; inset:0 0 60% 0;
  background: linear-gradient(180deg, #a0c4e8 0%, #c0d8f0 40%, transparent 100%);
  animation: sdp-sky 20s ease-in-out infinite alternate;
}
.scn-departure-for-pherae .sun-sdp {
  position:absolute; top:15%; left:40%; width:50px; height:50px;
  background: radial-gradient(circle, #fff0c0 0%, #f0d080 60%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 40px 20px rgba(240,208,128,0.5), 0 0 80px 40px rgba(240,208,128,0.2);
  animation: sdp-sun 30s ease-in-out infinite;
}
.scn-departure-for-pherae .road-sdp {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #d0b090 0%, #b09878 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
  animation: sdp-road 25s ease-in-out infinite alternate;
}
.scn-departure-for-pherae .chariot-sdp {
  position:absolute; bottom:25%; left:35%; width:80px; height:40px;
  background: linear-gradient(90deg, #8a6a4a 0%, #a08060 50%, #8a6a4a 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: sdp-chariot 6s ease-in-out infinite;
}
.scn-departure-for-pherae .horse-a-sdp {
  position:absolute; bottom:30%; left:25%; width:30px; height:50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: sdp-horse 3s ease-in-out infinite;
}
.scn-departure-for-pherae .horse-b-sdp {
  position:absolute; bottom:30%; left:30%; width:30px; height:50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 30% 20% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: sdp-horse 3s ease-in-out 0.5s infinite;
}
.scn-departure-for-pherae .dust-sdp {
  position:absolute; bottom:28%; left:20%; right:50%; height:15%;
  background: radial-gradient(ellipse at 30% 100%, rgba(200,180,160,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: sdp-dust 4s ease-in-out infinite;
}
.scn-departure-for-pherae .provision-sdp {
  position:absolute; bottom:28%; left:42%; width:20px; height:30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sdp-provision 8s ease-in-out infinite;
}
@keyframes sdp-sky     { 0% { opacity:0.8; transform: translateY(0) } 50% { opacity:1; transform: translateY(-5px) } 100% { opacity:0.9; transform: translateY(2px) } }
@keyframes sdp-sun     { 0%, 100% { transform: scale(1) translate(0,0); opacity:0.9 } 50% { transform: scale(1.1) translate(-5px,-3px); opacity:1 } }
@keyframes sdp-road    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sdp-chariot { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes sdp-horse   { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-6px) rotate(-2deg) } 70% { transform: translateY(-2px) rotate(2deg) } }
@keyframes sdp-dust    { 0%,100% { opacity:0; transform: translateX(0) } 50% { opacity:0.6; transform: translateX(20px) } }
@keyframes sdp-provision { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }

.scn-arrival-at-sparta {
  background:
    linear-gradient(180deg, #1a2a3a 0%, #3a4a5a 30%, #b06030 60%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 0%, #c07040 0%, transparent 70%);
}
.scn-arrival-at-sparta .sky-sas {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a3a4a 0%, #6a4a2a 40%, #b06030 70%, transparent 100%);
  animation: sas-sky 25s ease-in-out infinite alternate;
}
.scn-arrival-at-sparta .sunset-sas {
  position:absolute; top:10%; left:60%; width:60px; height:60px;
  background: radial-gradient(circle, #f0a050 0%, #d07030 40%, transparent 80%);
  border-radius:50%;
  box-shadow: 0 0 60px 30px rgba(200,100,40,0.5);
  animation: sas-sunset 20s ease-in-out infinite;
}
.scn-arrival-at-sparta .palace-sas {
  position:absolute; bottom:22%; left:30%; right:10%; height:40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: sas-palace 15s ease-in-out infinite alternate;
}
.scn-arrival-at-sparta .gate-sas {
  position:absolute; bottom:22%; left:42%; width:40px; height:30%;
  background: linear-gradient(90deg, #6a4a2a 0%, #a08060 30%, #6a4a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.3);
  animation: sas-gate 12s ease-in-out infinite;
}
.scn-arrival-at-sparta .road-sas {
  position:absolute; bottom:0; left:30%; right:30%; height:25%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
  animation: sas-road 18s ease-in-out infinite alternate;
}
.scn-arrival-at-sparta .figures-sas {
  position:absolute; bottom:18%; left:40%; width:20px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: sas-figures 5s ease-in-out infinite;
}
.scn-arrival-at-sparta .torch-sas {
  position:absolute; bottom:28%; left:55%; width:8px; height:12px;
  background: radial-gradient(circle, #ffd080 0%, #e08030 60%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 30px 10px rgba(200,100,30,0.4);
  animation: sas-torch 2s ease-in-out infinite alternate;
}
@keyframes sas-sky     { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sas-sunset  { 0%,100% { transform: scale(1) translate(0,0); opacity:0.85 } 50% { transform: scale(1.1) translate(5px,-2px); opacity:1 } }
@keyframes sas-palace  { 0% { transform: scaleY(0.95); opacity:0.9 } 50% { transform: scaleY(1); opacity:1 } 100% { transform: scaleY(0.98); opacity:0.95 } }
@keyframes sas-gate    { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(1px) } }
@keyframes sas-road    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sas-figures { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(3deg) } 75% { transform: translateX(-3px) rotate(-2deg) } }
@keyframes sas-torch   { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(0.95) } }

.scn-feast-at-menelaus {
  background:
    linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 30%, #4a2a0a 60%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 80%, #6a3a1a 0%, transparent 80%);
}
.scn-feast-at-menelaus .hall-sfm {
  position:absolute; inset:10% 5% 5% 5%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 40%, #1a0a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: sfm-hall 20s ease-in-out infinite alternate;
}
.scn-feast-at-menelaus .table-sfm {
  position:absolute; bottom:15%; left:15%; right:15%; height:8%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 50%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: sfm-table 10s ease-in-out infinite;
}
.scn-feast-at-menelaus .fire-sfm {
  position:absolute; bottom:20%; left:48%; width:30px; height:40px;
  background: radial-gradient(ellipse at 50% 80%, #ffc080 0%, #e07030 40%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 60px 30px rgba(200,80,20,0.5), 0 0 120px 60px rgba(200,80,20,0.2);
  animation: sfm-fire 3s ease-in-out infinite alternate;
}
.scn-feast-at-menelaus .bard-sfm {
  position:absolute; bottom:25%; left:25%; width:20px; height:50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: sfm-bard 4s ease-in-out infinite;
}
.scn-feast-at-menelaus .lyre-sfm {
  position:absolute; bottom:35%; left:27%; width:12px; height:18px;
  background: linear-gradient(180deg, #a08060 0%, #6a4a2a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
  animation: sfm-lyre 3s ease-in-out infinite alternate;
}
.scn-feast-at-menelaus .tumbler-a-sfm {
  position:absolute; bottom:22%; left:60%; width:16px; height:30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sfm-tumbler 2s ease-in-out infinite;
}
.scn-feast-at-menelaus .tumbler-b-sfm {
  position:absolute; bottom:22%; left:65%; width:16px; height:30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sfm-tumbler 2s ease-in-out 0.8s infinite;
}
@keyframes sfm-hall    { 0% { opacity:0.8; transform: scale(0.98) } 50% { opacity:1; transform: scale(1) } 100% { opacity:0.9; transform: scale(0.99) } }
@keyframes sfm-table   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sfm-fire    { 0% { transform: scale(0.9) rotate(-3deg); opacity:0.8 } 50% { transform: scale(1.1) rotate(2deg); opacity:1 } 100% { transform: scale(0.95) rotate(-1deg); opacity:0.9 } }
@keyframes sfm-bard    { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-2px) rotate(2deg) } 70% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sfm-lyre    { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(1px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sfm-tumbler { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-10px) rotate(20deg) } 50% { transform: translateY(0) rotate(-10deg) } 75% { transform: translateY(-8px) rotate(15deg) } 100% { transform: translateY(0) rotate(0) } }

.scn-guests-welcome {
  background:
    linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 30%, #4a2a1a 60%, #1a0a0a 100%),
    radial-gradient(ellipse at 60% 100%, #6a3a1a 0%, transparent 70%);
}
.scn-guests-welcome .entrance-sgw {
  position:absolute; inset:15% 15% 5% 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: sgw-entrance 25s ease-in-out infinite alternate;
}
.scn-guests-welcome .horses-sgw {
  position:absolute; bottom:15%; left:20%; width:60px; height:45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: sgw-horses 6s ease-in-out infinite;
}
.scn-guests-welcome .servant-a-sgw {
  position:absolute; bottom:20%; left:35%; width:18px; height:40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: sgw-servant 8s ease-in-out infinite alternate;
}
.scn-guests-welcome .servant-b-sgw {
  position:absolute; bottom:20%; left:50%; width:18px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: sgw-servant 8s ease-in-out 4s infinite alternate;
}
.scn-guests-welcome .guest-a-sgw {
  position:absolute; bottom:20%; left:60%; width:16px; height:35px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: sgw-guest 5s ease-in-out infinite;
}
.scn-guests-welcome .guest-b-sgw {
  position:absolute; bottom:20%; left:67%; width:16px; height:35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: sgw-guest 5s ease-in-out 2.5s infinite;
}
.scn-guests-welcome .water-sgw {
  position:absolute; bottom:10%; left:30%; width:40px; height:20px;
  background: radial-gradient(ellipse at 50% 100%, #6a4a3a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sgw-water 15s ease-in-out infinite alternate;
}
.scn-guests-welcome .lantern-sgw {
  position:absolute; top:25%; left:40%; width:10px; height:14px;
  background: radial-gradient(circle, #ffd080 0%, #e08030 60%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200,100,30,0.5);
  animation: sgw-lantern 3s ease-in-out infinite alternate;
}
@keyframes sgw-entrance { 0% { opacity:0.8; transform: scale(0.97) } 50% { opacity:1; transform: scale(1) } 100% { opacity:0.9; transform: scale(0.99) } }
@keyframes sgw-horses   { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes sgw-servant  { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sgw-guest    { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sgw-water    { 0% { opacity:0.3; transform: scale(0.9) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(0.95) } }
@keyframes sgw-lantern  { 0% { opacity:0.8; transform: scale(0.9) rotate(-3deg) } 50% { opacity:1; transform: scale(1.1) rotate(2deg) } 100% { opacity:0.9; transform: scale(0.95) rotate(-1deg) } }

/* nestor-praises-ulysses — warm sunlit praise */
.scn-nestor-praises-ulysses {
  background: 
    linear-gradient(180deg, #f9d36e 0%, #e8b85a 40%, #c4923e 100%),
    radial-gradient(ellipse at 80% 20%, #ffe599 0%, transparent 60%);
}
.scn-nestor-praises-ulysses .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #e0f0ff 100%);
  animation: npr-sky 12s ease-in-out infinite alternate;
}
.scn-nestor-praises-ulysses .sun {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe066 0%, #ffcc33 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,204,51,0.4);
  animation: npr-sun 20s linear infinite alternate;
}
.scn-nestor-praises-ulysses .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2e6b8a 0%, #1a4d6e 30%, #0f3550 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: npr-sea 8s ease-in-out infinite alternate;
}
.scn-nestor-praises-ulysses .sand {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #d9b382 0%, #b8915e 100%);
  border-radius: 0 0 40% 40% / 0 0 80% 80%;
}
.scn-nestor-praises-ulysses .figure-left {
  position: absolute; bottom: 18%; left: 25%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #5c3a1e 0%, #2e1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: npr-figure-l 6s ease-in-out infinite;
}
.scn-nestor-praises-ulysses .figure-right {
  position: absolute; bottom: 18%; right: 25%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #5a3820 0%, #2c1808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: npr-figure-r 6s ease-in-out infinite;
}
.scn-nestor-praises-ulysses .spear {
  position: absolute; bottom: 22%; left: 30%; width: 3px; height: 60px;
  background: linear-gradient(180deg, #8b6f47 0%, #5a452a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: npr-spear 3s ease-in-out infinite alternate;
}
.scn-nestor-praises-ulysses .cloud {
  position: absolute; top: 12%; left: -10%; width: 100px; height: 20px;
  background: linear-gradient(90deg, rgba(255,255,255,0.6), rgba(255,255,255,0.1));
  border-radius: 50%;
  filter: blur(8px);
  animation: npr-cloud 35s linear infinite;
}

@keyframes npr-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes npr-sun { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(10px, -5px) scale(1.02); } 100% { transform: translate(0, 0) scale(1); } }
@keyframes npr-sea { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(-2px); } }
@keyframes npr-figure-l { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-3deg); } 50% { transform: translateY(-1px) rotate(2deg); } 75% { transform: translateY(-3px) rotate(-1deg); } }
@keyframes npr-figure-r { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(1deg); } }
@keyframes npr-spear { 0% { transform: rotate(-15deg) translateY(0); } 100% { transform: rotate(-10deg) translateY(-2px); } }
@keyframes npr-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

/* nestor-continues — sad sunlit departure */
.scn-nestor-continues {
  background: 
    linear-gradient(180deg, #b8a48c 0%, #8f7a64 40%, #6e5b48 100%),
    radial-gradient(ellipse at 50% 30%, #d4c0a8 0%, transparent 70%);
}
.scn-nestor-continues .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0a090 0%, #c0b0a0 100%);
  animation: nco-sky 15s ease-in-out infinite alternate;
}
.scn-nestor-continues .sun-dim {
  position: absolute; top: 10%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e6d5b0 0%, #c4b090 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(196,176,144,0.3);
  animation: nco-sun 25s linear infinite alternate;
}
.scn-nestor-continues .sea-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 40% 60% 0 0 / 60% 40% 0 0;
  animation: nco-sea 10s ease-in-out infinite alternate;
}
.scn-nestor-continues .shore-ruins {
  position: absolute; bottom: 10%; right: 10%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 0 40% 0 0;
  clip-path: polygon(0% 100%, 20% 60%, 40% 100%, 60% 50%, 80% 100%, 100% 70%, 100% 100%);
}
.scn-nestor-continues .smoke {
  position: absolute; bottom: 30%; right: 15%; width: 40px; height: 60px;
  background: radial-gradient(ellipse, rgba(180,160,140,0.4) 0%, transparent 100%);
  filter: blur(12px);
  animation: nco-smoke 8s ease-in-out infinite;
}
.scn-nestor-continues .figure-stern {
  position: absolute; bottom: 15%; left: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nco-figure 5s ease-in-out infinite;
}
.scn-nestor-continues .ship-hull {
  position: absolute; bottom: 12%; left: 15%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 40% 40% / 80% 80% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: nco-ship 12s ease-in-out infinite alternate;
}

@keyframes nco-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes nco-sun { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(8px,-4px) scale(0.98); } 100% { transform: translate(0,0) scale(1); } }
@keyframes nco-sea { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-2px); } }
@keyframes nco-smoke { 0% { opacity:0.3; transform: translateY(0) scale(1); } 50% { opacity:0.6; transform: translateY(-10px) scale(1.2); } 100% { opacity:0.2; transform: translateY(0) scale(1); } }
@keyframes nco-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes nco-ship { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }

/* nestor-narrates — tense sunlit confrontation */
.scn-nestor-narrates {
  background: 
    linear-gradient(180deg, #f0d6a0 0%, #d4b87a 30%, #b89a5a 100%),
    radial-gradient(ellipse at 50% 40%, #ffe8b0 0%, transparent 60%);
}
.scn-nestor-narrates .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b89a5a 0%, #8a7a4a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-nestor-narrates .sky-bright {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fff4d0 0%, #f0e0b0 100%);
  animation: nna-sky 8s ease-in-out infinite alternate;
}
.scn-nestor-narrates .figure-left {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nna-fig-l 4s ease-in-out infinite;
}
.scn-nestor-narrates .figure-right {
  position: absolute; bottom: 18%; right: 30%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nna-fig-r 4s ease-in-out infinite;
}
.scn-nestor-narrates .shield {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 30px;
  background: radial-gradient(circle, #c8553d 0%, #a04030 60%, #5a2020 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: nna-shield 2.5s ease-in-out infinite alternate;
}
.scn-nestor-narrates .dust {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: nna-dust 3s ease-in-out infinite;
}
.scn-nestor-narrates .spear-broken {
  position: absolute; bottom: 25%; right: 20%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 1px;
  transform: rotate(20deg);
  animation: nna-spear 0.8s linear infinite alternate;
}

@keyframes nna-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes nna-fig-l { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-4deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes nna-fig-r { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(-4px) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes nna-shield { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nna-dust { 0% { opacity:0.2; transform: translateY(0) scale(1); } 50% { opacity:0.8; transform: translateY(-8px) scale(1.3); } 100% { opacity:0.2; transform: translateY(0) scale(1); } }
@keyframes nna-spear { 0% { transform: rotate(20deg) translateY(0); } 100% { transform: rotate(25deg) translateY(-2px); } }

/* nestor-concludes — calm sunlit sailing */
.scn-nestor-concludes {
  background: 
    linear-gradient(180deg, #9dc8e0 0%, #6fa8c8 40%, #4a809a 100%),
    radial-gradient(ellipse at 50% 20%, #b8def0 0%, transparent 70%);
}
.scn-nestor-concludes .sky-calm {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d0e8f0 0%, #e0f0f8 100%);
  animation: ncn-sky 20s ease-in-out infinite alternate;
}
.scn-nestor-concludes .sun-gentle {
  position: absolute; top: 8%; left: 60%; width: 55px; height: 55px;
  background: radial-gradient(circle, #fff4d0 0%, #f0d8a0 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 70px 25px rgba(240,216,160,0.3);
  animation: ncn-sun 30s linear infinite alternate;
}
.scn-nestor-concludes .sea-calm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a5a7a 0%, #1a3a5a 40%, #0a2a4a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: ncn-sea 12s ease-in-out infinite alternate;
}
.scn-nestor-concludes .ship-hull {
  position: absolute; bottom: 18%; left: 20%; width: 90px; height: 28px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: ncn-hull 15s ease-in-out infinite;
}
.scn-nestor-concludes .sail {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c8b8 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 60% 60%;
  transform-origin: bottom left;
  animation: ncn-sail 8s ease-in-out infinite alternate;
}
.scn-nestor-concludes .dolphin {
  position: absolute; bottom: 20%; right: 15%; width: 40px; height: 14px;
  background: linear-gradient(180deg, #3a5a7a 0%, #2a4a6a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: ncn-dolphin 6s ease-in-out infinite;
}
.scn-nestor-concludes .cloud-slow {
  position: absolute; top: 10%; left: -15%; width: 120px; height: 18px;
  background: linear-gradient(90deg, rgba(255,255,255,0.6), rgba(255,255,255,0.1));
  border-radius: 50%;
  filter: blur(10px);
  animation: ncn-cloud 50s linear infinite;
}

@keyframes ncn-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ncn-sun { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(5px,-3px) scale(1.01); } 100% { transform: translate(0,0) scale(1); } }
@keyframes ncn-sea { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes ncn-hull { 0%,100% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(1px) rotate(0.5deg); } }
@keyframes ncn-sail { 0% { transform: rotate(-10deg) scaleY(1); } 100% { transform: rotate(5deg) scaleY(0.95); } }
@keyframes ncn-dolphin { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-8px) translateY(-6px) rotate(-5deg); } 50% { transform: translateX(-16px) translateY(0) rotate(0deg); } 75% { transform: translateX(-8px) translateY(6px) rotate(5deg); } }
@keyframes ncn-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(130vw); } }

/* scene: mercury-delivers */
.scn-mercury-delivers {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 40%, #b8a88a 100%),
    radial-gradient(ellipse at 30% 70%, #e8d4b0 0%, transparent 60%);
}
.scn-mercury-delivers .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b898 100%);
  border-radius: 0 0 20% 20%;
}
.scn-mercury-delivers .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-mercury-delivers .window {
  position: absolute; top: 12%; left: 18%; width: 40%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #fffde6 0%, #f0e8c8 70%, #d0c4a0 100%);
  border: 4px solid #8a7a5a; border-radius: 8%;
  box-shadow: 0 0 30px 10px rgba(255, 255, 200, 0.3);
  animation: md-window-glow 8s ease-in-out infinite alternate;
}
.scn-mercury-delivers .light-beam {
  position: absolute; top: 20%; left: 20%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,220,0.4) 0%, rgba(255,255,220,0) 100%);
  transform: skewX(-10deg);
  filter: blur(8px);
  animation: md-beam-pulse 12s ease-in-out infinite alternate;
}
.scn-mercury-delivers .figure-mercury {
  position: absolute; bottom: 20%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: md-figure-stand 6s ease-in-out infinite;
}
.scn-mercury-delivers .figure-calypso {
  position: absolute; bottom: 22%; right: 28%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: md-figure-sit 6s ease-in-out infinite alternate;
}
.scn-mercury-delivers .table {
  position: absolute; bottom: 24%; left: 50%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 5% 5%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-mercury-delivers .table-lamp {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffe080 0%, #c89840 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,224,128,0.6);
  animation: md-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-mercury-delivers .shadow-stern {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, transparent 60%, rgba(30,20,10,0.3) 100%);
  pointer-events: none;
}
@keyframes md-window-glow { 0% { opacity: 0.9; box-shadow: 0 0 20px 6px rgba(255,255,200,0.2); } 50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(255,255,200,0.4); } 100% { opacity: 0.85; box-shadow: 0 0 30px 8px rgba(255,255,200,0.3); } }
@keyframes md-beam-pulse { 0% { opacity: 0.3; transform: skewX(-10deg) scaleY(0.95); } 50% { opacity: 0.6; transform: skewX(-8deg) scaleY(1.05); } 100% { opacity: 0.35; transform: skewX(-10deg) scaleY(1); } }
@keyframes md-figure-stand { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes md-figure-sit { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes md-lamp-glow { 0% { box-shadow: 0 0 12px 4px rgba(255,224,128,0.4); opacity: 0.8; } 50% { box-shadow: 0 0 28px 10px rgba(255,224,128,0.7); opacity: 1; } 100% { box-shadow: 0 0 16px 5px rgba(255,224,128,0.5); opacity: 0.9; } }

/* scene: calypso-replies */
.scn-calypso-replies {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 40%, #b8a88a 100%),
    radial-gradient(ellipse at 30% 70%, #ffd4a0 0%, transparent 60%);
}
.scn-calypso-replies .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b898 100%);
  border-radius: 0 0 20% 20%;
}
.scn-calypso-replies .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-calypso-replies .window {
  position: absolute; top: 12%; left: 18%; width: 40%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #ffeecc 0%, #f0e0b0 70%, #d0b890 100%);
  border: 4px solid #8a7a5a; border-radius: 8%;
  box-shadow: 0 0 30px 10px rgba(255,220,150,0.4);
  animation: cr-window-flash 6s ease-in-out infinite alternate;
}
.scn-calypso-replies .light-beam {
  position: absolute; top: 20%; left: 20%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,220,150,0.6) 0%, rgba(255,220,150,0) 100%);
  transform: skewX(-10deg);
  filter: blur(8px);
  animation: cr-beam-anger 8s ease-in-out infinite alternate;
}
.scn-calypso-replies .figure-mercury {
  position: absolute; bottom: 20%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: cr-mercury-back 5s ease-in-out infinite;
}
.scn-calypso-replies .figure-calypso-anger {
  position: absolute; bottom: 22%; right: 28%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #7a4a2a 0%, #4a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-8deg) scale(1.05);
  animation: cr-calypso-angry 4s ease-in-out infinite alternate;
}
.scn-calypso-replies .table {
  position: absolute; bottom: 24%; left: 50%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 5% 5%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-calypso-replies .table-lamp-flicker {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffa040 0%, #c85020 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(255,160,64,0.7);
  animation: cr-lamp-flicker 0.4s ease-in-out infinite alternate;
}
.scn-calypso-replies .anger-burst {
  position: absolute; top: 30%; right: 30%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(200,80,30,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: cr-burst-pulse 3s ease-in-out infinite;
}
@keyframes cr-window-flash { 0% { opacity: 0.85; box-shadow: 0 0 20px 6px rgba(255,220,150,0.3); } 50% { opacity: 1; box-shadow: 0 0 50px 15px rgba(255,200,100,0.6); } 100% { opacity: 0.9; box-shadow: 0 0 30px 8px rgba(255,220,150,0.4); } }
@keyframes cr-beam-anger { 0% { opacity: 0.4; transform: skewX(-10deg) scaleY(0.9); } 50% { opacity: 0.8; transform: skewX(-5deg) scaleY(1.2); } 100% { opacity: 0.5; transform: skewX(-10deg) scaleY(1); } }
@keyframes cr-mercury-back { 0%,100% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(4px); } }
@keyframes cr-calypso-angry { 0% { transform: rotate(-8deg) scale(1.05) translateY(0); } 50% { transform: rotate(-12deg) scale(1.1) translateY(-3px); } 100% { transform: rotate(-6deg) scale(1.05) translateY(0); } }
@keyframes cr-lamp-flicker { 0% { transform: scale(1); opacity: 0.9; } 100% { transform: scale(1.2); opacity: 1; } }
@keyframes cr-burst-pulse { 0% { transform: scale(1); opacity: 0.2; } 50% { transform: scale(1.3); opacity: 0.5; } 100% { transform: scale(1); opacity: 0.3; } }

/* scene: mercury-leaves */
.scn-mercury-leaves {
  background:
    linear-gradient(180deg, #fde8b0 0%, #f0d090 30%, #c8a870 60%, #a08050 100%),
    radial-gradient(ellipse at 50% 0%, #ffe8b0 0%, transparent 70%);
}
.scn-mercury-leaves .sky-gold {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fee8b0 0%, #f0d8a0 50%, #d8b880 100%);
  animation: ml-sky-shift 20s ease-in-out infinite alternate;
}
.scn-mercury-leaves .sea {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b0c0d0 0%, #8090a0 100%);
  border-radius: 60% 40% 0 0 / 40% 50% 0 0;
  animation: ml-sea-swell 15s ease-in-out infinite alternate;
}
.scn-mercury-leaves .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #d0b880 0%, #b09860 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-mercury-leaves .raft {
  position: absolute; bottom: 28%; left: 40%; width: 50px; height: 16px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-5deg);
  animation: ml-raft-bob 6s ease-in-out infinite;
}
.scn-mercury-leaves .figure-ulysses {
  position: absolute; bottom: 30%; left: 42%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(3deg);
  animation: ml-ulysses-sit 8s ease-in-out infinite alternate;
}
.scn-mercury-leaves .figure-calypso-watching {
  position: absolute; bottom: 12%; left: 20%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: ml-calypso-watch 12s ease-in-out infinite;
}
.scn-mercury-leaves .seagull {
  position: absolute; top: 12%; left: 60%; width: 24px; height: 6px;
  background: #ffffff;
  border-radius: 50%;
  filter: blur(0.5px);
  animation: ml-gull-fly 30s linear infinite;
}
.scn-mercury-leaves .cloud-calm {
  position: absolute; top: 8%; left: 10%; width: 80px; 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(8px);
  animation: ml-cloud-drift 50s linear infinite reverse;
}
@keyframes ml-sky-shift { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ml-sea-swell { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes ml-raft-bob { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes ml-ulysses-sit { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes ml-calypso-watch { 0%,100% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(3px); } }
@keyframes ml-gull-fly { 0% { transform: translateX(-20px) translateY(0); } 50% { transform: translateX(50px) translateY(-10px); } 100% { transform: translateX(120px) translateY(0); } }
@keyframes ml-cloud-drift { 0% { transform: translateX(-30px); } 100% { transform: translateX(100vw); } }

/* scene: ulysses-suspicious */
.scn-ulysses-suspicious {
  background:
    linear-gradient(180deg, #f0d8b0 0%, #d8b890 30%, #b89870 70%, #907050 100%),
    radial-gradient(ellipse at 40% 30%, #ffe0a0 0%, transparent 60%);
}
.scn-ulysses-suspicious .sky-sunlit {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f8e0b0 0%, #e8c898 50%, #d0a878 100%);
  animation: us-sky-pulse 16s ease-in-out infinite alternate;
}
.scn-ulysses-suspicious .sea-deep {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  animation: us-sea-dark 12s ease-in-out infinite alternate;
}
.scn-ulysses-suspicious .raft-close {
  position: absolute; bottom: 30%; left: 50%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%) rotate(-2deg);
  animation: us-raft-creak 5s ease-in-out infinite;
}
.scn-ulysses-suspicious .figure-ulysses-back {
  position: absolute; bottom: 35%; left: 50%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: us-ulysses-shift 7s ease-in-out infinite;
}
.scn-ulysses-suspicious .hand-grip {
  position: absolute; bottom: 38%; left: 44%; width: 8px; height: 14px;
  background: #3a2a1a;
  border-radius: 30%;
  animation: us-hand-curl 4s ease-in-out infinite alternate;
}
.scn-ulysses-suspicious .shadow-suspicious {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, transparent 50%, rgba(20,10,0,0.4) 100%);
  pointer-events: none;
}
.scn-ulysses-suspicious .spear {
  position: absolute; bottom: 45%; left: 58%; width: 3px; height: 30px;
  background: #5a4a3a;
  border-radius: 2%;
  transform: rotate(15deg);
  animation: us-spear-quiver 3s ease-in-out infinite;
}
.scn-ulysses-suspicious .cloud-sharp {
  position: absolute; top: 10%; right: 15%; width: 50px; height: 15px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 40%;
  filter: blur(4px);
  animation: us-cloud-slice 25s linear infinite;
}
@keyframes us-sky-pulse { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes us-sea-dark { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes us-raft-creak { 0%,100% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(-4deg) translateY(-1px); } }
@keyframes us-ulysses-shift { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-48%) rotate(2deg); } }
@keyframes us-hand-curl { 0% { transform: scaleY(1); opacity: 0.8; } 100% { transform: scaleY(0.9); opacity: 1; } }
@keyframes us-spear-quiver { 0%,100% { transform: rotate(15deg); } 50% { transform: rotate(18deg); } }
@keyframes us-cloud-slice { 0% { transform: translateX(0); } 100% { transform: translateX(-80vw); } }

.scn-nausicaa-instructs { background: linear-gradient(180deg, #c8e0ff 0%, #a0c8f0 40%, #8ab8e0 70%, #6a98c0 100%), radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 60%); }
.scn-nausicaa-instructs .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #dff0ff 0%, #90b8d8 100%); animation: ni-sky 10s ease-in-out infinite alternate; }
.scn-nausicaa-instructs .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7a9a6a 0%, #4a6a3a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.15); animation: ni-ground 15s ease-in-out infinite; }
.scn-nausicaa-instructs .river { position:absolute; bottom:20%; left:5%; right:5%; height:18%; background: linear-gradient(180deg, #6a9ac8 0%, #4a7aa8 100%); border-radius: 0 0 30% 40% / 0 0 60% 70%; box-shadow: inset 0 4px 10px rgba(255,255,255,0.3); animation: ni-river 8s ease-in-out infinite alternate; }
.scn-nausicaa-instructs .wagon { position:absolute; bottom:30%; left:55%; width:90px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #b08a5a 0%, #8a6a3a 100%); border-radius: 10% 10% 30% 30% / 30% 30% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: ni-wagon 6s ease-in-out infinite; }
.scn-nausicaa-instructs .nausicaa { position:absolute; bottom:32%; left:58%; width:18px; height:36px; background: linear-gradient(180deg, #d0a870 0%, #b08850 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ni-figure 4s ease-in-out infinite; }
.scn-nausicaa-instructs .ulysses { position:absolute; bottom:31%; left:40%; width:22px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ni-figure 5s ease-in-out infinite reverse; }
.scn-nausicaa-instructs .tree { position:absolute; bottom:35%; left:20%; width:12px; height:70px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 30% 30% 20% 20% / 10% 10% 40% 40%; transform-origin: bottom; animation: ni-tree 12s ease-in-out infinite alternate; }
.scn-nausicaa-instructs .linen { position:absolute; bottom:32%; left:58%; width:20px; height:14px; background: linear-gradient(135deg, #f0e8d0 0%, #d0c8a0 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 6px rgba(255,255,200,0.5); animation: ni-linen 3s ease-in-out infinite alternate; }
@keyframes ni-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ni-ground { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes ni-river { 0% { background-position: 0% 0% } 50% { background-position: 2% 1% } 100% { background-position: 0% 0% } }
@keyframes ni-wagon { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes ni-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(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes ni-tree { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.98) } }
@keyframes ni-linen { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(5deg) scale(1.05) } 100% { transform: rotate(0deg) scale(1) } }

.scn-nausicaa-departs { background: linear-gradient(180deg, #ff9966 0%, #ffbba8 30%, #d08060 60%, #704030 100%), radial-gradient(ellipse at 50% 100%, #b06040 0%, transparent 70%); }
.scn-nausicaa-departs .sky-sunset { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffcca0 0%, #ff8050 50%, #c05030 100%); animation: nd-sky 12s ease-in-out infinite alternate; }
.scn-nausicaa-departs .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%); border-radius: 50% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.3); animation: nd-hills 18s ease-in-out infinite; }
.scn-nausicaa-departs .river { position:absolute; bottom:15%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #d08060 0%, #a06040 100%); border-radius: 0 0 60% 50% / 0 0 70% 60%; box-shadow: inset 0 4px 10px rgba(255,150,100,0.4); animation: nd-river 9s ease-in-out infinite alternate; }
.scn-nausicaa-departs .wagon { position:absolute; bottom:28%; left:60%; width:80px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #a0703a 0%, #70481a 100%); border-radius: 10% 10% 30% 30% / 30% 30% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); animation: nd-wagon 7s ease-in-out infinite; }
.scn-nausicaa-departs .nausicaa-driver { position:absolute; bottom:30%; left:63%; width:16px; height:32px; background: linear-gradient(180deg, #c09050 0%, #a07030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nd-driver 5s ease-in-out infinite; }
.scn-nausicaa-departs .ulysses { position:absolute; bottom:26%; left:30%; width:20px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nd-ulysses 6s ease-in-out infinite; }
.scn-nausicaa-departs .tree { position:absolute; bottom:32%; left:15%; width:10px; height:60px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 30% 30% 20% 20% / 10% 10% 40% 40%; transform-origin: bottom; animation: nd-tree 15s ease-in-out infinite alternate; }
.scn-nausicaa-departs .road { position:absolute; bottom:22%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 20% 20% 40% 40% / 50% 50% 20% 20%; box-shadow: inset 0 2px 6px rgba(0,0,0,0.2); animation: nd-road 10s ease-in-out infinite alternate; }
@keyframes nd-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes nd-hills { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes nd-river { 0% { background-position: 0% 0%; opacity:0.8 } 50% { background-position: 1% 1%; opacity:0.9 } 100% { background-position: 0% 0%; opacity:0.8 } }
@keyframes nd-wagon { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes nd-driver { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes nd-ulysses { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-2px) translateY(-1px) } }
@keyframes nd-tree { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.97) } }
@keyframes nd-road { 0% { background-size: 100% 100% } 50% { background-size: 102% 102% } 100% { background-size: 100% 100% } }

.scn-minerva-hears { background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 40%, #2c3850 70%, #3a4a5a 100%), radial-gradient(ellipse at 50% 0%, #6a7a9a 0%, transparent 60%); }
.scn-minerva-hears .sky-dusk { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a5a7a 0%, #2a3a5a 100%); animation: mh-sky 15s ease-in-out infinite alternate; }
.scn-minerva-hears .moon { position:absolute; top:12%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #e0e8f0 0%, #a0b0c0 70%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(200,210,230,0.3), 0 0 60px 16px rgba(200,210,230,0.15); animation: mh-moon 25s ease-in-out infinite alternate; }
.scn-minerva-hears .grove { position:absolute; bottom:0; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,0.5); animation: mh-grove 20s ease-in-out infinite alternate; }
.scn-minerva-hears .tree-grid { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0px, transparent 20px, rgba(0,0,0,0.3) 20px, rgba(0,0,0,0.3) 22px); animation: mh-trees 10s ease-in-out infinite; }
.scn-minerva-hears .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.4); animation: mh-ground 12s ease-in-out infinite; }
.scn-minerva-hears .ulysses-prayer { position:absolute; bottom:22%; left:45%; width:22px; height:36px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mh-ulysses 8s ease-in-out infinite; }
.scn-minerva-hears .minerva-light { position:absolute; top:25%; left:50%; width:30px; height:30px; background: radial-gradient(circle, #d0e0f0 0%, #90a8c0 60%, transparent 100%); border-radius:50%; filter: blur(4px); box-shadow: 0 0 40px 12px rgba(180,200,230,0.3); animation: mh-light 6s ease-in-out infinite alternate; }
.scn-minerva-hears .altar { position:absolute; bottom:18%; left:55%; width:30px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: mh-altar 7s ease-in-out infinite alternate; }
@keyframes mh-sky { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes mh-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.01) } 100% { transform: translateY(2px) scale(0.99) } }
@keyframes mh-grove { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes mh-trees { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes mh-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mh-ulysses { 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 mh-light { 0% { opacity:0.4; transform: scale(0.9) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.5; transform: scale(1) } }
@keyframes mh-altar { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-ulysses-enters-town { background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 40%, #5a6a7a 70%, #7a8a9a 100%), radial-gradient(ellipse at 30% 80%, #9aaaba 0%, transparent 60%); }
.scn-ulysses-enters-town .sky-dusk2 { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #5a6a8a 0%, #3a4a6a 100%); animation: ue-sky 14s ease-in-out infinite alternate; }
.scn-ulysses-enters-town .mist { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(200,210,220,0.3) 0%, rgba(200,210,220,0.05) 80%); filter: blur(10px); animation: ue-mist 20s ease-in-out infinite alternate; }
.scn-ulysses-enters-town .town-wall { position:absolute; bottom:10%; left:20%; right:20%; height:55%; background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%); border-radius: 10% 10% 0 0 / 5% 5% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,0.4); animation: ue-wall 15s ease-in-out infinite; }
.scn-ulysses-enters-town .gate { position:absolute; bottom:20%; left:45%; width:12%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: 0 0 20px 4px rgba(200,180,100,0.2); animation: ue-gate 8s ease-in-out infinite alternate; }
.scn-ulysses-enters-town .road2 { position:absolute; bottom:0; left:35%; right:35%; height:12%; background: linear-gradient(180deg, #7a7a5a 0%, #5a5a3a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.2); animation: ue-road 12s ease-in-out infinite alternate; }
.scn-ulysses-enters-town .ulysses-traveler { position:absolute; bottom:15%; left:42%; width:20px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ue-ulysses 7s ease-in-out infinite; }
.scn-ulysses-enters-town .girl-pitcher { position:absolute; bottom:18%; left:55%; width:16px; height:30px; background: linear-gradient(180deg, #a09070 0%, #807050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ue-girl 6s ease-in-out infinite; }
.scn-ulysses-enters-town .house-lights { position:absolute; bottom:40%; left:25%; width:8px; height:8px; background: radial-gradient(circle, #f0c060 0%, #c09040 70%); border-radius:50%; box-shadow: 0 0 20px 6px #d0a050, 0 0 40px 12px rgba(208,160,80,0.3); animation: ue-light 4s ease-in-out infinite alternate; }
.scn-ulysses-enters-town .house-lights::before { content:''; position:absolute; left:200%; width:6px; height:6px; background: radial-gradient(circle, #f0c060 0%, #c09040 70%); border-radius:50%; box-shadow: 0 0 16px 4px #d0a050; animation: ue-light2 5s ease-in-out infinite alternate; }
@keyframes ue-sky { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.75 } }
@keyframes ue-mist { 0% { opacity:0.3; transform: translateX(0) } 50% { opacity:0.6; transform: translateX(10px) } 100% { opacity:0.4; transform: translateX(-5px) } }
@keyframes ue-wall { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes ue-gate { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(0.98) scaleY(1.02) } 100% { transform: scaleX(1) scaleY(1) } }
@keyframes ue-road { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ue-ulysses { 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 ue-girl { 0% { transform: translateX(0) translateY(0) } 33% { transform: translateX(3px) translateY(-1px) } 66% { transform: translateX(-2px) translateY(0) } 100% { transform: translateX(0) translateY(0) } }
@keyframes ue-light { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(1) } }
@keyframes ue-light2 { 0% { opacity:0.5; transform: scale(0.8) } 50% { opacity:0.9; transform: scale(1.2) } 100% { opacity:0.6; transform: scale(0.9) } }

/* suitors-boast: dim interior, tense mood, firelit */
.scn-suitors-boast {
  background: 
    linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 40%, #0d0606 100%),
    radial-gradient(ellipse at 80% 60%, #4a2a1a 0%, transparent 60%);
}
.scn-suitors-boast .sb-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a1a12 0%, #1a0a06 100%);
  animation: sb-pulse 12s ease-in-out infinite;
}
.scn-suitors-boast .sb-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-suitors-boast .sb-pillar-left {
  position: absolute; bottom: 35%; left: 15%; width: 20px; height: 65%;
  background: linear-gradient(90deg, #5a3a2a 0%, #3a1a0a 50%, #5a3a2a 100%);
  border-radius: 10% / 5%;
  box-shadow: 8px 0 15px rgba(0,0,0,.5);
}
.scn-suitors-boast .sb-pillar-right {
  position: absolute; bottom: 35%; right: 15%; width: 20px; height: 65%;
  background: linear-gradient(90deg, #5a3a2a 0%, #3a1a0a 50%, #5a3a2a 100%);
  border-radius: 10% / 5%;
  box-shadow: -8px 0 15px rgba(0,0,0,.5);
}
.scn-suitors-boast .sb-table {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a12 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,.7);
  animation: sb-table 6s ease-in-out infinite alternate;
}
.scn-suitors-boast .sb-fire {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #c04020 40%, #2a0a00 70%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  filter: blur(2px);
  box-shadow: 0 0 40px 20px rgba(255,100,40,.4);
  animation: sb-fire 0.8s ease-in-out infinite alternate;
}
.scn-suitors-boast .sb-suitors {
  position: absolute; bottom: 15%; left: 40%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #0d0808 0%, #000000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 15px rgba(0,0,0,.8);
  animation: sb-sway 3s ease-in-out infinite;
}
@keyframes sb-pulse {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sb-table {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes sb-fire {
  0% { transform: translateX(-50%) scaleX(0.9) scaleY(1.05); opacity: 0.85; }
  50% { transform: translateX(-50%) scaleX(1.1) scaleY(0.95); opacity: 1; }
  100% { transform: translateX(-50%) scaleX(0.95) scaleY(1); opacity: 0.9; }
}
@keyframes sb-sway {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(-2deg); }
  50% { transform: translateX(10px) rotate(2deg); }
  75% { transform: translateX(5px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* ambush-set: dusk, tense, ship waiting */
.scn-ambush-set {
  background: 
    linear-gradient(180deg, #2a1a3a 0%, #4a2a4a 30%, #7a4a3a 60%, #2a4a3a 100%),
    radial-gradient(ellipse at 50% 0%, #6a4a6a 0%, transparent 60%);
}
.scn-ambush-set .as-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #3a2a4a 40%, #6a4a3a 100%);
  animation: as-dusk 15s ease-in-out infinite alternate;
}
.scn-ambush-set .as-sea {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  box-shadow: inset 0 10px 40px rgba(0,0,0,.5);
  animation: as-waves 8s ease-in-out infinite;
}
.scn-ambush-set .as-beach {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-ambush-set .as-ship-hull {
  position: absolute; bottom: 35%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 5% 5% / 60% 60% 10% 10%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px rgba(0,0,0,.7);
  animation: as-rock 5s ease-in-out infinite;
}
.scn-ambush-set .as-ship-sail {
  position: absolute; bottom: 60%; left: 38%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  transform-origin: bottom center;
  box-shadow: 0 0 15px rgba(0,0,0,.4);
  animation: as-sail 7s ease-in-out infinite alternate;
}
.scn-ambush-set .as-figures {
  position: absolute; bottom: 15%; left: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 10px rgba(0,0,0,.8);
  animation: as-creep 4s ease-in-out infinite;
}
.scn-ambush-set .as-moon {
  position: absolute; top: 12%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d0c0a0 0%, #8a7a5a 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,180,140,.3);
  animation: as-moonrise 30s linear infinite alternate;
}
@keyframes as-dusk {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes as-waves {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px) scaleY(1.02); }
  100% { transform: translateY(0); }
}
@keyframes as-rock {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes as-sail {
  0% { transform: rotate(-3deg) scaleX(0.9); }
  50% { transform: rotate(3deg) scaleX(1.05); }
  100% { transform: rotate(0) scaleX(0.95); }
}
@keyframes as-creep {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-1deg); }
  50% { transform: translateX(8px) rotate(1deg); }
  75% { transform: translateX(4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes as-moonrise {
  0% { transform: translateY(0) scale(0.9); opacity: 0.7; }
  50% { transform: translateY(-8px) scale(1.05); opacity: 1; }
  100% { transform: translateY(0) scale(0.95); opacity: 0.8; }
}

/* iphthime-speaks: dim interior, warm, sleeping Penelope */
.scn-iphthime-speaks {
  background: 
    linear-gradient(180deg, #2a1a12 0%, #3a2018 40%, #2a140a 100%),
    radial-gradient(ellipse at 50% 80%, #5a3020 0%, transparent 70%);
}
.scn-iphthime-speaks .is-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2218 0%, #2a140a 100%);
  animation: is-soft 10s ease-in-out infinite alternate;
}
.scn-iphthime-speaks .is-bed {
  position: absolute; bottom: 15%; left: 20%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 5% 5% / 40% 40% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: is-breath 6s ease-in-out infinite;
}
.scn-iphthime-speaks .is-penelope {
  position: absolute; bottom: 25%; left: 30%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #8a6a5a 0%, #5a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: is-sleep 8s ease-in-out infinite;
}
.scn-iphthime-speaks .is-iphthime {
  position: absolute; bottom: 30%; left: 60%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #a08070 0%, #806050 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  opacity: 0.8;
  box-shadow: 0 0 20px rgba(160,140,120,.4);
  animation: is-glide 12s ease-in-out infinite alternate;
}
.scn-iphthime-speaks .is-window {
  position: absolute; top: 20%; left: 70%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, #ffe0b0 0%, #b08060 70%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255,200,150,.3);
  animation: is-light 5s ease-in-out infinite alternate;
}
.scn-iphthime-speaks .is-drapes {
  position: absolute; top: 15%; left: 65%; width: 60px; height: 70%;
  background: linear-gradient(90deg, #4a2a1a 0%, #3a1a0a 50%, #4a2a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: -8px 0 15px rgba(0,0,0,.4);
}
@keyframes is-soft {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes is-breath {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.01) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes is-sleep {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes is-glide {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); opacity: 0.7; }
  50% { transform: translateX(10px) translateY(-5px) rotate(2deg); opacity: 0.9; }
  100% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.7; }
}
@keyframes is-light {
  0% { box-shadow: 0 0 20px 5px rgba(255,200,150,.2); opacity: 0.7; }
  50% { box-shadow: 0 0 40px 15px rgba(255,200,150,.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(255,200,150,.3); opacity: 0.8; }
}

/* iphthime-reassures: dim interior, warm, divine glow */
.scn-iphthime-reassures {
  background: 
    linear-gradient(180deg, #2a1a12 0%, #3a2018 40%, #2a140a 100%),
    radial-gradient(ellipse at 50% 80%, #5a3020 0%, transparent 70%);
}
.scn-iphthime-reassures .ir-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2218 0%, #2a140a 100%);
  animation: ir-ambient 12s ease-in-out infinite alternate;
}
.scn-iphthime-reassures .ir-bed {
  position: absolute; bottom: 15%; left: 20%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 5% 5% / 40% 40% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: ir-bedrock 7s ease-in-out infinite;
}
.scn-iphthime-reassures .ir-penelope {
  position: absolute; bottom: 25%; left: 30%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #8a6a5a 0%, #5a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: ir-rest 9s ease-in-out infinite;
}
.scn-iphthime-reassures .ir-iphthime {
  position: absolute; bottom: 30%; left: 60%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #a08070 0%, #806050 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  opacity: 0.8;
  box-shadow: 0 0 20px rgba(160,140,120,.4);
  animation: ir-float 14s ease-in-out infinite alternate;
}
.scn-iphthime-reassures .ir-glow {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,220,180,.6) 0%, rgba(255,180,120,.2) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  animation: ir-radiant 6s ease-in-out infinite alternate;
}
.scn-iphthime-reassures .ir-minerva {
  position: absolute; top: 12%; left: 45%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #d0c0b0 0%, #a09080 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  opacity: 0.7;
  box-shadow: 0 0 30px 10px rgba(220,200,180,.5);
  animation: ir-appear 11s ease-in-out infinite alternate;
}
@keyframes ir-ambient {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ir-bedrock {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.01) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes ir-rest {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ir-float {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); opacity: 0.6; }
  50% { transform: translateX(8px) translateY(-6px) rotate(2deg); opacity: 0.9; }
  100% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.6; }
}
@keyframes ir-radiant {
  0% { transform: translateX(-50%) scale(0.8); opacity: 0.5; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 0.8; }
  100% { transform: translateX(-50%) scale(0.9); opacity: 0.6; }
}
@keyframes ir-appear {
  0% { transform: translateY(10px) scale(0.9); opacity: 0.3; }
  50% { transform: translateY(-5px) scale(1.05); opacity: 0.8; }
  100% { transform: translateY(5px) scale(0.95); opacity: 0.5; }
}

/* scene: night-at-menelaus (calm, dim-interior) */
.scn-night-at-menelaus {
  background: radial-gradient(ellipse at 60% 30%, #c8864a 0%, #3a2218 40%, #1a120e 100%),
              linear-gradient(180deg, #2a1e1a 0%, #0e0a08 100%);
}
.scn-night-at-menelaus .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1410 0%, #2a201a 40%, #1a1410 100%);
  animation: nm1-room 12s ease-in-out infinite alternate;
}
.scn-night-at-menelaus .window {
  position: absolute; top: 15%; left: 60%; width: 28%; height: 35%;
  background: linear-gradient(180deg, #1a2a4a 0%, #0a1a3a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 20px rgba(100,140,200,0.3), 0 0 8px rgba(200,150,60,0.2);
  animation: nm1-window 8s ease-in-out infinite alternate;
}
.scn-night-at-menelaus .curtains-left {
  position: absolute; top: 13%; left: 58%; width: 18%; height: 42%;
  background: linear-gradient(90deg, #6a4030 0%, #4a2818 100%);
  border-radius: 0 20% 60% 40% / 0 20% 60% 40%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  animation: nm1-curtain 7s ease-in-out infinite alternate;
}
.scn-night-at-menelaus .curtains-right {
  position: absolute; top: 13%; right: 58%; width: 18%; height: 42%;
  background: linear-gradient(270deg, #6a4030 0%, #4a2818 100%);
  border-radius: 20% 0 40% 60% / 20% 0 40% 60%;
  clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%);
  animation: nm1-curtain 7s ease-in-out infinite alternate-reverse;
}
.scn-night-at-menelaus .lamp {
  position: absolute; top: 35%; left: 20%; width: 8%; height: 10%;
  background: radial-gradient(circle at 50% 60%, #e8a848 0%, #b07030 50%, #4a2818 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 15px rgba(232,168,72,0.5), 0 0 80px 30px rgba(232,168,72,0.2);
  animation: nm1-lamp 4s ease-in-out infinite alternate;
}
.scn-night-at-menelaus .bed {
  position: absolute; bottom: 5%; left: 25%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: nm1-bed 6s ease-in-out infinite;
}
.scn-night-at-menelaus .figure-menelaus {
  position: absolute; bottom: 12%; left: 35%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #6a5040 0%, #3a2818 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: nm1-figure 5s ease-in-out infinite alternate;
}
.scn-night-at-menelaus .figure-helen {
  position: absolute; bottom: 10%; left: 48%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a12 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: nm1-figure 5s ease-in-out infinite alternate-reverse;
}
@keyframes nm1-room { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes nm1-window { 0% { opacity:0.6; transform:scaleX(1) } 50% { opacity:0.9; transform:scaleX(1.02) } 100% { opacity:0.7; transform:scaleX(0.98) } }
@keyframes nm1-curtain { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(-2px) scale(1.01) } 100% { transform:translateX(2px) scale(0.99) } }
@keyframes nm1-lamp { 0% { opacity:0.7; box-shadow:0 0 30px 10px rgba(232,168,72,0.4) } 50% { opacity:1; box-shadow:0 0 50px 20px rgba(232,168,72,0.7) } 100% { opacity:0.8; box-shadow:0 0 35px 12px rgba(232,168,72,0.5) } }
@keyframes nm1-bed { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes nm1-figure { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(3px) rotate(1deg) } 100% { transform:translateX(-3px) rotate(-1deg) } }

/* scene: menelaus-rages (angry, dawn) */
.scn-menelaus-rages {
  background: linear-gradient(180deg, #4a2a3a 0%, #6a3a4a 20%, #9a5a3a 50%, #7a3a2a 80%, #4a2a1a 100%),
              radial-gradient(ellipse at 50% 100%, #2a1a1a 0%, transparent 70%);
}
.scn-menelaus-rages .sky-dawn {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #4a2a3a 0%, #6a3a4a 30%, #9a5a3a 60%, #7a3a2a 100%);
  animation: mr2-sky 10s ease-in-out infinite alternate;
}
.scn-menelaus-rages .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 50%, #050a15 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: mr2-sea 12s ease-in-out infinite;
}
.scn-menelaus-rages .cliff {
  position: absolute; bottom: 55%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.6);
  animation: mr2-cliff 8s ease-in-out infinite alternate;
}
.scn-menelaus-rages .wave1 {
  position: absolute; bottom: 30%; left: -10%; width: 120%; height: 12%;
  background: radial-gradient(ellipse at 30% 50%, rgba(100,140,180,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mr2-wave1 4s ease-in-out infinite;
}
.scn-menelaus-rages .wave2 {
  position: absolute; bottom: 20%; left: -5%; width: 110%; height: 10%;
  background: radial-gradient(ellipse at 70% 50%, rgba(80,120,160,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: mr2-wave2 6s ease-in-out infinite;
}
.scn-menelaus-rages .figure-menelaus {
  position: absolute; bottom: 55%; left: 45%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: mr2-figure 3s ease-in-out infinite alternate;
}
.scn-menelaus-rages .arm {
  position: absolute; bottom: 65%; left: 50%; width: 4%; height: 15%;
  background: #1a1a1a;
  border-radius: 20% 20% 40% 40%;
  transform-origin: bottom left;
  animation: mr2-arm 2s ease-in-out infinite alternate;
}
@keyframes mr2-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes mr2-sea { 0% { transform:translateY(0) } 50% { transform:translateY(3px) } 100% { transform:translateY(-2px) } }
@keyframes mr2-cliff { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(1.02) } 100% { transform:translateY(1px) scaleY(0.98) } }
@keyframes mr2-wave1 { 0% { transform:translateX(0) scaleX(1) } 50% { transform:translateX(-10px) scaleX(1.1) } 100% { transform:translateX(10px) scaleX(0.9) } }
@keyframes mr2-wave2 { 0% { transform:translateX(0) scaleX(1) } 50% { transform:translateX(8px) scaleX(1.05) } 100% { transform:translateX(-8px) scaleX(0.95) } }
@keyframes mr2-figure { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(2px) rotate(3deg) } 100% { transform:translateX(-1px) rotate(-1deg) } }
@keyframes mr2-arm { 0% { transform:rotate(-10deg) } 50% { transform:rotate(20deg) } 100% { transform:rotate(-5deg) } }

/* scene: idothea-appears (tense, bright-interior) */
.scn-idothea-appears {
  background: radial-gradient(ellipse at 70% 20%, #f0e0c0 0%, #d0b890 30%, #a08060 60%, #604830 100%),
              linear-gradient(180deg, #d8c8a8 0%, #b0a080 50%, #807060 100%);
}
.scn-idothea-appears .sunlight {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,240,210,0.6) 0%, rgba(200,180,150,0.2) 40%, transparent 70%);
  animation: ida3-sunlight 5s ease-in-out infinite alternate;
}
.scn-idothea-appears .tent-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #c8b898 0%, #a89070 40%, #8a7050 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: ida3-tent 8s ease-in-out infinite;
}
.scn-idothea-appears .figure-idothea {
  position: absolute; bottom: 20%; left: 30%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #e0c8a8 0%, #b09878 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 20% 20%;
  transform-origin: bottom center;
  animation: ida3-figure 4s ease-in-out infinite alternate;
}
.scn-idothea-appears .figure-menelaus {
  position: absolute; bottom: 20%; left: 55%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ida3-figure 4s ease-in-out infinite alternate-reverse;
}
.scn-idothea-appears .shadow-menelaus {
  position: absolute; bottom: 20%; left: 55%; width: 14%; height: 35%;
  background: rgba(0,0,0,0.15);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform: translate(-4px, 4px) scale(0.95);
  filter: blur(6px);
  animation: ida3-shadow 4s ease-in-out infinite alternate-reverse;
}
.scn-idothea-appears .shadow-idothea {
  position: absolute; bottom: 20%; left: 30%; width: 14%; height: 35%;
  background: rgba(0,0,0,0.12);
  border-radius: 45% 45% 30% 30% / 55% 55% 20% 20%;
  transform: translate(4px, 4px) scale(0.95);
  filter: blur(6px);
  animation: ida3-shadow 4s ease-in-out infinite alternate;
}
.scn-idothea-appears .spear {
  position: absolute; bottom: 40%; left: 48%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2818 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ida3-spear 3s ease-in-out infinite alternate;
}
@keyframes ida3-sunlight { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ida3-tent { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.02) } 100% { transform:scaleX(0.98) } }
@keyframes ida3-figure { 0% { transform:translateX(0) rotate(1deg) } 50% { transform:translateX(2px) rotate(-1deg) } 100% { transform:translateX(-2px) rotate(0deg) } }
@keyframes ida3-shadow { 0% { opacity:0.1; transform:translate(4px,4px) scale(0.95) } 50% { opacity:0.2; transform:translate(2px,2px) scale(0.97) } 100% { opacity:0.12; transform:translate(6px,6px) scale(0.93) } }
@keyframes ida3-spear { 0% { transform:rotate(-2deg) } 50% { transform:rotate(1deg) } 100% { transform:rotate(-1deg) } }

/* scene: idothea-reveals (calm, bright-interior) */
.scn-idothea-reveals {
  background: radial-gradient(ellipse at 50% 30%, #e8d8c0 0%, #c8b898 40%, #a08868 70%, #705840 100%),
              linear-gradient(180deg, #d8c8b0 0%, #b8a888 50%, #988070 100%);
}
.scn-idothea-reveals .table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #8a6a50 0%, #6a4a30 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 6px 15px rgba(0,0,0,0.4);
  animation: idr4-table 10s ease-in-out infinite;
}
.scn-idothea-reveals .scroll {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #d8c898 0%, #b8a078 100%);
  border-radius: 5% 5% 10% 10% / 20% 20% 30% 30%;
  transform-origin: left center;
  animation: idr4-scroll 6s ease-in-out infinite alternate;
}
.scn-idothea-reveals .figure-idothea-seated {
  position: absolute; bottom: 12%; left: 30%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #d8b898 0%, #a08060 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 20% 20%;
  transform-origin: bottom center;
  animation: idr4-figure 5s ease-in-out infinite alternate;
}
.scn-idothea-reveals .figure-menelaus-seated {
  position: absolute; bottom: 12%; left: 55%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: idr4-figure 5s ease-in-out infinite alternate-reverse;
}
.scn-idothea-reveals .amphora {
  position: absolute; bottom: 20%; left: 10%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #a07050 0%, #604030 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  animation: idr4-amphora 8s ease-in-out infinite;
}
.scn-idothea-reveals .flame {
  position: absolute; bottom: 24%; left: 12%; width: 3%; height: 5%;
  background: radial-gradient(circle at 50% 80%, #f0c060 0%, #c08030 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 5px rgba(240,192,96,0.4);
  animation: idr4-flame 2s ease-in-out infinite alternate;
}
@keyframes idr4-table { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes idr4-scroll { 0% { transform:scaleX(1) rotate(0deg) } 50% { transform:scaleX(1.02) rotate(1deg) } 100% { transform:scaleX(0.98) rotate(-1deg) } }
@keyframes idr4-figure { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(2px) rotate(0.5deg) } 100% { transform:translateX(-2px) rotate(-0.5deg) } }
@keyframes idr4-amphora { 0% { transform:scale(1) } 50% { transform:scale(1.01) } 100% { transform:scale(0.99) } }
@keyframes idr4-flame { 0% { opacity:0.7; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.15) } 100% { opacity:0.8; transform:scaleY(0.9) } }

.scn-idothea-explains { background: linear-gradient(135deg, #f5e6c8 0%, #d9c18a 70%, #b89a6b 100%), radial-gradient(circle at 70% 30%, #fff8e7 0%, transparent 60%); }
.scn-idothea-explains .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e6d2b5 0%, #c8b08a 100%); border-radius: 0; }
.scn-idothea-explains .window { position:absolute; top:10%; right:15%; width:40%; height:45%; background: linear-gradient(180deg, #fff9e6 0%, #f0dbb5 100%); border-radius: 8% 8% 4% 4% / 20% 20% 10% 10%; box-shadow: inset 0 0 40px rgba(255,240,200,.8), 0 0 60px rgba(255,230,180,.5); animation: idt-window 8s ease-in-out infinite alternate; }
.scn-idothea-explains .speaker { position:absolute; bottom:20%; left:15%; width:50px; height:100px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: idt-speak 4s ease-in-out infinite; }
.scn-idothea-explains .listener { position:absolute; bottom:20%; right:25%; width:45px; height:90px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 35% 35% 30% 30% / 45% 45% 35% 35%; transform-origin: bottom center; animation: idt-listen 6s ease-in-out infinite; }
.scn-idothea-explains .table { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:120px; height:12px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%; }
.scn-idothea-explains .lamp { position:absolute; bottom:22%; left:35%; width:8px; height:14px; background: radial-gradient(circle at 50% 0%, #ffd080 0%, #b08040 80%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 24px 6px rgba(255,200,100,.6); animation: idt-lamp 3s ease-in-out infinite alternate; }
.scn-idothea-explains .dust { position:absolute; width:4px; height:4px; background: rgba(255,240,200,.3); border-radius: 50%; filter: blur(2px); }
.scn-idothea-explains .mote-a { top:30%; left:50%; animation: idt-drift-a 12s linear infinite; }
.scn-idothea-explains .mote-b { top:50%; left:30%; animation: idt-drift-b 15s linear infinite reverse; }
@keyframes idt-window { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:.8; transform: scale(1) } }
@keyframes idt-speak { 0%,100% { transform: rotate(0deg) translateY(0) scaleY(1) } 25% { transform: rotate(-2deg) translateY(-2px) scaleY(1.02) } 50% { transform: rotate(0deg) translateY(0) scaleY(1) } 75% { transform: rotate(2deg) translateY(-1px) scaleY(1.01) } }
@keyframes idt-listen { 0%,100% { transform: rotate(0deg) } 30% { transform: rotate(-3deg) } 70% { transform: rotate(3deg) } }
@keyframes idt-lamp { 0% { opacity:.6; box-shadow: 0 0 15px 3px rgba(255,200,100,.4) } 50% { opacity:1; box-shadow: 0 0 30px 8px rgba(255,200,100,.7) } 100% { opacity:.8; box-shadow: 0 0 20px 5px rgba(255,200,100,.5) } }
@keyframes idt-drift-a { 0% { transform: translateX(0) translateY(0) } 100% { transform: translateX(80px) translateY(-40px) } }
@keyframes idt-drift-b { 0% { transform: translateX(0) translateY(0) } 100% { transform: translateX(-60px) translateY(30px) } }

.scn-menelaus-returns { background: linear-gradient(180deg, #2b3a5a 0%, #4a6b7a 40%, #b88a5a 70%, #e8b86a 100%), radial-gradient(ellipse at 50% 30%, #c8a060 0%, transparent 60%); }
.scn-menelaus-returns .sky-sunset { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #1a2a4a 0%, #4a5a7a 30%, #b88a5a 60%, #e8b86a 100%); animation: mns-sky 20s ease-in-out infinite alternate; }
.scn-menelaus-returns .sea { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a5a6a 0%, #2a4a5a 100%); border-radius: 60% 40% 0 0 / 40% 60% 0 0; box-shadow: inset 0 8px 30px rgba(0,0,0,.5); animation: mns-sea 12s ease-in-out infinite alternate; }
.scn-menelaus-returns .beach { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b89868 0%, #8a7858 40%, #5a4a3a 100%); border-radius: 30% 70% 0 0 / 20% 30% 0 0; }
.scn-menelaus-returns .ships { position:absolute; bottom:50%; left:10%; width:80px; height:20px; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: mns-ship 8s ease-in-out infinite alternate; }
.scn-menelaus-returns .figure-sitting { position:absolute; bottom:35%; left:50%; transform:translateX(-50%); width:30px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: mns-figure 6s ease-in-out infinite; }
.scn-menelaus-returns .sealskin { position:absolute; bottom:30%; left:30%; width:40px; height:12px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-10deg); }
.scn-menelaus-returns .wave-mns-a { position:absolute; bottom:35%; left:0; width:100%; height:15px; background: radial-gradient(ellipse at 20% 50%, rgba(200,255,255,.2) 0%, transparent 70%); filter: blur(4px); animation: mns-wave-a 5s ease-in-out infinite; }
.scn-menelaus-returns .wave-mns-b { position:absolute; bottom:40%; left:0; width:100%; height:10px; background: radial-gradient(ellipse at 60% 50%, rgba(200,255,255,.15) 0%, transparent 70%); filter: blur(4px); animation: mns-wave-b 7s ease-in-out infinite reverse; }
@keyframes mns-sky { 0% { opacity:.8; background-position: 0 0 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mns-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(1px) scaleY(.98) } }
@keyframes mns-ship { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(2deg) } }
@keyframes mns-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) scaleY(1) } 25% { transform: translateX(-50%) rotate(-2deg) scaleY(1.01) } 50% { transform: translateX(-50%) rotate(0deg) scaleY(1) } 75% { transform: translateX(-50%) rotate(2deg) scaleY(1.01) } }
@keyframes mns-wave-a { 0% { opacity:.3; transform: translateX(0) scaleX(1) } 50% { opacity:.6; transform: translateX(10px) scaleX(1.05) } 100% { opacity:.3; transform: translateX(-5px) scaleX(1) } }
@keyframes mns-wave-b { 0% { opacity:.4; transform: translateX(0) scaleX(1) } 50% { opacity:.2; transform: translateX(-15px) scaleX(.95) } 100% { opacity:.4; transform: translateX(5px) scaleX(1) } }

.scn-proteus-captured { background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 40%, #2a1a1a 80%), radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, transparent 70%); }
.scn-proteus-captured .cave-dark { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 50%, #1a0a0a 100%); }
.scn-proteus-captured .fire-glow { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:60px; height:100px; background: radial-gradient(ellipse at 50% 20%, #ffa050 0%, #c06020 30%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: prc-fire 3s ease-in-out infinite alternate; }
.scn-proteus-captured .captors { position:absolute; bottom:20%; left:10%; width:40px; height:80px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: prc-captors 4s ease-in-out infinite; }
.scn-proteus-captured .proteus-beast { position:absolute; bottom:15%; right:15%; width:70px; height:90px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: prc-beast 5s ease-in-out infinite; }
.scn-proteus-captured .lion-head { position:absolute; bottom:50%; right:20%; width:30px; height:25px; background: linear-gradient(135deg, #8a6a3a 0%, #4a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: prc-lion 6s ease-in-out infinite; }
.scn-proteus-captured .serpent-tail { position:absolute; bottom:10%; right:5%; width:60px; height:12px; background: linear-gradient(90deg, #3a5a3a 0%, #2a4a2a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; transform: rotate(-20deg); animation: prc-serpent 8s ease-in-out infinite; }
.scn-proteus-captured .boar-snout { position:absolute; bottom:35%; left:20%; width:20px; height:15px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(15deg); animation: prc-boar 4s ease-in-out infinite reverse; }
.scn-proteus-captured .tree-branch { position:absolute; top:20%; left:40%; width:8px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-30deg); animation: prc-tree 7s ease-in-out infinite; }
.scn-proteus-captured .water-splash { position:absolute; bottom:5%; left:50%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(100,180,220,.3) 0%, transparent 70%); filter: blur(6px); animation: prc-water 3s ease-in-out infinite alternate; }
@keyframes prc-fire { 0% { opacity:.7; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:.8; transform: translateX(-50%) scale(.95) } }
@keyframes prc-captors { 0%,100% { transform: rotate(0deg) translateY(0) scaleY(1) } 25% { transform: rotate(-3deg) translateY(-2px) scaleY(1.03) } 50% { transform: rotate(0deg) translateY(0) scaleY(1) } 75% { transform: rotate(3deg) translateY(-1px) scaleY(1.02) } }
@keyframes prc-beast { 0% { transform: translateX(0) rotate(0deg) scale(1) } 25% { transform: translateX(8px) rotate(5deg) scale(1.05) } 50% { transform: translateX(-5px) rotate(-3deg) scale(.95) } 75% { transform: translateX(3px) rotate(2deg) scale(1.02) } 100% { transform: translateX(0) rotate(0deg) scale(1) } }
@keyframes prc-lion { 0%,100% { transform: translateY(0) rotate(0deg) scale(1) } 30% { transform: translateY(-5px) rotate(-5deg) scale(1.1) } 70% { transform: translateY(2px) rotate(5deg) scale(.9) } }
@keyframes prc-serpent { 0% { transform: rotate(-20deg) translateX(0) } 25% { transform: rotate(-15deg) translateX(10px) } 50% { transform: rotate(-25deg) translateX(-5px) } 75% { transform: rotate(-18deg) translateX(8px) } 100% { transform: rotate(-20deg) translateX(0) } }
@keyframes prc-boar { 0% { transform: rotate(15deg) translateY(0) scaleX(1) } 50% { transform: rotate(10deg) translateY(-3px) scaleX(1.1) } 100% { transform: rotate(15deg) translateY(0) scaleX(1) } }
@keyframes prc-tree { 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-20deg) translateY(-5px) } 100% { transform: rotate(-30deg) translateY(0) } }
@keyframes prc-water { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.5; transform: scale(1.2) } 100% { opacity:.2; transform: scale(1) } }

.scn-proteus-answers { background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, transparent 60%); }
.scn-proteus-answers .cave-dim { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 60%, #1a0a0a 100%); }
.scn-proteus-answers .low-light { position:absolute; bottom:10%; left:30%; width:30px; height:50px; background: radial-gradient(ellipse at 50% 0%, #a07040 0%, transparent 80%); filter: blur(8px); animation: pra-light 5s ease-in-out infinite alternate; }
.scn-proteus-answers .proteus-figure { position:absolute; bottom:20%; right:20%; width:55px; height:110px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: pra-proteus 8s ease-in-out infinite; }
.scn-proteus-answers .menelaus-figure { position:absolute; bottom:20%; left:15%; width:40px; height:85px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin: bottom center; animation: pra-menelaus 10s ease-in-out infinite; }
.scn-proteus-answers .stone-altar { position:absolute; bottom:5%; left:50%; transform:translateX(-50%); width:80px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-proteus-answers .shadow-pillar { position:absolute; top:0; left:5%; width:15px; height:80%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.5); }
.scn-proteus-answers .glow-wisp { position:absolute; top:40%; left:45%; width:8px; height:8px; background: radial-gradient(circle, rgba(200,180,120,.2) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: pra-wisp 7s ease-in-out infinite alternate; }
@keyframes pra-light { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.15) } 100% { opacity:.5; transform: scale(.95) } }
@keyframes pra-proteus { 0%,100% { transform: rotate(0deg) translateY(0) scaleY(1) } 25% { transform: rotate(-1deg) translateY(-2px) scaleY(1.01) } 50% { transform: rotate(0deg) translateY(0) scaleY(1) } 75% { transform: rotate(1deg) translateY(-1px) scaleY(1.01) } }
@keyframes pra-menelaus { 0%,100% { transform: rotate(0deg) translateY(0) scaleY(1) } 20% { transform: rotate(-2deg) translateY(-1px) scaleY(1.02) } 40% { transform: rotate(0deg) translateY(0) scaleY(1) } 60% { transform: rotate(2deg) translateY(-1px) scaleY(1.02) } 80% { transform: rotate(0deg) translateY(0) scaleY(1) } }
@keyframes pra-wisp { 0% { opacity:.3; transform: translate(0, 0) } 50% { opacity:.7; transform: translate(10px, -15px) } 100% { opacity:.2; transform: translate(-5px, 5px) } }

.scn-aegyptius-speaks {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f9e0a0 60%, #f0c060 100%),
    radial-gradient(ellipse at 50% 0%, #ffe680 0%, transparent 60%);
}
.scn-aegyptius-speaks .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0d8ff 0%, transparent 100%);
  animation: ae-sky 20s ease-in-out infinite alternate;
}
.scn-aegyptius-speaks .sun {
  position: absolute; top: 12%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffebaa 0%, #f0c060 60%, transparent 70%);
  border-radius: 50%;
  animation: ae-sun 30s ease-in-out infinite alternate;
  box-shadow: 0 0 40px 20px rgba(240,200,96,0.4);
}
.scn-aegyptius-speaks .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a9a5a 0%, #4a6a3a 100%);
  border-radius: 30% 70% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: ae-hills 18s ease-in-out infinite alternate;
}
.scn-aegyptius-speaks .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8b06a 0%, #9a7a4a 100%);
  border-radius: 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.2);
}
.scn-aegyptius-speaks .speaker {
  position: absolute; bottom: 33%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ae-speaker 5s ease-in-out infinite alternate;
}
.scn-aegyptius-speaks .staff {
  position: absolute; bottom: 36%; left: 43%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: ae-staff 4s ease-in-out infinite alternate;
}
.scn-aegyptius-speaks .listeners-left {
  position: absolute; bottom: 35%; left: 25%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ae-listener 6s ease-in-out infinite alternate;
}
.scn-aegyptius-speaks .listeners-right {
  position: absolute; bottom: 35%; left: 55%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ae-listener 6s ease-in-out infinite alternate-reverse;
}
@keyframes ae-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes ae-sun { 0% { transform: translate(0, 0) scale(1) } 50% { transform: translate(5px, -3px) scale(1.05) } 100% { transform: translate(-2px, 2px) scale(0.95) } }
@keyframes ae-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ae-speaker { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) rotate(3deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes ae-staff { 0% { transform: rotate(-5deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-6deg) } }
@keyframes ae-listener { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(0.98) } }

/* telemachus-speaks */
.scn-telemachus-speaks {
  background:
    linear-gradient(180deg, #a0c8f0 0%, #f2d880 60%, #e8c060 100%),
    radial-gradient(ellipse at 55% 20%, #ffe680 0%, transparent 70%);
}
.scn-telemachus-speaks .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c0dfff 0%, transparent 100%);
  animation: ts-sky 12s ease-in-out infinite alternate;
}
.scn-telemachus-speaks .sun {
  position: absolute; top: 15%; left: 60%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffecaa 0%, #e8c060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(232,200,96,0.5);
  animation: ts-sun 25s ease-in-out infinite alternate;
}
.scn-telemachus-speaks .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a9a5a 0%, #4a6a3a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
  animation: ts-hills 15s ease-in-out infinite alternate;
}
.scn-telemachus-speaks .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8a060 0%, #8a7040 100%);
  box-shadow: inset 0 8px 18px rgba(0,0,0,0.2);
}
.scn-telemachus-speaks .telemachus {
  position: absolute; bottom: 39%; left: 50%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform: translateX(-50%);
  animation: ts-tele 4s ease-in-out infinite alternate;
}
.scn-telemachus-speaks .staff {
  position: absolute; bottom: 42%; left: 48%; width: 3px; height: 55px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(2deg);
  animation: ts-staff 3.5s ease-in-out infinite alternate;
}
.scn-telemachus-speaks .herald {
  position: absolute; bottom: 40%; left: 42%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform: scaleX(-1);
  animation: ts-herald 5s ease-in-out infinite alternate;
}
.scn-telemachus-speaks .crowd-shadows {
  position: absolute; bottom: 38%; right: 10%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at bottom, rgba(0,0,0,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: ts-crowd 8s ease-in-out infinite alternate;
}
@keyframes ts-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ts-sun { 0% { transform: translate(0, 0) scale(1) } 50% { transform: translate(4px, -2px) scale(1.03) } 100% { transform: translate(-3px, 1px) scale(0.97) } }
@keyframes ts-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes ts-tele { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes ts-staff { 0% { transform: rotate(2deg) } 50% { transform: rotate(-4deg) } 100% { transform: rotate(3deg) } }
@keyframes ts-herald { 0% { transform: scaleX(-1) translateX(0) } 50% { transform: scaleX(-1) translateX(5px) } 100% { transform: scaleX(-1) translateX(0) } }
@keyframes ts-crowd { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.5 } }

/* telemachus-weeps */
.scn-telemachus-weeps {
  background:
    linear-gradient(180deg, #98b8d8 0%, #d4b860 60%, #bfa050 100%),
    radial-gradient(ellipse at 65% 10%, #ffe080 0%, transparent 65%);
}
.scn-telemachus-weeps .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0c8e8 0%, transparent 100%);
  animation: tw-sky 10s ease-in-out infinite alternate;
}
.scn-telemachus-weeps .sun {
  position: absolute; top: 10%; left: 75%; width: 45px; height: 45px;
  background: radial-gradient(circle, #ffecaa 0%, #e0b850 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 35px 18px rgba(224,184,80,0.5);
  animation: tw-sun 20s ease-in-out infinite alternate;
}
.scn-telemachus-weeps .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #6a8a4a 0%, #3a5a2a 100%);
  border-radius: 40% 60% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
  animation: tw-hills 14s ease-in-out infinite alternate;
}
.scn-telemachus-weeps .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b09858 0%, #8a7040 100%);
  box-shadow: inset 0 8px 18px rgba(0,0,0,0.2);
}
.scn-telemachus-weeps .telemachus-bent {
  position: absolute; bottom: 33%; left: 52%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%;
  transform: translateX(-50%) rotate(5deg);
  transform-origin: bottom center;
  animation: tw-bent 4s ease-in-out infinite alternate;
}
.scn-telemachus-weeps .staff-fallen {
  position: absolute; bottom: 38%; left: 48%; width: 3px; height: 35px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(70deg);
  animation: tw-staff 3s ease-in-out infinite alternate;
}
.scn-telemachus-weeps .tear-a {
  position: absolute; bottom: 40%; left: 55%; width: 4px; height: 4px;
  background: radial-gradient(circle, #b0d8ff 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(176,216,255,0.6);
  animation: tw-tear-a 2s ease-in infinite;
}
.scn-telemachus-weeps .tear-b {
  position: absolute; bottom: 38%; left: 57%; width: 3px; height: 3px;
  background: radial-gradient(circle, #b0d8ff 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(176,216,255,0.5);
  animation: tw-tear-b 2.5s ease-in infinite 0.5s;
}
.scn-telemachus-weeps .antinous-shadow {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 45px;
  background: radial-gradient(ellipse at bottom, rgba(0,0,0,0.2) 0%, transparent 60%);
  filter: blur(6px);
  transform: scaleX(1.2);
  animation: tw-shadow 5s ease-in-out infinite alternate;
}
@keyframes tw-sky { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.75 } }
@keyframes tw-sun { 0% { transform: translate(0, 0) scale(1) } 50% { transform: translate(3px, -2px) scale(1.02) } 100% { transform: translate(-4px, 1px) scale(0.96) } }
@keyframes tw-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes tw-bent { 0% { transform: translateX(-50%) rotate(5deg) } 50% { transform: translateX(-50%) rotate(10deg) } 100% { transform: translateX(-50%) rotate(3deg) } }
@keyframes tw-staff { 0% { transform: rotate(70deg) } 50% { transform: rotate(80deg) } 100% { transform: rotate(65deg) } }
@keyframes tw-tear-a { 0% { transform: translateY(0) scale(1); opacity: 1 } 50% { transform: translateY(8px) scale(0.8); opacity: 0.6 } 100% { transform: translateY(16px) scale(0.5); opacity: 0 } }
@keyframes tw-tear-b { 0% { transform: translateY(0) scale(1); opacity: 1 } 50% { transform: translateY(10px) scale(0.7); opacity: 0.5 } 100% { transform: translateY(18px) scale(0.4); opacity: 0 } }
@keyframes tw-shadow { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.5 } }

/* antinous-accuses */
.scn-antinous-accuses {
  background:
    linear-gradient(180deg, #ffd580 0%, #f0b040 60%, #c08020 100%),
    radial-gradient(ellipse at 60% 10%, #ffe680 0%, transparent 70%);
}
.scn-antinous-accuses .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe0a0 0%, transparent 100%);
  animation: an-sky 8s ease-in-out infinite alternate;
}
.scn-antinous-accuses .sun {
  position: absolute; top: 8%; left: 65%; width: 55px; height: 55px;
  background: radial-gradient(circle, #ffecaa 0%, #e8a030 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px rgba(232,160,48,0.6);
  animation: an-sun 15s ease-in-out infinite alternate;
}
.scn-antinous-accuses .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 30% 70% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: an-hills 12s ease-in-out infinite alternate;
}
.scn-antinous-accuses .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b89850 0%, #8a6a30 100%);
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
}
.scn-antinous-accuses .antinous {
  position: absolute; bottom: 40%; left: 40%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform: translateX(-50%) rotate(-5deg);
  transform-origin: bottom center;
  animation: an-antinous 3.5s ease-in-out infinite alternate;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
}
.scn-antinous-accuses .telemachus-defensive {
  position: absolute; bottom: 40%; left: 58%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform: translateX(-50%) rotate(4deg);
  transform-origin: bottom center;
  animation: an-tele 4.5s ease-in-out infinite alternate;
}
.scn-antinous-accuses .staff {
  position: absolute; bottom: 42%; left: 48%; width: 3px; height: 60px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  animation: an-staff 3s ease-in-out infinite alternate;
}
.scn-antinous-accuses .crowd {
  position: absolute; bottom: 38%; right: 10%; width: 35px; height: 55px;
  background: radial-gradient(ellipse at bottom, rgba(0,0,0,0.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: an-crowd 6s ease-in-out infinite alternate;
}
@keyframes an-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes an-sun { 0% { transform: translate(0, 0) scale(1) } 50% { transform: translate(6px, -4px) scale(1.06) } 100% { transform: translate(-3px, 2px) scale(0.94) } }
@keyframes an-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-6px) } 100% { transform: translateY(0) } }
@keyframes an-antinous { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(8deg) } 100% { transform: translateX(-50%) rotate(-7deg) } }
@keyframes an-tele { 0% { transform: translateX(-50%) rotate(4deg) } 50% { transform: translateX(-50%) rotate(-6deg) } 100% { transform: translateX(-50%) rotate(2deg) } }
@keyframes an-staff { 0% { transform: rotate(10deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(12deg) } }
@keyframes an-crowd { 0% { opacity: 0.6 } 50% { opacity: 0.95 } 100% { opacity: 0.5 } }

/* telemachus-laments – dark mood, bright interior */
.scn-telemachus-laments {
  background:
    linear-gradient(180deg, #2b1f1a 0%, #4a3424 40%, #6b4c30 70%, #8b6040 100%),
    radial-gradient(ellipse at 30% 50%, #8b6040 0%, transparent 60%);
}
.scn-telemachus-laments .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2a1e 0%, #1f1410 100%); 
}
.scn-telemachus-laments .window {
  position: absolute; top: 12%; left: 55%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #f0e6d0 0%, #d4c4a8 100%);
  border-radius: 4px; box-shadow: 0 0 30px 10px rgba(240,230,208,0.3);
  animation: tl-window 8s ease-in-out infinite alternate;
}
.scn-telemachus-laments .light-beam {
  position: absolute; top: 12%; left: 55%; width: 120px; height: 250px;
  background: linear-gradient(180deg, rgba(240,230,208,0.25) 0%, transparent 100%);
  filter: blur(10px); transform-origin: top left; transform: skewX(-5deg);
  animation: tl-beam 6s ease-in-out infinite alternate;
}
.scn-telemachus-laments .table {
  position: absolute; bottom: 22%; left: 50%; width: 160px; height: 12px;
  margin-left: -80px; background: linear-gradient(90deg, #4a3222 0%, #6a4a32 50%, #4a3222 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-telemachus-laments .figure {
  position: absolute; bottom: 22%; left: 50%; width: 32px; height: 48px;
  margin-left: -16px; background: linear-gradient(180deg, #1a120e 0%, #0d0908 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tl-figure 4s ease-in-out infinite;
}
.scn-telemachus-laments .cup {
  position: absolute; bottom: 24%; left: 50%; width: 14px; height: 18px;
  margin-left: 30px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3222 100%);
  border-radius: 4px 4px 8px 8px;
  animation: tl-cup 5s ease-in-out infinite;
}
.scn-telemachus-laments .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 180px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(8px);
}
.scn-telemachus-laments .dust {
  position: absolute; top: 15%; left: 50%; width: 4px; height: 4px;
  background: #f0e6d0; border-radius: 50%; box-shadow: 
    20px 30px 0 2px rgba(240,230,208,0.3),
    -10px 60px 0 1px rgba(240,230,208,0.2),
    40px 80px 0 3px rgba(240,230,208,0.15);
  filter: blur(2px);
  animation: tl-dust 12s linear infinite;
}
@keyframes tl-window {
  0% { box-shadow: 0 0 30px 10px rgba(240,230,208,0.3); }
  50% { box-shadow: 0 0 50px 20px rgba(240,230,208,0.5); }
  100% { box-shadow: 0 0 40px 15px rgba(240,230,208,0.4); }
}
@keyframes tl-beam {
  0% { opacity: 0.3; transform: skewX(-5deg) scaleY(0.9); }
  50% { opacity: 0.6; transform: skewX(-2deg) scaleY(1.1); }
  100% { opacity: 0.4; transform: skewX(-5deg) scaleY(1); }
}
@keyframes tl-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes tl-cup {
  0%, 100% { transform: rotate(0); }
  50% { transform: rotate(5deg); }
}
@keyframes tl-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0.8; }
  50% { transform: translate(-20px,40px) scale(1.5); opacity: 0.3; }
  100% { transform: translate(10px,80px) scale(0.8); opacity: 0; }
}

/* minerva-counsels – determined mood, bright interior */
.scn-minerva-counsels {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #b8a88c 70%, #9a8a70 100%),
    radial-gradient(ellipse at 50% 30%, #f0e8d8 0%, transparent 70%);
}
.scn-minerva-counsels .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a088 0%, #887060 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-minerva-counsels .column-left {
  position: absolute; top: 0; left: 10%; width: 20px; height: 100%;
  background: linear-gradient(90deg, #c8b8a0 0%, #e0d0b8 40%, #c8b8a0 100%);
  border-radius: 4px; box-shadow: 8px 0 12px rgba(0,0,0,0.2);
}
.scn-minerva-counsels .column-right {
  position: absolute; top: 0; right: 10%; width: 20px; height: 100%;
  background: linear-gradient(90deg, #c8b8a0 0%, #e0d0b8 40%, #c8b8a0 100%);
  border-radius: 4px; box-shadow: -8px 0 12px rgba(0,0,0,0.2);
}
.scn-minerva-counsels .armor-stand {
  position: absolute; bottom: 30%; left: 35%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 10% 10% 20% 20%; transform: skewX(-5deg);
  animation: mc-stand 6s ease-in-out infinite;
}
.scn-minerva-counsels .helmet {
  position: absolute; bottom: 68%; left: 34%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #c8b090 0%, #a08870 100%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: mc-helmet 4s ease-in-out infinite alternate;
}
.scn-minerva-counsels .shield {
  position: absolute; bottom: 35%; right: 35%; width: 60px; height: 80px;
  background: radial-gradient(circle at 40% 40%, #e0c8a8 0%, #b09878 100%);
  border-radius: 50%; box-shadow: 4px 4px 12px rgba(0,0,0,0.5);
  animation: mc-shield 8s ease-in-out infinite;
}
.scn-minerva-counsels .figure-minerva {
  position: absolute; bottom: 25%; left: 60%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc-figure-m 3s ease-in-out infinite;
}
.scn-minerva-counsels .lance {
  position: absolute; bottom: 30%; left: 58%; width: 4px; height: 100px;
  background: linear-gradient(180deg, #a08870 0%, #7a6a5a 100%);
  transform: rotate(15deg); transform-origin: bottom;
  animation: mc-lance 5s ease-in-out infinite;
}
@keyframes mc-stand {
  0%, 100% { transform: skewX(-5deg) translateY(0); }
  50% { transform: skewX(-5deg) translateY(-2px); }
}
@keyframes mc-helmet {
  0% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes mc-shield {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes mc-figure-m {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes mc-lance {
  0%, 100% { transform: rotate(15deg); }
  50% { transform: rotate(10deg); }
}

/* telemachus-thanks – warm mood, bright interior */
.scn-telemachus-thanks {
  background:
    linear-gradient(180deg, #f0d8b0 0%, #e0c098 40%, #c8a878 70%, #b08858 100%),
    radial-gradient(ellipse at 40% 60%, #f8e0c0 0%, transparent 70%);
}
.scn-telemachus-thanks .wall-warm {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d8b890 0%, #b89870 100%);
}
.scn-telemachus-thanks .hearth {
  position: absolute; bottom: 20%; left: 15%; width: 90px; height: 60px;
  background: linear-gradient(180deg, #6a4830 0%, #3a2818 100%);
  border-radius: 20% 20% 8% 8%; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.5);
}
.scn-telemachus-thanks .fire-glow {
  position: absolute; bottom: 22%; left: 15%; width: 70px; height: 50px;
  background: radial-gradient(circle at 50% 100%, #ffb060 0%, #ff8000 40%, transparent 70%);
  filter: blur(12px);
  animation: tt-fire 3s ease-in-out infinite alternate;
}
.scn-telemachus-thanks .table-round {
  position: absolute; bottom: 24%; left: 50%; width: 140px; height: 12px;
  margin-left: -70px; background: linear-gradient(90deg, #8a6848 0%, #a88058 50%, #8a6848 100%);
  border-radius: 8px; box-shadow: 0 6px 16px rgba(0,0,0,0.4);
}
.scn-telemachus-thanks .bowl {
  position: absolute; bottom: 26%; left: 50%; width: 30px; height: 12px;
  margin-left: -15px; background: linear-gradient(180deg, #d8b888 0%, #b89868 100%);
  border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-telemachus-thanks .figure-telemachus {
  position: absolute; bottom: 22%; left: 50%; width: 28px; height: 44px;
  margin-left: 30px; background: linear-gradient(180deg, #3a2818 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tt-figure 5s ease-in-out infinite;
}
.scn-telemachus-thanks .gift-box {
  position: absolute; bottom: 26%; left: 50%; width: 20px; height: 16px;
  margin-left: -40px; background: linear-gradient(135deg, #c87048 0%, #a85028 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: tt-gift 7s ease-in-out infinite;
}
.scn-telemachus-thanks .warm-light {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,200,120,0.15) 0%, transparent 70%);
  pointer-events: none;
}
@keyframes tt-fire {
  0% { opacity: 0.5; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.9); }
}
@keyframes tt-figure {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes tt-gift {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

/* minerva-departs – calm mood, bright interior */
.scn-minerva-departs {
  background:
    linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 40%, #b8b0a0 70%, #9a9288 100%),
    radial-gradient(ellipse at 70% 50%, #f0ece0 0%, transparent 60%);
}
.scn-minerva-departs .wall-cool {
  position: absolute; inset: 0; background: linear-gradient(135deg, #c8c0b0 0%, #a8a090 100%);
}
.scn-minerva-departs .doorway {
  position: absolute; bottom: 0; left: 50%; width: 70px; height: 80%;
  margin-left: -35px; background: linear-gradient(180deg, #d8d0c0 0%, #b8b0a0 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
}
.scn-minerva-departs .light-outside {
  position: absolute; top: 0; left: 50%; width: 70px; height: 100%;
  margin-left: -35px; background: linear-gradient(180deg, #f0ece0 0%, #e0d8c8 100%);
  opacity: 0.15; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  animation: md-light 10s ease-in-out infinite alternate;
}
.scn-minerva-departs .figure-minerva {
  position: absolute; bottom: 12%; left: 50%; width: 26px; height: 50px;
  margin-left: -13px; background: linear-gradient(180deg, #2a221a 0%, #14100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: md-figure 4s ease-in-out infinite;
}
.scn-minerva-departs .shadow-figure {
  position: absolute; bottom: 8%; left: 48%; width: 50px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 70%);
}
.scn-minerva-departs .pillar {
  position: absolute; bottom: 0; left: 20%; width: 16px; height: 100%;
  background: linear-gradient(90deg, #b0a898 0%, #d0c8b8 40%, #b0a898 100%);
  border-radius: 2px; box-shadow: 4px 0 8px rgba(0,0,0,0.1);
}
.scn-minerva-departs .footstep {
  position: absolute; bottom: 10%; left: 44%; width: 12px; height: 4px;
  background: rgba(0,0,0,0.15); border-radius: 50%;
  animation: md-footstep 6s linear infinite;
}
.scn-minerva-departs .calm-dust {
  position: absolute; top: 20%; left: 40%; width: 3px; height: 3px;
  background: rgba(255,255,255,0.5); border-radius: 50%; box-shadow:
    30px 50px 0 1px rgba(255,255,255,0.3),
    -20px 70px 0 2px rgba(255,255,255,0.2);
  filter: blur(1px);
  animation: md-dust 20s linear infinite;
}
@keyframes md-light {
  0% { opacity: 0.1; transform: scale(1); }
  50% { opacity: 0.2; transform: scale(1.05); }
  100% { opacity: 0.12; transform: scale(0.95); }
}
@keyframes md-figure {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes md-footstep {
  0% { opacity: 0; transform: translateX(0) scale(1); }
  25% { opacity: 0.5; transform: translateX(10px) scale(1.2); }
  50% { opacity: 0; transform: translateX(20px) scale(0.8); }
  100% { opacity: 0; transform: translateX(30px) scale(0); }
}
@keyframes md-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0.3; }
  50% { transform: translate(15px,-30px) scale(1.5); opacity: 0.6; }
  100% { transform: translate(30px,-60px) scale(0.5); opacity: 0; }
}

.scn-proteus-tells {
  background: linear-gradient(180deg, #1a1220 0%, #2b1d2a 40%, #1f1622 100%), radial-gradient(ellipse at 50% 80%, #3a2a2a 0%, transparent 60%);
}
.scn-proteus-tells .cave-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, #2a1e1e 0%, #0f0a0a 100%); 
  animation: pt-cave 20s ease-in-out infinite alternate;
}
.scn-proteus-tells .fire-glow {
  position: absolute; bottom: 25%; left: 50%; width: 30%; height: 20%; transform: translateX(-50%);
  background: radial-gradient(ellipse, #bf6a3a 0%, #8a4a2a 40%, transparent 70%);
  box-shadow: 0 0 60px 20px #bf6a3a; animation: pt-fireglow 4s ease-in-out infinite alternate;
}
.scn-proteus-tells .figure-left {
  position: absolute; bottom: 18%; left: 28%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pt-figure 6s ease-in-out infinite;
}
.scn-proteus-tells .figure-right {
  position: absolute; bottom: 18%; right: 28%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pt-figure 6s ease-in-out infinite reverse;
}
.scn-proteus-tells .flame {
  position: absolute; bottom: 27%; left: 50%; width: 12px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #ffcc66 0%, #e0823a 60%, transparent 80%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px #e0823a; animation: pt-flame 1.2s ease-in-out infinite alternate;
}
.scn-proteus-tells .smoke {
  position: absolute; top: 15%; left: 48%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(180,160,140,0.3) 0%, transparent 70%);
  filter: blur(8px); animation: pt-smoke 8s ease-in-out infinite alternate;
}
.scn-proteus-tells .vine-a {
  position: absolute; top: 5%; left: 10%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%);
  border-radius: 0 50% 50% 0; transform-origin: top left;
  animation: pt-vine 12s ease-in-out infinite;
}
.scn-proteus-tells .vine-b {
  position: absolute; top: 8%; right: 15%; width: 15px; height: 90px;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%);
  border-radius: 50% 0 0 50%; transform-origin: top right;
  animation: pt-vine 14s ease-in-out infinite reverse;
}
@keyframes pt-cave { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes pt-fireglow { 0% { opacity:0.7; transform: scale(1) translateX(-50%); } 50% { opacity:1; transform: scale(1.1) translateX(-50%); } 100% { opacity:0.8; transform: scale(0.95) translateX(-50%); } }
@keyframes pt-figure { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(2deg) translateY(0); } 75% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes pt-flame { 0% { transform: translateX(-50%) scaleY(0.8); opacity:0.9; } 50% { transform: translateX(-50%) scaleY(1.1); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.9); opacity:0.85; } }
@keyframes pt-smoke { 0% { transform: translate(0,0) scale(1); opacity:0.3; } 50% { transform: translate(-10px,-20px) scale(1.2); opacity:0.5; } 100% { transform: translate(10px,-10px) scale(0.9); opacity:0.2; } }
@keyframes pt-vine { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

.scn-proteus-tells-agamemnon {
  background: linear-gradient(180deg, #1a1418 0%, #2a1e22 40%, #181214 100%), radial-gradient(ellipse at 50% 40%, #4a3a3a 0%, transparent 70%);
}
.scn-proteus-tells-agamemnon .wall-bg {
  position: absolute; inset: 0; background: repeating-linear-gradient(90deg, #2a1e22 0px, #1a1418 20px, #2a1e22 40px);
  animation: pta-wall 30s linear infinite;
}
.scn-proteus-tells-agamemnon .window {
  position: absolute; top: 15%; right: 20%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #3a5060 0%, #1a2a3a 100%);
  border: 4px solid #4a3a2a; border-radius: 4px;
  box-shadow: inset 0 0 20px #2a4a5a, 0 0 30px rgba(60,80,100,0.5);
  animation: pta-window 8s ease-in-out infinite alternate;
}
.scn-proteus-tells-agamemnon .table {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-proteus-tells-agamemnon .ship-model {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  transform-origin: bottom center; animation: pta-ship 10s ease-in-out infinite;
}
.scn-proteus-tells-agamemnon .sail-cloth {
  position: absolute; bottom: 30%; left: 42%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8b898 0%, #a08868 100%);
  clip-path: polygon(50% 0%, 100% 40%, 80% 100%, 20% 100%, 0% 40%);
  box-shadow: 0 0 12px rgba(200,184,152,0.3); animation: pta-sail 6s ease-in-out infinite alternate;
}
.scn-proteus-tells-agamemnon .hand-reach {
  position: absolute; bottom: 22%; left: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom right; animation: pta-hand 4s ease-in-out infinite;
}
.scn-proteus-tells-agamemnon .wave-line {
  position: absolute; bottom: 15%; left: 0; width: 100%; height: 10px;
  background: linear-gradient(90deg, transparent, #4a5a6a, transparent);
  filter: blur(2px); animation: pta-wave 7s linear infinite;
}
@keyframes pta-wall { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }
@keyframes pta-window { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes pta-ship { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes pta-sail { 0% { transform: rotate(-5deg) scaleY(0.9); } 50% { transform: rotate(5deg) scaleY(1.1); } 100% { transform: rotate(-5deg) scaleY(0.9); } }
@keyframes pta-hand { 0% { transform: translate(0,0) rotate(0); } 25% { transform: translate(5px,-3px) rotate(5deg); } 50% { transform: translate(10px,0) rotate(2deg); } 75% { transform: translate(5px,2px) rotate(-3deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes pta-wave { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-20%) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }

.scn-proteus-warns {
  background: linear-gradient(180deg, #1a1215 0%, #2a1a1e 50%, #141012 100%), radial-gradient(ellipse at 50% 70%, #3a2a2a 0%, transparent 80%);
}
.scn-proteus-warns .cave-dark {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 80%, #2a1a1e 0%, #0a0808 100%);
  animation: pw-dark 25s ease-in-out infinite alternate;
}
.scn-proteus-warns .lantern-light {
  position: absolute; bottom: 30%; left: 20%; width: 15px; height: 25px;
  background: radial-gradient(circle, #eac872 0%, #c8a050 50%, transparent 80%);
  box-shadow: 0 0 40px 15px rgba(234,200,114,0.4), 0 0 80px 30px rgba(234,200,114,0.2);
  animation: pw-lantern 3s ease-in-out infinite alternate;
}
.scn-proteus-warns .figure-proteus {
  position: absolute; bottom: 15%; left: 15%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pw-proteus 7s ease-in-out infinite;
}
.scn-proteus-warns .shadow-third {
  position: absolute; bottom: 15%; right: 20%; width: 45px; height: 65px;
  background: linear-gradient(180deg, rgba(20,12,8,0.8) 0%, rgba(10,6,4,0.6) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px); animation: pw-shadow 9s ease-in-out infinite alternate;
}
.scn-proteus-warns .staff {
  position: absolute; bottom: 20%; left: 28%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  transform: rotate(-15deg); transform-origin: bottom center;
  animation: pw-staff 6s ease-in-out infinite;
}
.scn-proteus-warns .floor-glow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 15%;
  background: radial-gradient(ellipse, rgba(234,200,114,0.15) 0%, transparent 70%);
  animation: pw-floor 5s ease-in-out infinite alternate;
}
@keyframes pw-dark { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes pw-lantern { 0% { box-shadow: 0 0 30px 10px rgba(234,200,114,0.3), 0 0 60px 20px rgba(234,200,114,0.1); opacity:0.8; } 50% { box-shadow: 0 0 50px 20px rgba(234,200,114,0.5), 0 0 100px 30px rgba(234,200,114,0.3); opacity:1; } 100% { box-shadow: 0 0 35px 12px rgba(234,200,114,0.35), 0 0 70px 25px rgba(234,200,114,0.15); opacity:0.9; } }
@keyframes pw-proteus { 0% { transform: rotate(-1deg) translateY(0); } 30% { transform: rotate(2deg) translateY(-3px); } 60% { transform: rotate(-2deg) translateY(1px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes pw-shadow { 0% { transform: translateX(0) scale(1); opacity:0.5; } 50% { transform: translateX(-8px) scale(1.1); opacity:0.8; } 100% { transform: translateX(0) scale(1); opacity:0.5; } }
@keyframes pw-staff { 0% { transform: rotate(-15deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(-15deg); } }
@keyframes pw-floor { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

.scn-proteus-tells-ulysses {
  background: linear-gradient(180deg, #1a1418 0%, #2a1e22 40%, #161012 100%), radial-gradient(ellipse at 50% 50%, #3a2a2a 0%, transparent 70%);
}
.scn-proteus-tells-ulysses .room-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1a1418, #2a1e22, #1a1418);
  animation: ptu-room 40s linear infinite alternate;
}
.scn-proteus-tells-ulysses .table-round {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 100px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-proteus-tells-ulysses .figure-sitting {
  position: absolute; bottom: 18%; left: 35%; width: 45px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ptu-figure 8s ease-in-out infinite;
}
.scn-proteus-tells-ulysses .lyre {
  position: absolute; bottom: 28%; left: 42%; width: 30px; height: 20px;
  background: radial-gradient(circle, #c8a050 0%, #a08030 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 50%, 80% 100%, 20% 100%, 0% 50%);
  box-shadow: 0 0 12px rgba(200,160,80,0.4); animation: ptu-lyre 5s ease-in-out infinite alternate;
}
.scn-proteus-tells-ulysses .island-globe {
  position: absolute; top: 20%; left: 60%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px rgba(74,106,74,0.4), 0 0 60px rgba(74,106,74,0.2);
  animation: ptu-island 12s ease-in-out infinite alternate;
}
.scn-proteus-tells-ulysses .glow-ring {
  position: absolute; top: 15%; left: 55%; width: 80px; height: 80px;
  border-radius: 50%; border: 2px solid rgba(200,160,80,0.2);
  box-shadow: 0 0 40px rgba(200,160,80,0.1);
  animation: ptu-ring 10s linear infinite;
}
.scn-proteus-tells-ulysses .dots-stars {
  position: absolute; top: 5%; right: 10%; width: 4px; height: 4px;
  background: #c8b898; border-radius: 50%; box-shadow: 0 0 6px #c8b898;
  animation: ptu-dots 6s ease-in-out infinite alternate;
}
@keyframes ptu-room { 0% { background-position: 0 0; } 100% { background-position: 100px 0; } }
@keyframes ptu-figure { 0% { transform: rotate(-2deg) translateY(0); } 30% { transform: rotate(1deg) translateY(-2px); } 60% { transform: rotate(-1deg) translateY(1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes ptu-lyre { 0% { transform: rotate(-5deg) scale(0.95); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(-5deg) scale(0.95); } }
@keyframes ptu-island { 0% { transform: rotate(0) scale(1); opacity:0.6; } 50% { transform: rotate(5deg) scale(1.1); opacity:0.9; } 100% { transform: rotate(-5deg) scale(0.95); opacity:0.7; } }
@keyframes ptu-ring { 0% { transform: rotate(0deg) scale(1); opacity:0.3; } 50% { transform: rotate(180deg) scale(1.2); opacity:0.6; } 100% { transform: rotate(360deg) scale(1); opacity:0.3; } }
@keyframes ptu-dots { 0% { transform: translate(0,0); opacity:0.4; } 50% { transform: translate(-5px,-5px); opacity:1; } 100% { transform: translate(0,0); opacity:0.4; } }

/* Vulcan Furious - angry, bright interior */
.scn-vulcan-furious {
  background: linear-gradient(180deg, #f2c48a 0%, #e5a96a 40%, #c87d3a 100%), radial-gradient(ellipse at 20% 80%, #ffdd99 0%, transparent 60%);
}
.scn-vulcan-furious .bg-warm {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(200,140,80,0.3) 0%, transparent 100%);
  animation: vf-bg 6s ease-in-out infinite alternate;
}
.scn-vulcan-furious .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-vulcan-furious .wall-shadow {
  position: absolute; right: 0; top: 0; width: 40%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: vf-shadow 3s ease-in-out infinite alternate;
}
.scn-vulcan-furious .forge-glow {
  position: absolute; left: 10%; top: 40%; width: 120px; height: 120px;
  background: radial-gradient(circle, #ff8833 0%, #cc4400 60%, transparent 100%);
  border-radius: 50%; filter: blur(20px);
  animation: vf-glow 4s ease-in-out infinite alternate;
}
.scn-vulcan-furious .vulcan-fig {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 50% 50%;
  transform-origin: bottom center;
  animation: vf-tremble 2s ease-in-out infinite;
}
.scn-vulcan-furious .hammer {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #555 0%, #222 100%);
  border-radius: 20% 20% 40% 40%; transform: rotate(20deg);
  animation: vf-swing 3s ease-in-out infinite alternate;
}
.scn-vulcan-furious .chain-frag {
  position: absolute; bottom: 35%; left: 60%; width: 30px; height: 4px;
  background: #888; border-radius: 2px; box-shadow: 0 6px 0 #888, 0 12px 0 #888;
  animation: vf-chain 1.5s ease-in-out infinite;
}
@keyframes vf-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes vf-shadow { 0% { opacity: 0.3 } 100% { opacity: 0.6 } }
@keyframes vf-glow { 0% { transform: scale(0.9); opacity: 0.6 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(1); opacity: 0.8 } }
@keyframes vf-tremble { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-3deg) } 75% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes vf-swing { 0% { transform: rotate(15deg) } 100% { transform: rotate(45deg) } }
@keyframes vf-chain { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }

/* Gods Comment - funny, bright interior */
.scn-gods-comment {
  background: linear-gradient(180deg, #fff3e0 0%, #ffe0b2 50%, #ffcc80 100%), radial-gradient(ellipse at 50% 30%, #ffffff 0%, transparent 70%);
}
.scn-gods-comment .bg-bright {
  position: absolute; inset: 0; background: rgba(255,255,240,0.3);
  animation: gc-bg 8s ease-in-out infinite alternate;
}
.scn-gods-comment .colonnade {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 70%;
  border-left: 8px solid #bcaaa4; border-right: 8px solid #bcaaa4;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 30px, #bcaaa4 30px, #bcaaa4 32px, transparent 32px);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
}
.scn-gods-comment .net {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 40%;
  border: 3px solid #8d6e63; background: repeating-linear-gradient(45deg, transparent, transparent 15px, rgba(141,110,99,0.3) 15px, rgba(141,110,99,0.3) 16px);
  border-radius: 10%; animation: gc-net 3s ease-in-out infinite;
}
.scn-gods-comment .mars-fig {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3e2723 0%, #1a0f0a 100%);
  border-radius: 40% 40% 30% 30%; transform-origin: bottom center;
  animation: gc-mars 4s ease-in-out infinite;
}
.scn-gods-comment .vulcan-fig-gc {
  position: absolute; bottom: 18%; left: 48%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 50% 50%; transform: skewX(-10deg);
  animation: gc-limp 5s ease-in-out infinite alternate;
}
.scn-gods-comment .venus-fig {
  position: absolute; bottom: 25%; left: 60%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #6a4e3a 0%, #3a2a1a 100%);
  border-radius: 40% 30% 40% 30%; transform: rotate(10deg);
  animation: gc-venus 6s ease-in-out infinite alternate;
}
.scn-gods-comment .apollo-sil {
  position: absolute; bottom: 15%; right: 15%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #333 0%, #111 100%);
  border-radius: 30% 30% 20% 20%; animation: gc-nod 7s ease-in-out infinite;
}
.scn-gods-comment .mercury-sil {
  position: absolute; bottom: 15%; right: 5%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #444 0%, #222 100%);
  border-radius: 20% 20% 30% 30%; transform: scale(0.9);
  animation: gc-nod 7s ease-in-out infinite 2s;
}
@keyframes gc-bg { 0% { opacity: 0.8 } 100% { opacity: 1 } }
@keyframes gc-net { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes gc-mars { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(5deg) } 50% { transform: translateX(-2px) rotate(-3deg) } 75% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes gc-limp { 0% { transform: skewX(-8deg) translateY(0) } 100% { transform: skewX(8deg) translateY(-4px) } }
@keyframes gc-venus { 0% { transform: rotate(5deg) } 100% { transform: rotate(15deg) } }
@keyframes gc-nod { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }

/* Neptune Pledges - calm, bright interior */
.scn-neptune-pledges {
  background: linear-gradient(180deg, #f7e8d0 0%, #e8d5b0 50%, #d4b880 100%), radial-gradient(ellipse at 70% 50%, #ffffff 0%, transparent 60%);
}
.scn-neptune-pledges .bg-calm {
  position: absolute; inset: 0; background: rgba(255,245,230,0.3);
  animation: np-calm 12s ease-in-out infinite alternate;
}
.scn-neptune-pledges .window-light {
  position: absolute; top: 10%; left: 20%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #fff9e6 0%, #f5e6c8 100%);
  border-radius: 4px; box-shadow: 0 0 30px rgba(200,180,140,0.4);
  animation: np-win 8s ease-in-out infinite alternate;
}
.scn-neptune-pledges .neptune-hand {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%; transform: rotate(-10deg);
  animation: np-hand 6s ease-in-out infinite alternate;
}
.scn-neptune-pledges .vulcan-fig-np {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 50% 50%; transform: scale(0.8);
  animation: np-sit 10s ease-in-out infinite;
}
.scn-neptune-pledges .table-altar {
  position: absolute; bottom: 15%; left: 30%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-neptune-pledges .pledge-glint {
  position: absolute; top: 45%; left: 55%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd680 0%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 5px #ffd680;
  animation: np-glint 4s ease-in-out infinite;
}
@keyframes np-calm { 0% { opacity: 0.7 } 100% { opacity: 1 } }
@keyframes np-win { 0% { opacity: 0.8; transform: scale(1) } 100% { opacity: 1; transform: scale(1.05) } }
@keyframes np-hand { 0% { transform: rotate(-12deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-12deg) translateY(0) } }
@keyframes np-sit { 0%,100% { transform: scale(0.8) translateY(0) } 50% { transform: scale(0.8) translateY(-2px) } }
@keyframes np-glint { 0% { opacity: 0.5; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.5; transform: scale(0.8) } }

/* Vulcan Agrees - calm, bright interior */
.scn-vulcan-agrees {
  background: linear-gradient(180deg, #ecd5b0 0%, #d9bf98 50%, #c4a47a 100%), radial-gradient(ellipse at 30% 20%, #f5e8d0 0%, transparent 50%);
}
.scn-vulcan-agrees .bg-relief {
  position: absolute; inset: 0; background: rgba(240,225,200,0.2);
  animation: va-relief 10s ease-in-out infinite alternate;
}
.scn-vulcan-agrees .doorway-arch {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 80%;
  border: 6px solid #8d6e63; border-bottom: none;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: va-arch 6s ease-in-out infinite alternate;
}
.scn-vulcan-agrees .vulcan-loosing {
  position: absolute; bottom: 20%; left: 25%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 50% 50%; transform: rotate(-15deg);
  animation: va-loosen 5s ease-in-out infinite;
}
.scn-vulcan-agrees .fleeing-mars {
  position: absolute; bottom: 22%; left: 60%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3e2723 0%, #1a0f0a 100%);
  border-radius: 40% 40% 30% 30%; transform: rotate(30deg);
  animation: va-flee 3s ease-in-out infinite;
}
.scn-vulcan-agrees .broken-chain {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 4px;
  background: #777; border-radius: 2px; box-shadow: 0 6px 0 #777, 0 12px 0 #777, 0 18px 0 #777;
  animation: va-chain 4s ease-in-out infinite;
}
.scn-vulcan-agrees .dust-particles {
  position: absolute; bottom: 10%; left: 10%; width: 100%; height: 50%;
  background: radial-gradient(circle at 20% 30%, rgba(200,180,160,0.4) 0%, transparent 50%),
              radial-gradient(circle at 50% 60%, rgba(200,180,160,0.3) 0%, transparent 40%),
              radial-gradient(circle at 80% 20%, rgba(200,180,160,0.2) 0%, transparent 60%);
  filter: blur(4px); animation: va-dust 8s ease-in-out infinite alternate;
}
@keyframes va-relief { 0% { opacity: 0.6 } 100% { opacity: 1 } }
@keyframes va-arch { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.02) } }
@keyframes va-loosen { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-3px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes va-flee { 0% { transform: rotate(30deg) translateX(0) } 25% { transform: rotate(35deg) translateX(8px) } 50% { transform: rotate(28deg) translateX(16px) } 75% { transform: rotate(32deg) translateX(24px) } 100% { transform: rotate(30deg) translateX(32px) } }
@keyframes va-chain { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-5px) rotate(10deg) } }
@keyframes va-dust { 0% { opacity: 0.4; transform: translateY(0) } 100% { opacity: 0.8; transform: translateY(-10px) } }

/* telemachus-greets - sunlit calm interior */
.scn-telemachus-greets {
  background: 
    linear-gradient(180deg, #ffe4c4 0%, #ffd699 40%, #c4956a 100%),
    radial-gradient(ellipse at 30% 20%, rgba(255,255,220,0.3) 0%, transparent 70%);
}
.scn-telemachus-greets .window { position:absolute; top:8%; left:65%; width:28%; height:45%; background: linear-gradient(135deg, #fff9ec 0%, #e8d8b8 100%); border-radius: 2%; box-shadow: inset 0 0 20px rgba(255,255,200,0.5), 0 0 60px rgba(255,255,180,0.3); animation: tg-window 12s ease-in-out infinite alternate; }
.scn-telemachus-greets .sunbeam { position:absolute; top:10%; left:68%; width:30%; height:80%; background: linear-gradient(135deg, rgba(255,255,230,0.25) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 70% 100%, 0% 100%); animation: tg-beam 8s ease-in-out infinite alternate; }
.scn-telemachus-greets .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b8864a 0%, #8b5e34 100%); border-radius: 30% 0 0 0; }
.scn-telemachus-greets .suitors { position:absolute; bottom:30%; left:5%; width:60%; height:20%; background: linear-gradient(180deg, #6b4e3a 0%, #4a3422 100%); border-radius: 40% 40% 20% 20%; opacity:0.7; animation: tg-suitors 6s ease-in-out infinite; }
.scn-telemachus-greets .telemachus { position:absolute; bottom:28%; left:20%; width:14%; height:30%; background: linear-gradient(180deg, #3b2b1a 0%, #1f140b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tg-telemachus 5s ease-in-out infinite alternate; }
.scn-telemachus-greets .pillar-left { position:absolute; bottom:0; left:2%; width:3%; height:80%; background: linear-gradient(180deg, #c4a886 0%, #9e7a5a 100%); border-radius: 20% 20% 0 0; box-shadow: 2px 0 6px rgba(0,0,0,0.2); }
.scn-telemachus-greets .pillar-right { position:absolute; bottom:0; right:2%; width:3%; height:80%; background: linear-gradient(180deg, #c4a886 0%, #9e7a5a 100%); border-radius: 20% 20% 0 0; box-shadow: -2px 0 6px rgba(0,0,0,0.2); }
.scn-telemachus-greets .shadow { position:absolute; bottom:0; left:15%; width:30%; height:8%; background: rgba(0,0,0,0.15); border-radius: 50%; animation: tg-shadow 8s ease-in-out infinite alternate; }
@keyframes tg-window { 0% { opacity:0.85; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.02); } 100% { opacity:0.9; transform: scaleX(0.98); } }
@keyframes tg-beam { 0% { opacity:0.4; transform: translateX(0) rotate(-1deg); } 50% { opacity:0.6; transform: translateX(2px) rotate(1deg); } 100% { opacity:0.5; transform: translateX(-1px) rotate(-0.5deg); } }
@keyframes tg-suitors { 0% { transform: translateY(0) scaleY(1); } 33% { transform: translateY(-1px) scaleY(1.02); } 66% { transform: translateY(1px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes tg-telemachus { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(3px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes tg-shadow { 0% { opacity:0.12; transform: scaleX(1); } 50% { opacity:0.18; transform: scaleX(1.05); } 100% { opacity:0.14; transform: scaleX(0.95); } }

/* inside-ulysses-house - bright interior calm */
.scn-inside-ulysses-house {
  background: 
    linear-gradient(180deg, #edcfa6 0%, #d4b07c 50%, #b8925a 100%),
    radial-gradient(ellipse at 50% 70%, rgba(255,220,160,0.3) 0%, transparent 60%);
}
.scn-inside-ulysses-house .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #9c7a50 0%, #705a3a 100%); border-radius: 10% 10% 0 0; }
.scn-inside-ulysses-house .wall { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #f0e0c0 0%, #d4c0a0 100%); }
.scn-inside-ulysses-house .post { position:absolute; bottom:0; left:20%; width:4%; height:80%; background: linear-gradient(180deg, #7a523a 0%, #4a3420 100%); border-radius: 5% 5% 0 0; }
.scn-inside-ulysses-house .spear-stand { position:absolute; bottom:25%; left:45%; width:12%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a10 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-inside-ulysses-house .spears { position:absolute; bottom:30%; left:46%; width:10%; height:40%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 3px, transparent 3px, transparent 8px); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: uh-spears 10s ease-in-out infinite alternate; }
.scn-inside-ulysses-house .seat { position:absolute; bottom:15%; right:25%; width:20%; height:25%; background: linear-gradient(180deg, #a06040 0%, #704828 100%); border-radius: 15% 15% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.2); animation: uh-seat 7s ease-in-out infinite; }
.scn-inside-ulysses-house .telemachus-figure { position:absolute; bottom:18%; left:35%; width:10%; height:35%; background: linear-gradient(180deg, #3b2b1a 0%, #1f140b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: uh-walk-a 6s ease-in-out infinite; }
.scn-inside-ulysses-house .minerva-figure { position:absolute; bottom:18%; left:28%; width:9%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: uh-walk-b 6s ease-in-out infinite 0.5s; }
@keyframes uh-spears { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes uh-seat { 0%,100% { transform: translateX(0) translateY(0); } 33% { transform: translateX(1px) translateY(-1px); } 66% { transform: translateX(-1px) translateY(0); } }
@keyframes uh-walk-a { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(2deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes uh-walk-b { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-4px) rotate(-1deg); } 50% { transform: translateX(-8px) rotate(1deg); } 75% { transform: translateX(-12px) rotate(-2deg); } 100% { transform: translateX(-16px) rotate(0deg); } }

/* suitors-feast - tense bright interior */
.scn-suitors-feast {
  background: 
    linear-gradient(180deg, #e8c8a0 0%, #c8a070 50%, #a88550 100%),
    radial-gradient(ellipse at 80% 20%, rgba(255,200,100,0.4) 0%, transparent 60%);
}
.scn-suitors-feast .table { position:absolute; bottom:25%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%); border-radius: 5% 5% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: sf-table 2s ease-in-out infinite alternate; }
.scn-suitors-feast .bench { position:absolute; bottom:30%; left:10%; width:80%; height:6%; background: linear-gradient(180deg, #5a3a22 0%, #3a2210 100%); border-radius: 3%; }
.scn-suitors-feast .suitors { position:absolute; bottom:30%; left:15%; width:70%; height:18%; background: linear-gradient(180deg, #7a5a40 0%, #4a2a18 100%); border-radius: 50% 50% 20% 20%; clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); animation: sf-suitors 3s ease-in-out infinite; }
.scn-suitors-feast .servant-a { position:absolute; bottom:32%; left:5%; width:8%; height:22%; background: linear-gradient(180deg, #8a6a50 0%, #5a3e28 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sf-servant 1.5s ease-in-out infinite; }
.scn-suitors-feast .servant-b { position:absolute; bottom:32%; right:5%; width:8%; height:22%; background: linear-gradient(180deg, #8a6a50 0%, #5a3e28 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sf-servant 1.8s ease-in-out infinite 0.3s; }
.scn-suitors-feast .bowl { position:absolute; bottom:34%; left:30%; width:12%; height:8%; background: radial-gradient(circle, #c08050 0%, #a06030 100%); border-radius: 50%; box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3); animation: sf-bowl 4s ease-in-out infinite; }
.scn-suitors-feast .cup { position:absolute; bottom:34%; right:30%; width:6%; height:10%; background: linear-gradient(180deg, #b07040 0%, #804820 100%); border-radius: 0 0 20% 20%; animation: sf-cup 2.5s ease-in-out infinite; }
.scn-suitors-feast .torch { position:absolute; top:8%; left:50%; width:6%; height:20%; background: linear-gradient(180deg, #a06020 0%, #603010 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,200,50,0.3); animation: sf-torch 1s ease-in-out infinite alternate; }
@keyframes sf-table { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(0.98); } }
@keyframes sf-suitors { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(1px) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sf-servant { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(2deg); } 66% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sf-bowl { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-1px); } 100% { transform: scale(0.95) translateY(0); } }
@keyframes sf-cup { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(3deg); } }
@keyframes sf-torch { 0% { opacity:0.8; transform: scaleY(1) rotate(-2deg); } 50% { opacity:1; transform: scaleY(1.05) rotate(0deg); } 100% { opacity:0.9; transform: scaleY(0.95) rotate(2deg); } }

/* telemachus-whispers - tense bright interior, whispered conversation */
.scn-telemachus-whispers {
  background: 
    linear-gradient(180deg, #f0d8b0 0%, #d0b080 50%, #b08a60 100%),
    radial-gradient(ellipse at 40% 10%, rgba(255,200,150,0.4) 0%, transparent 60%);
}
.scn-telemachus-whispers .bard { position:absolute; bottom:25%; right:8%; width:16%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tw-bard 4s ease-in-out infinite; }
.scn-telemachus-whispers .lyre { position:absolute; bottom:35%; right:12%; width:8%; height:15%; background: linear-gradient(180deg, #a08060 0%, #705030 100%); border-radius: 30% 30% 20% 20%; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: tw-lyre 2s ease-in-out infinite alternate; }
.scn-telemachus-whispers .telemachus { position:absolute; bottom:20%; left:25%; width:12%; height:35%; background: linear-gradient(180deg, #3b2b1a 0%, #1f140b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tw-lean 3s ease-in-out infinite; }
.scn-telemachus-whispers .minerva { position:absolute; bottom:18%; left:35%; width:11%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tw-lean 3s ease-in-out infinite 0.5s; }
.scn-telemachus-whispers .column { position:absolute; bottom:0; left:10%; width:4%; height:80%; background: linear-gradient(180deg, #c8a884 0%, #a08260 100%); border-radius: 5% 5% 0 0; box-shadow: 2px 0 10px rgba(0,0,0,0.2); }
.scn-telemachus-whispers .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a6a48 0%, #604830 100%); border-radius: 15% 15% 0 0; }
.scn-telemachus-whispers .torch { position:absolute; top:5%; left:20%; width:5%; height:20%; background: linear-gradient(180deg, #a06020 0%, #603010 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 15px rgba(255,200,50,0.3); animation: tw-torch 0.8s ease-in-out infinite alternate; }
.scn-telemachus-whispers .shadow { position:absolute; bottom:0; left:20%; width:30%; height:6%; background: rgba(0,0,0,0.2); border-radius: 50%; animation: tw-shadow 2s ease-in-out infinite; }
@keyframes tw-bard { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-1px) rotate(2deg); } 66% { transform: translateX(1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tw-lyre { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.1) rotate(5deg); } 100% { transform: scaleY(0.9) rotate(-5deg); } }
@keyframes tw-lean { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(3deg); } }
@keyframes tw-torch { 0% { opacity:0.85; transform: scaleY(1) rotate(-3deg); } 50% { opacity:1; transform: scaleY(1.08) rotate(0deg); } 100% { opacity:0.9; transform: scaleY(0.92) rotate(3deg); } }
@keyframes tw-shadow { 0% { opacity:0.15; transform: scaleX(1); } 50% { opacity:0.25; transform: scaleX(1.1); } 100% { opacity:0.18; transform: scaleX(0.9); } }

/* ulysses-weeps – sad, bright interior */
.scn-ulysses-weeps {
  background:
    linear-gradient(180deg, #2a1f18 0%, #3d2a1e 40%, #5a4030 100%),
    radial-gradient(ellipse at 70% 60%, #7a5a3a 0%, transparent 70%);
}
.scn-ulysses-weeps .uw-back   { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #3d2a1e 0%, #5a4030 50%, #3d2a1e 100%); animation: uw-bg 20s ease-in-out infinite alternate; }
.scn-ulysses-weeps .uw-floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1f18 0%, #1f1510 100%); border-radius: 20% 20% 0 0; }
.scn-ulysses-weeps .uw-figure { position:absolute; bottom:22%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #4a3528 0%, #2a1f18 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: uw-sob 3s ease-in-out infinite; }
.scn-ulysses-weeps .uw-mantle { position:absolute; bottom:34%; left:26%; width:60px; height:50px; background: linear-gradient(135deg, #5e1a1d 0%, #3a1012 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: top center; animation: uw-shroud 4s ease-in-out infinite; }
.scn-ulysses-weeps .uw-cup    { position:absolute; bottom:20%; left:45%; width:16px; height:20px; background: radial-gradient(circle, #c8a060 0%, #8a6a40 70%); border-radius: 0 0 30% 30%; box-shadow: 0 0 20px 4px #a07040; animation: uw-cup 3s ease-in-out infinite; }
.scn-ulysses-weeps .uw-bard   { position:absolute; bottom:22%; right:25%; width:30px; height:55px; background: linear-gradient(180deg, #4a3528 0%, #2a1f18 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: uw-strum 1.5s ease-in-out infinite; }
.scn-ulysses-weeps .uw-window { position:absolute; top:15%; right:20%; width:50px; height:70px; background: linear-gradient(180deg, #ffe0b0 0%, #d0a870 100%); border-radius: 10%; box-shadow: inset 0 0 30px rgba(255,224,176,.5); animation: uw-window 8s ease-in-out infinite alternate; }
.scn-ulysses-weeps .uw-light  { position:absolute; top:15%; right:20%; width:100px; height:90px; background: radial-gradient(ellipse at 50% 50%, #ffe0b0 0%, transparent 70%); filter: blur(8px); animation: uw-glow 6s ease-in-out infinite alternate; }
@keyframes uw-bg    { 0% { opacity:.9; transform: scaleX(1); } 50% { opacity:.7; transform: scaleX(1.02); } 100% { opacity:.85; transform: scaleX(1); } }
@keyframes uw-sob   { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes uw-shroud{ 0%,100% { transform: rotate(-5deg) translateX(1px); } 50% { transform: rotate(5deg) translateX(-2px); } }
@keyframes uw-cup   { 0%,100% { opacity:.8; box-shadow: 0 0 15px 3px #a07040; } 50% { opacity:1; box-shadow: 0 0 28px 6px #d09050; } }
@keyframes uw-strum { 0%,100% { transform: rotate(0); } 50% { transform: rotate(2deg) scaleY(1.01); } }
@keyframes uw-window{ 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes uw-glow  { 0% { transform: scale(1); opacity:.4; } 50% { transform: scale(1.1); opacity:.7; } 100% { transform: scale(.95); opacity:.5; } }

/* alcinous-proposes-sports – cheerful, sunlit */
.scn-alcinous-proposes-sports {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 60%, #f0e68c 100%),
    radial-gradient(ellipse at 50% 30%, #fff5cc 0%, transparent 60%);
}
.scn-alcinous-proposes-sports .ap-sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a90d9 0%, #87ceeb 100%); animation: ap-sky 12s ease-in-out infinite alternate; }
.scn-alcinous-proposes-sports .ap-sun    { position:absolute; top:5%; left:30%; width:50px; height:50px; background: radial-gradient(circle, #ffe066 0%, #ffcc00 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 80px 20px #ffcc00; animation: ap-sun 4s ease-in-out infinite; }
.scn-alcinous-proposes-sports .ap-ground{ position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8b88a 0%, #a09060 100%); border-radius: 40% 0 0 0 / 20% 0 0 0; }
.scn-alcinous-proposes-sports .ap-runner1{ position:absolute; bottom:20%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #d2b48c 0%, #a08060 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap-run 2.5s ease-in-out infinite; }
.scn-alcinous-proposes-sports .ap-runner2{ position:absolute; bottom:22%; left:45%; width:18px; height:38px; background: linear-gradient(180deg, #c0a070 0%, #907050 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap-run 2.8s ease-in-out infinite 0.5s; }
.scn-alcinous-proposes-sports .ap-javelin{ position:absolute; bottom:28%; left:65%; width:4px; height:50px; background: linear-gradient(180deg, #ccc 0%, #999 100%); border-radius: 10%; transform-origin: 50% 100%; animation: ap-throw 1.5s ease-in-out infinite; }
.scn-alcinous-proposes-sports .ap-discus { position:absolute; bottom:30%; left:10%; width:22px; height:6px; background: radial-gradient(circle, #aaa 0%, #666 100%); border-radius:50%; transform-origin: 50% 50%; animation: ap-spin 0.8s linear infinite; }
.scn-alcinous-proposes-sports .ap-crowd  { position:absolute; bottom:18%; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #4a3528 0px, #4a3528 6px, transparent 6px, transparent 14px); background-size: 14px 100%; opacity:.6; animation: ap-crowd 6s ease-in-out infinite alternate; }
@keyframes ap-sky   { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes ap-sun   { 0%,100% { transform: scale(1); box-shadow: 0 0 60px 15px #ffcc00; } 50% { transform: scale(1.05); box-shadow: 0 0 90px 25px #ffe066; } }
@keyframes ap-run   { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-6px) rotate(2deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(-6px) rotate(2deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes ap-throw { 0%,100% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-15px); } }
@keyframes ap-spin  { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ap-crowd { 0% { opacity:.4; transform: translateX(0); } 50% { opacity:.7; transform: translateX(3px); } 100% { opacity:.5; transform: translateX(-2px); } }

/* laodamas-suggests – polite, sunlit */
.scn-laodamas-suggests {
  background:
    linear-gradient(180deg, #b0c4de 0%, #e0e8f0 60%, #d2b48c 100%),
    radial-gradient(ellipse at 50% 80%, #f0e6d0 0%, transparent 70%);
}
.scn-laodamas-suggests .ls-sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); animation: ls-sky 15s ease-in-out infinite alternate; }
.scn-laodamas-suggests .ls-ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #c8b88a 0%, #a09060 100%); }
.scn-laodamas-suggests .ls-column  { position:absolute; bottom:30%; left:20%; width:12px; height:80px; background: linear-gradient(180deg, #ddd 0%, #aaa 100%); border-radius:5%; box-shadow: 0 0 10px rgba(0,0,0,.2); animation: ls-column 8s ease-in-out infinite alternate; }
.scn-laodamas-suggests .ls-laodamas{ position:absolute; bottom:22%; left:35%; width:28px; height:55px; background: linear-gradient(180deg, #d2b48c 0%, #a08060 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: ls-bow 5s ease-in-out infinite; }
.scn-laodamas-suggests .ls-ulysses { position:absolute; bottom:22%; left:55%; width:30px; height:60px; background: linear-gradient(180deg, #c0a070 0%, #907050 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: ls-listen 6s ease-in-out infinite; }
.scn-laodamas-suggests .ls-shadow  { position:absolute; bottom:0; left:30%; width:80px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%); animation: ls-shadow 7s ease-in-out infinite alternate; }
@keyframes ls-sky     { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes ls-column  { 0%,100% { transform: scaleY(1); opacity:.7; } 50% { transform: scaleY(1.02); opacity:.9; } }
@keyframes ls-bow     { 0%,100% { transform: rotate(0) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } }
@keyframes ls-listen  { 0%,100% { transform: rotate(0); } 50% { transform: rotate(2deg) translateX(2px); } }
@keyframes ls-shadow  { 0% { opacity:.2; transform: scaleX(1); } 50% { opacity:.4; transform: scaleX(1.2); } 100% { opacity:.25; transform: scaleX(.9); } }

/* ulysses-refuses – sad, sunlit */
.scn-ulysses-refuses {
  background:
    linear-gradient(180deg, #4a6b8a 0%, #7a9db0 50%, #c0b89a 100%),
    radial-gradient(ellipse at 30% 50%, #f0e6d0 0%, transparent 80%);
}
.scn-ulysses-refuses .ur-sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); animation: ur-sky 20s ease-in-out infinite alternate; }
.scn-ulysses-refuses .ur-ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b8a88a 0%, #9a8568 100%); }
.scn-ulysses-refuses .ur-ulysses{ position:absolute; bottom:20%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: ur-down 4s ease-in-out infinite; }
.scn-ulysses-refuses .ur-euryalus{ position:absolute; bottom:22%; left:55%; width:28px; height:58px; background: linear-gradient(180deg, #c8a060 0%, #a08050 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: ur-taunt 5s ease-in-out infinite; }
.scn-ulysses-refuses .ur-pillar { position:absolute; bottom:30%; right:15%; width:14px; height:90px; background: linear-gradient(180deg, #ccc 0%, #aaa 100%); border-radius:5%; box-shadow: 0 0 8px rgba(0,0,0,.3); animation: ur-pillar 10s ease-in-out infinite alternate; }
.scn-ulysses-refuses .ur-shadow { position:absolute; bottom:0; left:25%; width:100px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); animation: ur-shadow 6s ease-in-out infinite alternate; }
@keyframes ur-sky   { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes ur-down  { 0%,100% { transform: rotate(0) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(0) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } }
@keyframes ur-taunt { 0%,100% { transform: rotate(0) translateX(0); } 50% { transform: rotate(-8deg) translateX(4px) scaleY(1.02); } }
@keyframes ur-pillar{ 0% { transform: scaleY(1); opacity:.7; } 50% { transform: scaleY(1.03); opacity:.9; } 100% { transform: scaleY(.98); opacity:.8; } }
@keyframes ur-shadow{ 0% { opacity:.3; transform: translateX(0); } 50% { opacity:.5; transform: translateX(5px); } 100% { opacity:.35; transform: translateX(-3px); } }

/* dance-continues – sunlit calm outdoor dance */
.scn-dance-continues {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #ffe4b5 100%) no-repeat,
    radial-gradient(ellipse at 70% 20%, rgba(255,230,180,0.6) 0%, transparent 60%);
}
.scn-dance-continues .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  animation: dc-sky 12s ease-in-out infinite alternate;
}
.scn-dance-continues .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #deb887 0%, #d2b48c 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.15);
  animation: dc-ground 6s ease-in-out infinite;
}
.scn-dance-continues .dancer {
  position: absolute; bottom: 42%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #8b5e3c 0%, #5c3a1e 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
}
.scn-dance-continues .dancer-a {
  left: 36%; animation: dc-dance-a 2.4s ease-in-out infinite;
}
.scn-dance-continues .dancer-b {
  left: 56%; animation: dc-dance-b 2.4s ease-in-out infinite 1.2s;
}
.scn-dance-continues .ball {
  position: absolute; bottom: 50%; left: 44%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(255,215,0,0.5);
  animation: dc-ball 2.4s ease-in-out infinite;
}
.scn-dance-continues .shadow-lines {
  position: absolute; bottom: 38%; left: 30%; right: 30%; height: 2px;
  background: repeating-linear-gradient(90deg, rgba(0,0,0,0.1) 0px, rgba(0,0,0,0.1) 8px, transparent 8px, transparent 16px);
  animation: dc-shadows 3.2s ease-in-out infinite;
}
@keyframes dc-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes dc-ground { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes dc-dance-a {
  0%{transform:translateX(0) rotate(-4deg)}
  25%{transform:translateX(8px) rotate(4deg)}
  50%{transform:translateX(16px) rotate(-2deg)}
  75%{transform:translateX(24px) rotate(5deg)}
  100%{transform:translateX(0) rotate(-4deg)}
}
@keyframes dc-dance-b {
  0%{transform:translateX(0) rotate(4deg)}
  25%{transform:translateX(-8px) rotate(-4deg)}
  50%{transform:translateX(-16px) rotate(2deg)}
  75%{transform:translateX(-24px) rotate(-5deg)}
  100%{transform:translateX(0) rotate(4deg)}
}
@keyframes dc-ball {
  0%{left:44%;bottom:50%;transform:scale(1)}
  25%{left:42%;bottom:56%;transform:scale(1.1)}
  50%{left:40%;bottom:50%;transform:scale(1)}
  75%{left:42%;bottom:56%;transform:scale(1.1)}
  100%{left:44%;bottom:50%;transform:scale(1)}
}
@keyframes dc-shadows { 0%{opacity:0.3} 50%{opacity:0.7} 100%{opacity:0.3} }

/* alcinous-orders-gifts – bright interior, generous mood */
.scn-alcinous-orders-gifts {
  background:
    linear-gradient(180deg, #c0a080 0%, #8b6f47 50%, #5a3d24 100%),
    radial-gradient(ellipse at 50% 20%, rgba(255,235,200,0.5) 0%, transparent 60%);
}
.scn-alcinous-orders-gifts .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, rgba(255,230,210,0.2) 0%, transparent 100%);
  animation: ao-wall 18s ease-in-out infinite alternate;
}
.scn-alcinous-orders-gifts .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a5c3a 0%, #4a3520 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: ao-floor 10s ease-in-out infinite;
}
.scn-alcinous-orders-gifts .throne {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 80px;
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 50%, #5a4205 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: 0 8px 15px rgba(0,0,0,0.6);
  animation: ao-throne 8s ease-in-out infinite;
}
.scn-alcinous-orders-gifts .king {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 26px; height: 44px;
  background: linear-gradient(180deg, #b89a7a 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ao-king 6s ease-in-out infinite;
}
.scn-alcinous-orders-gifts .councillor {
  position: absolute; bottom: 22%; left: 42%; transform: translateX(-50%);
  width: 20px; height: 36px;
  background: linear-gradient(180deg, #8b7355 0%, #5a4a32 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  animation: ao-councillor 7s ease-in-out infinite 1s;
}
.scn-alcinous-orders-gifts .gifts {
  position: absolute; bottom: 18%; left: 58%; transform: translateX(-50%);
  width: 18px; height: 14px;
  background: linear-gradient(180deg, #daa520 0%, #8b6914 100%);
  border-radius: 10%;
  box-shadow: 0 0 8px 2px rgba(218,165,32,0.6);
  animation: ao-gifts 4s ease-in-out infinite alternate;
}
.scn-alcinous-orders-gifts .light {
  position: absolute; top: 10%; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(circle at 50% 50%, rgba(255,240,200,0.4) 0%, transparent 70%);
  animation: ao-light 5s ease-in-out infinite alternate;
}
@keyframes ao-wall { 0%{opacity:0.5} 50%{opacity:1} 100%{opacity:0.6} }
@keyframes ao-floor { 0%{transform:scaleY(1)} 50%{transform:scaleY(0.98)} 100%{transform:scaleY(1)} }
@keyframes ao-throne { 0%{transform:translateX(-50%) scale(1)} 50%{transform:translateX(-50%) scale(1.02)} 100%{transform:translateX(-50%) scale(1)} }
@keyframes ao-king { 0%{transform:translateX(-50%) rotate(0deg)} 50%{transform:translateX(-50%) rotate(1deg) translateY(-1px)} 100%{transform:translateX(-50%) rotate(0deg)} }
@keyframes ao-councillor { 0%{transform:translateX(-50%) rotate(0deg)} 50%{transform:translateX(-50%) rotate(-1deg) translateY(1px)} 100%{transform:translateX(-50%) rotate(0deg)} }
@keyframes ao-gifts { 0%{box-shadow:0 0 8px 2px rgba(218,165,32,0.6);opacity:0.8} 50%{box-shadow:0 0 14px 5px rgba(218,165,32,0.9);opacity:1} 100%{box-shadow:0 0 8px 2px rgba(218,165,32,0.6);opacity:0.8} }
@keyframes ao-light { 0%{opacity:0.3;transform:scale(1)} 50%{opacity:0.6;transform:scale(1.2)} 100%{opacity:0.3;transform:scale(1)} }

/* euryalus-speaks – polite, bright interior, two figures */
.scn-euryalus-speaks {
  background:
    linear-gradient(180deg, #c8a882 0%, #9c7a58 40%, #5a3d24 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,220,180,0.4) 0%, transparent 60%);
}
.scn-euryalus-speaks .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, rgba(230,210,190,0.2) 0%, transparent 100%);
  animation: es-wall 20s ease-in-out infinite alternate;
}
.scn-euryalus-speaks .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5c3a 0%, #4a3520 100%);
  border-radius: 0 0 15% 15%;
  box-shadow: inset 0 6px 18px rgba(0,0,0,0.4);
}
.scn-euryalus-speaks .table {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 12px;
  background: linear-gradient(180deg, #a08060 0%, #6b5030 100%);
  border-radius: 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: es-table 12s ease-in-out infinite;
}
.scn-euryalus-speaks .figure-left {
  position: absolute; bottom: 34%; left: 36%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #b89a7a 0%, #7a5a3a 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: es-figure-left 5s ease-in-out infinite;
}
.scn-euryalus-speaks .figure-right {
  position: absolute; bottom: 34%; right: 36%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #8b7355 0%, #5a4a32 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: es-figure-right 5s ease-in-out infinite 2.5s;
}
.scn-euryalus-speaks .lamp {
  position: absolute; bottom: 52%; left: 50%; transform: translateX(-50%);
  width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #ffd700 0%, #b8860b 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,215,0,0.5);
  animation: es-lamp 4s ease-in-out infinite alternate;
}
.scn-euryalus-speaks .rays {
  position: absolute; bottom: 50%; left: 48%; width: 80px; height: 80px;
  background: radial-gradient(circle at 50% 50%, rgba(255,220,100,0.2) 0%, transparent 70%);
  animation: es-rays 6s ease-in-out infinite alternate;
}
@keyframes es-wall { 0%{opacity:0.4} 50%{opacity:0.8} 100%{opacity:0.5} }
@keyframes es-table { 0%{transform:translateX(-50%) scaleX(1)} 50%{transform:translateX(-50%) scaleX(1.02)} 100%{transform:translateX(-50%) scaleX(1)} }
@keyframes es-figure-left { 0%{transform:rotate(-2deg)} 25%{transform:rotate(1deg) translateY(-1px)} 50%{transform:rotate(0deg)} 75%{transform:rotate(2deg) translateY(-1px)} 100%{transform:rotate(-2deg)} }
@keyframes es-figure-right { 0%{transform:rotate(2deg)} 25%{transform:rotate(-1deg) translateY(-1px)} 50%{transform:rotate(0deg)} 75%{transform:rotate(-2deg) translateY(-1px)} 100%{transform:rotate(2deg)} }
@keyframes es-lamp { 0%{box-shadow:0 0 20px 6px rgba(255,215,0,0.5);opacity:0.9} 50%{box-shadow:0 0 30px 10px rgba(255,215,0,0.7);opacity:1} 100%{box-shadow:0 0 20px 6px rgba(255,215,0,0.5);opacity:0.9} }
@keyframes es-rays { 0%{opacity:0.2;transform:scale(1)} 50%{opacity:0.5;transform:scale(1.3)} 100%{opacity:0.2;transform:scale(1)} }

/* gifts-given – bright interior, calm gift-giving */
.scn-gifts-given {
  background:
    linear-gradient(180deg, #b89a7a 0%, #8b6f47 40%, #5a3d24 100%),
    radial-gradient(ellipse at 30% 50%, rgba(255,230,200,0.4) 0%, transparent 50%);
}
.scn-gifts-given .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, rgba(255,235,210,0.15) 0%, transparent 100%);
  animation: gg-wall 16s ease-in-out infinite alternate;
}
.scn-gifts-given .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b5030 0%, #3a2a18 100%);
  border-radius: 0 0 8% 8%;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.5);
}
.scn-gifts-given .figure {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 42px;
  background: linear-gradient(180deg, #b89a7a 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: gg-figure 8s ease-in-out infinite;
}
.scn-gifts-given .sword {
  position: absolute; bottom: 30%; right: 44%; width: 4px; height: 28px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 20%;
  box-shadow: 0 0 6px 2px rgba(192,192,192,0.5);
  transform-origin: bottom center;
  animation: gg-sword 3s ease-in-out infinite alternate;
}
.scn-gifts-given .chest {
  position: absolute; bottom: 15%; left: 38%; width: 30px; height: 14px;
  background: linear-gradient(180deg, #daa520 0%, #8b6914 100%);
  border-radius: 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: gg-chest 6s ease-in-out infinite;
}
.scn-gifts-given .gifts-pile {
  position: absolute; bottom: 13%; left: 42%; width: 14px; height: 10px;
  background: radial-gradient(circle at 50% 50%, #daa520 0%, #8b6914 100%);
  border-radius: 30%;
  box-shadow: 0 0 10px 3px rgba(218,165,32,0.6);
  animation: gg-gifts-pile 5s ease-in-out infinite alternate;
}
.scn-gifts-given .mother {
  position: absolute; bottom: 22%; left: 38%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #a08060 0%, #6b5030 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: gg-mother 7s ease-in-out infinite 0.5s;
}
@keyframes gg-wall { 0%{opacity:0.3} 50%{opacity:0.7} 100%{opacity:0.4} }
@keyframes gg-figure { 0%{transform:translateX(-50%) rotate(0deg)} 50%{transform:translateX(-50%) rotate(1deg) translateY(-1px)} 100%{transform:translateX(-50%) rotate(0deg)} }
@keyframes gg-sword { 0%{transform:rotate(-5deg)} 50%{transform:rotate(0deg) scaleY(1.02)} 100%{transform:rotate(5deg)} }
@keyframes gg-chest { 0%{transform:scaleX(1)} 50%{transform:scaleX(1.03)} 100%{transform:scaleX(1)} }
@keyframes gg-gifts-pile { 0%{opacity:0.7;box-shadow:0 0 10px 3px rgba(218,165,32,0.6)} 50%{opacity:1;box-shadow:0 0 16px 6px rgba(218,165,32,0.8)} 100%{opacity:0.7;box-shadow:0 0 10px 3px rgba(218,165,32,0.6)} }
@keyframes gg-mother { 0%{transform:translateX(0) rotate(0deg)} 50%{transform:translateX(-2px) rotate(-1deg) translateY(1px)} 100%{transform:translateX(0) rotate(0deg)} }

/* Scene: ulysses-continues */
.scn-ulysses-continues {
  background: linear-gradient(180deg, #d4c9b8 0%, #c0b3a0 40%, #a89880 100%),
              radial-gradient(ellipse at 50% 0%, #e0d6c4 0%, transparent 70%);
}
.scn-ulysses-continues .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d9cfc0 0%, #b8ad9a 100%); }
.scn-ulysses-continues .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #9a8e7c 0%, #7f7363 100%); border-radius:0 0 10% 10%; }
.scn-ulysses-continues .window { position:absolute; top:15%; left:25%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 50%, #fff8e7 0%, #b8c8e0 60%, #a0b8d0 100%); border-radius:4px; box-shadow: inset 0 0 40px rgba(255,240,210,0.3), 0 0 30px rgba(200,220,255,0.2); animation: uc-window 12s ease-in-out infinite alternate; }
.scn-ulysses-continues .figure-ulysses { position:absolute; bottom:28%; left:38%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1e1414 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: uc-figure 5s ease-in-out infinite; }
.scn-ulysses-continues .table { position:absolute; bottom:20%; left:55%; width:40px; height:14px; background: linear-gradient(180deg, #6a5a4a 0%, #4c3e32 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
.scn-ulysses-continues .bread { position:absolute; bottom:27%; left:57%; width:10px; height:10px; background: radial-gradient(circle at 40% 40%, #d8b88a 0%, #b09070 60%); border-radius:50%; animation: uc-bread 8s ease-in-out infinite; }
.scn-ulysses-continues .wine { position:absolute; bottom:26%; left:62%; width:8px; height:14px; background: linear-gradient(180deg, #6a2a2a 0%, #4a1e1e 100%); border-radius:2px 2px 4px 4px; box-shadow: 0 0 6px rgba(80,30,30,0.4); }
.scn-ulysses-continues .dust { position:absolute; width:3px; height:3px; background: rgba(255,240,220,0.5); border-radius:50%; filter: blur(0.5px); }
.scn-ulysses-continues .mote-1 { top:40%; left:30%; animation: uc-dust 12s linear infinite; }
.scn-ulysses-continues .mote-2 { top:45%; left:45%; width:2px; height:2px; animation: uc-dust 15s linear infinite 3s; }

@keyframes uc-window {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes uc-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(0deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes uc-bread {
  0%,100% { transform: scale(1); }
  50% { transform: scale(0.95); }
}
@keyframes uc-dust {
  0% { transform: translateY(0) translateX(0); opacity:0.3; }
  50% { transform: translateY(-20px) translateX(10px); opacity:0.7; }
  100% { transform: translateY(-40px) translateX(-10px); opacity:0; }
}

/* Scene: alcinous-scolds */
.scn-alcinous-scolds {
  background: linear-gradient(180deg, #d9cebd 0%, #c0b3a0 50%, #a89682 100%),
              radial-gradient(ellipse at 50% 100%, #c8bcaa 0%, transparent 70%);
}
.scn-alcinous-scolds .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d6caba 0%, #b0a490 100%); }
.scn-alcinous-scolds .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #9e907d 0%, #7d7262 100%); border-radius:0 0 30% 30%; }
.scn-alcinous-scolds .throne { position:absolute; bottom:25%; left:20%; width:50px; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3e30 100%); border-radius:8px 8px 4px 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.4); transform: skewX(-5deg); animation: as-throne 10s ease-in-out infinite alternate; }
.scn-alcinous-scolds .figure-king { position:absolute; bottom:28%; left:22%; width:22px; height:55px; background: linear-gradient(180deg, #2e2a22 0%, #1a1612 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: as-king 4s ease-in-out infinite; }
.scn-alcinous-scolds .figure-stranger { position:absolute; bottom:25%; right:25%; width:18px; height:48px; background: linear-gradient(180deg, #3a3030 0%, #1c1414 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: as-stranger 7s ease-in-out infinite; }
.scn-alcinous-scolds .column-left { position:absolute; bottom:20%; left:5%; width:12px; height:70%; background: linear-gradient(180deg, #8c7e6a 0%, #6a5e4e 100%); border-radius:2px; box-shadow: 0 0 10px rgba(0,0,0,0.2); }
.scn-alcinous-scolds .column-right { position:absolute; bottom:20%; right:5%; width:12px; height:70%; background: linear-gradient(180deg, #8c7e6a 0%, #6a5e4e 100%); border-radius:2px; box-shadow: 0 0 10px rgba(0,0,0,0.2); }
.scn-alcinous-scolds .shadow-sharp { position:absolute; bottom:0; left:15%; width:60%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); filter: blur(2px); animation: as-shadow 6s ease-in-out infinite alternate; }

@keyframes as-throne {
  0% { transform: skewX(-5deg) translateY(0); }
  50% { transform: skewX(-4deg) translateY(-2px); }
  100% { transform: skewX(-5deg) translateY(0); }
}
@keyframes as-king {
  0% { transform: translateY(0) rotate(-3deg); }
  25% { transform: translateY(-2px) rotate(0deg); }
  50% { transform: translateY(0) rotate(3deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes as-stranger {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(0.98); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes as-shadow {
  0% { opacity:0.3; transform: scaleY(1); }
  50% { opacity:0.2; transform: scaleY(0.9); }
  100% { opacity:0.3; transform: scaleY(1); }
}

/* Scene: alcinous-offers */
.scn-alcinous-offers {
  background: linear-gradient(180deg, #e8d9c8 0%, #d4bea8 50%, #c0a890 100%),
              radial-gradient(ellipse at 50% 80%, #f0d8b8 0%, transparent 60%);
}
.scn-alcinous-offers .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e0d0b8 0%, #c8b8a0 100%); }
.scn-alcinous-offers .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b8a48a 0%, #9a8870 100%); }
.scn-alcinous-offers .hearth { position:absolute; bottom:15%; left:10%; width:40px; height:30px; background: linear-gradient(180deg, #8a7a68 0%, #6a5e4e 100%); border-radius: 50% 50% 20% 20%; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); }
.scn-alcinous-offers .fire { position:absolute; bottom:22%; left:12%; width:20px; height:25px; background: radial-gradient(circle at 50% 60%, #ffcc50 0%, #ff9030 40%, #c05020 70%, transparent 80%); border-radius:50%; filter: blur(2px); animation: ao-fire 1.5s ease-in-out infinite alternate; }
.scn-alcinous-offers .figure-king { position:absolute; bottom:28%; left:40%; width:24px; height:58px; background: linear-gradient(180deg, #3a3228 0%, #1c1612 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ao-king 5s ease-in-out infinite; }
.scn-alcinous-offers .figure-stranger { position:absolute; bottom:25%; right:35%; width:18px; height:50px; background: linear-gradient(180deg, #2a2420 0%, #14100e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ao-stranger 6s ease-in-out infinite; }
.scn-alcinous-offers .gift-house { position:absolute; bottom:30%; left:45%; width:20px; height:16px; background: linear-gradient(180deg, #a08060 0%, #7a604a 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); transform: rotate(-10deg); animation: ao-gift 4s ease-in-out infinite; }

@keyframes ao-fire {
  0% { transform: scale(1); opacity:0.8; }
  50% { transform: scale(1.1) rotate(5deg); opacity:1; }
  100% { transform: scale(1); opacity:0.9; }
}
@keyframes ao-king {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(0deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ao-stranger {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(0.97); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes ao-gift {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}

/* Scene: arete-orders */
.scn-arete-orders {
  background: linear-gradient(180deg, #2e2a3e 0%, #1e1a2e 40%, #12101e 100%),
              radial-gradient(ellipse at 50% 100%, #2a263a 0%, transparent 70%);
}
.scn-arete-orders .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #282438 0%, #1a1628 100%); }
.scn-arete-orders .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1e1a2e 0%, #0e0c18 100%); }
.scn-arete-orders .bed { position:absolute; bottom:10%; left:30%; width:80px; height:40px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%); border-radius:6px; box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
.scn-arete-orders .rug { position:absolute; bottom:6%; left:28%; width:90px; height:20px; background: linear-gradient(180deg, #a06250 0%, #7a4a3e 100%); border-radius:4px; opacity:0.8; animation: ar-rug 10s ease-in-out infinite alternate; }
.scn-arete-orders .torch-left { position:absolute; bottom:20%; left:10%; width:6px; height:30px; background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%); border-radius:2px; }
.scn-arete-orders .torch-flame { position:absolute; bottom:30%; left:10%; width:10px; height:15px; background: radial-gradient(circle, #ffcc50 0%, #ff9020 40%, #c05020 60%, transparent 80%); filter: blur(2px); animation: ar-torch 2s ease-in-out infinite alternate; }
.scn-arete-orders .torch-right { position:absolute; bottom:20%; right:10%; width:6px; height:30px; background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%); border-radius:2px; }
.scn-arete-orders .torch-flame-r { position:absolute; bottom:30%; right:10%; width:10px; height:15px; background: radial-gradient(circle, #ffcc50 0%, #ff9020 40%, #c05020 60%, transparent 80%); filter: blur(2px); animation: ar-torch 2.5s ease-in-out infinite alternate; }
.scn-arete-orders .maid-a { position:absolute; bottom:12%; left:20%; width:14px; height:40px; background: linear-gradient(180deg, #3a3038 0%, #1c1620 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ar-maid 6s ease-in-out infinite; }
.scn-arete-orders .maid-b { position:absolute; bottom:12%; right:22%; width:14px; height:40px; background: linear-gradient(180deg, #3a3038 0%, #1c1620 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ar-maid 7s ease-in-out infinite 2s; }
.scn-arete-orders .figure-ulysses { position:absolute; bottom:12%; left:45%; width:18px; height:48px; background: linear-gradient(180deg, #2a2428 0%, #141016 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ar-ulysses 4s ease-in-out infinite; }

@keyframes ar-rug {
  0% { opacity:0.6; transform: scaleY(1); }
  50% { opacity:0.8; transform: scaleY(0.9); }
  100% { opacity:0.6; transform: scaleY(1); }
}
@keyframes ar-torch {
  0% { transform: scaleY(1) rotate(0deg); opacity:0.8; }
  50% { transform: scaleY(1.1) rotate(5deg); opacity:1; }
  100% { transform: scaleY(1) rotate(0deg); opacity:0.7; }
}
@keyframes ar-maid {
  0% { transform: translateY(0) rotate(-3deg); }
  25% { transform: translateY(-3px) rotate(0deg); }
  50% { transform: translateY(0) rotate(3deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes ar-ulysses {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5px) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(10px) translateY(0) rotate(2deg); }
  75% { transform: translateX(5px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}

.scn-invocation-muse {
  background: linear-gradient(180deg, #f5e6d0 0%, #efe0c8 40%, #d4b896 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-invocation-muse .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0ddc4 0%, #e4c9a8 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.08);
  animation: im-wall 20s ease-in-out infinite alternate;
}
.scn-invocation-muse .window {
  position: absolute;
  top: 12%;
  left: 35%;
  width: 30%;
  height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #ffeeb0 0%, #ffe080 40%, #f0d070 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  box-shadow: inset 0 0 40px 10px rgba(255,230,150,0.5), 0 0 80px 30px rgba(255,220,120,0.2);
  animation: im-window 6s ease-in-out infinite alternate;
}
.scn-invocation-muse .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #c8a87a 0%, #a8845a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.15);
  animation: im-floor 15s ease-in-out infinite alternate;
}
.scn-invocation-muse .bard {
  position: absolute;
  bottom: 22%;
  left: 42%;
  width: 12%;
  height: 28%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: im-bard 4s ease-in-out infinite alternate;
}
.scn-invocation-muse .lyre {
  position: absolute;
  bottom: 24%;
  left: 48%;
  width: 6%;
  height: 14%;
  background: radial-gradient(ellipse at 50% 50%, #c8a040 0%, #a08030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px 2px rgba(200,160,64,0.5);
  animation: im-lyre 4s ease-in-out infinite alternate;
}
.scn-invocation-muse .muse {
  position: absolute;
  top: 8%;
  left: 58%;
  width: 10%;
  height: 25%;
  background: linear-gradient(180deg, #fff4d0 0%, #ffe8a0 100%);
  border-radius: 60% 40% 30% 30% / 70% 50% 30% 30%;
  box-shadow: 0 0 60px 30px rgba(255,240,180,0.6), 0 0 120px 50px rgba(255,230,150,0.2);
  animation: im-muse 8s ease-in-out infinite alternate;
}
.scn-invocation-muse .ray {
  position: absolute;
  top: 0;
  width: 8%;
  height: 60%;
  background: linear-gradient(180deg, rgba(255,250,220,0.4) 0%, rgba(255,240,180,0.05) 100%);
  filter: blur(12px);
  animation: im-ray 12s linear infinite;
}
.scn-invocation-muse .ray-1 {
  left: 35%;
  animation-duration: 12s;
}
.scn-invocation-muse .ray-2 {
  left: 55%;
  animation-duration: 15s;
  animation-delay: -4s;
}
@keyframes im-wall {
  0% { opacity: 1; }
  50% { opacity: 0.95; }
  100% { opacity: 1; }
}
@keyframes im-window {
  0% { transform: scaleX(1); opacity: 0.9; box-shadow: inset 0 0 30px 5px rgba(255,230,150,0.4), 0 0 60px 20px rgba(255,220,120,0.15); }
  50% { transform: scaleX(1.03); opacity: 1; box-shadow: inset 0 0 50px 15px rgba(255,230,150,0.6), 0 0 100px 40px rgba(255,220,120,0.25); }
  100% { transform: scaleX(1); opacity: 0.9; box-shadow: inset 0 0 30px 5px rgba(255,230,150,0.4), 0 0 60px 20px rgba(255,220,120,0.15); }
}
@keyframes im-floor {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(2px) scaleY(0.98); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes im-bard {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes im-lyre {
  0% { transform: rotate(-3deg) scale(1); }
  50% { transform: rotate(3deg) scale(1.02); }
  100% { transform: rotate(-2deg) scale(1); }
}
@keyframes im-muse {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-8px) scale(1.05); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.85; }
}
@keyframes im-ray {
  0% { transform: translateX(-30px) rotate(-5deg); opacity: 0; }
  25% { opacity: 0.7; }
  50% { transform: translateX(120px) rotate(5deg); opacity: 0.4; }
  75% { opacity: 0.7; }
  100% { transform: translateX(250px) rotate(-5deg); opacity: 0; }
}

.scn-council-of-gods {
  background: linear-gradient(150deg, #dfd0b8 0%, #c8b098 50%, #a88a6e 100%),
              radial-gradient(ellipse at 50% 0%, #f0e0c8 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-council-of-gods .hall {
  position: absolute;
  inset: 0 0 15% 0;
  background: linear-gradient(180deg, #d8c4a8 0%, #b8a080 100%);
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.1);
  animation: cg-hall 25s ease-in-out infinite alternate;
}
.scn-council-of-gods .throne {
  position: absolute;
  bottom: 20%;
  left: 46%;
  width: 12%;
  height: 30%;
  background: linear-gradient(135deg, #8a6a4a 0%, #5a3a22 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: cg-throne 3s ease-in-out infinite alternate;
}
.scn-council-of-gods .column {
  position: absolute;
  bottom: 15%;
  width: 5%;
  height: 60%;
  background: linear-gradient(180deg, #c8b898 0%, #9a8a6a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.1), inset 4px 0 8px rgba(255,255,220,0.2);
}
.scn-council-of-gods .col-left {
  left: 18%;
  animation: cg-column 8s ease-in-out infinite alternate;
}
.scn-council-of-gods .col-right {
  right: 18%;
  animation: cg-column 8s ease-in-out infinite alternate-reverse;
}
.scn-council-of-gods .gods {
  position: absolute;
  bottom: 16%;
  left: 24%;
  width: 35%;
  height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 60% 40% 30% 30% / 40% 50% 30% 30%;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.4);
  animation: cg-gods 4s ease-in-out infinite alternate;
}
.scn-council-of-gods .neptune {
  position: absolute;
  bottom: 18%;
  right: 20%;
  width: 12%;
  height: 32%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 8px rgba(20,30,50,0.6);
  transform-origin: bottom center;
  animation: cg-neptune 2s ease-in-out infinite alternate;
}
.scn-council-of-gods .light-spot {
  position: absolute;
  top: 5%;
  left: 40%;
  width: 20%;
  height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,0.4) 0%, rgba(255,230,180,0.1) 60%, transparent 100%);
  filter: blur(20px);
  animation: cg-light 5s ease-in-out infinite alternate;
}
.scn-council-of-gods .shadow-edge {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.05) 0%, transparent 40%, rgba(0,0,0,0.2) 100%);
  pointer-events: none;
  animation: cg-shadow 10s ease-in-out infinite alternate;
}
@keyframes cg-hall {
  0% { opacity: 1; }
  50% { opacity: 0.9; }
  100% { opacity: 1; }
}
@keyframes cg-throne {
  0% { transform: translateX(0) scaleY(1); box-shadow: 0 8px 20px rgba(0,0,0,0.3); }
  50% { transform: translateX(2px) scaleY(1.02); box-shadow: 0 12px 30px rgba(0,0,0,0.5); }
  100% { transform: translateX(0) scaleY(1); box-shadow: 0 8px 20px rgba(0,0,0,0.3); }
}
@keyframes cg-column {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.01) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes cg-gods {
  0% { transform: translateX(0) rotate(0deg); opacity: 0.9; }
  50% { transform: translateX(3px) rotate(1deg); opacity: 1; }
  100% { transform: translateX(-1px) rotate(-1deg); opacity: 0.9; }
}
@keyframes cg-neptune {
  0% { transform: rotate(-3deg) scale(1); }
  25% { transform: rotate(3deg) scale(1.03); }
  50% { transform: rotate(-1deg) scale(0.98); }
  75% { transform: rotate(2deg) scale(1.01); }
  100% { transform: rotate(-3deg) scale(1); }
}
@keyframes cg-light {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}
@keyframes cg-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}

.scn-jove-speaks {
  background: linear-gradient(135deg, #e8dcc8 0%, #d0c0a8 50%, #b8a088 100%),
              radial-gradient(ellipse at 50% 20%, #f4e8d8 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-jove-speaks .court {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #c0a890 100%);
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.08);
  animation: js-court 30s ease-in-out infinite alternate;
}
.scn-jove-speaks .jove-throne {
  position: absolute;
  bottom: 18%;
  left: 44%;
  width: 14%;
  height: 35%;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 8% 8%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  animation: js-throne 4s ease-in-out infinite alternate;
}
.scn-jove-speaks .jove {
  position: absolute;
  bottom: 20%;
  left: 46%;
  width: 10%;
  height: 30%;
  background: linear-gradient(180deg, #b09878 0%, #8a7050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: js-jove 3s ease-in-out infinite alternate;
}
.scn-jove-speaks .assembly {
  position: absolute;
  bottom: 14%;
  left: 15%;
  width: 25%;
  height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 30px 8px rgba(0,0,0,0.5);
  animation: js-assembly 5s ease-in-out infinite alternate;
}
.scn-jove-speaks .aegisthus {
  position: absolute;
  bottom: 15%;
  right: 18%;
  width: 8%;
  height: 22%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: js-aegisthus 2s ease-in-out infinite;
}
.scn-jove-speaks .beam {
  position: absolute;
  top: 0;
  left: 44%;
  width: 12%;
  height: 100%;
  background: linear-gradient(180deg, rgba(255,240,180,0.3) 0%, rgba(255,230,150,0.05) 100%);
  filter: blur(15px);
  animation: js-beam 8s ease-in-out infinite alternate;
}
@keyframes js-court {
  0% { opacity: 1; }
  50% { opacity: 0.92; }
  100% { opacity: 1; }
}
@keyframes js-throne {
  0% { transform: translateX(0) scaleY(1); box-shadow: 0 10px 30px rgba(0,0,0,0.4); }
  50% { transform: translateX(2px) scaleY(1.02); box-shadow: 0 15px 40px rgba(0,0,0,0.6); }
  100% { transform: translateX(0) scaleY(1); box-shadow: 0 10px 30px rgba(0,0,0,0.4); }
}
@keyframes js-jove {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(2px) rotate(2deg); }
  60% { transform: translateX(-1px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes js-assembly {
  0% { transform: translateX(0) scale(1); opacity: 0.85; }
  50% { transform: translateX(-5px) scale(1.02); opacity: 1; }
  100% { transform: translateX(3px) scale(0.98); opacity: 0.9; }
}
@keyframes js-aegisthus {
  0% { transform: rotate(-5deg) scale(1); }
  25% { transform: rotate(5deg) scale(1.05); }
  50% { transform: rotate(-3deg) scale(0.95); }
  75% { transform: rotate(4deg) scale(1.02); }
  100% { transform: rotate(-5deg) scale(1); }
}
@keyframes js-beam {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.3); opacity: 0.8; }
  100% { transform: scaleX(0.8); opacity: 0.5; }
}

.scn-minerva-pleads {
  background: linear-gradient(180deg, #f0dcc0 0%, #e0c8a0 50%, #c8a880 100%),
              radial-gradient(ellipse at 50% 30%, #fce8c8 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-minerva-pleads .chamber {
  position: absolute;
  inset: 0 0 15% 0;
  background: linear-gradient(180deg, #dcc8a8 0%, #b89878 100%);
  box-shadow: inset 0 6px 24px rgba(0,0,0,0.08);
  animation: mp-chamber 20s ease-in-out infinite alternate;
}
.scn-minerva-pleads .hearth {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 15%;
  height: 18%;
  background: radial-gradient(ellipse at 50% 50%, #c84a1a 0%, #8a2a0a 40%, #4a1a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 20px rgba(200,74,26,0.4), 0 0 80px 40px rgba(200,74,26,0.15);
  animation: mp-hearth 3s ease-in-out infinite alternate;
}
.scn-minerva-pleads .zeus {
  position: absolute;
  bottom: 18%;
  left: 42%;
  width: 14%;
  height: 38%;
  background: linear-gradient(180deg, #7a5a42 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.3);
  animation: mp-zeus 5s ease-in-out infinite alternate;
}
.scn-minerva-pleads .athena {
  position: absolute;
  bottom: 18%;
  right: 38%;
  width: 12%;
  height: 34%;
  background: linear-gradient(180deg, #c0a080 0%, #8a6848 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-athena 4s ease-in-out infinite alternate;
}
.scn-minerva-pleads .fire-glow {
  position: absolute;
  top: 50%;
  left: 28%;
  width: 20%;
  height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,100,0.3) 0%, rgba(255,180,80,0.1) 60%, transparent 100%);
  filter: blur(25px);
  animation: mp-fire 2s ease-in-out infinite alternate;
}
.scn-minerva-pleads .offering {
  position: absolute;
  bottom: 22%;
  left: 36%;
  width: 6%;
  height: 8%;
  background: linear-gradient(180deg, #d4b898 0%, #a08464 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: mp-offer 6s ease-in-out infinite;
}
@keyframes mp-chamber {
  0% { opacity: 1; }
  50% { opacity: 0.95; }
  100% { opacity: 1; }
}
@keyframes mp-hearth {
  0% { transform: scale(1); box-shadow: 0 0 30px 15px rgba(200,74,26,0.3), 0 0 60px 30px rgba(200,74,26,0.1); }
  50% { transform: scale(1.05); box-shadow: 0 0 50px 25px rgba(200,74,26,0.5), 0 0 100px 50px rgba(200,74,26,0.2); }
  100% { transform: scale(0.98); box-shadow: 0 0 30px 15px rgba(200,74,26,0.3), 0 0 60px 30px rgba(200,74,26,0.1); }
}
@keyframes mp-zeus {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes mp-athena {
  0% { transform: translateX(0) rotate(2deg) scale(1); }
  50% { transform: translateX(-4px) rotate(-2deg) scale(1.02); }
  100% { transform: translateX(2px) rotate(1deg) scale(0.98); }
}
@keyframes mp-fire {
  0% { transform: scale(1) translateY(0); opacity: 0.6; }
  50% { transform: scale(1.2) translateY(-5px); opacity: 1; }
  100% { transform: scale(0.9) translateY(3px); opacity: 0.7; }
}
@keyframes mp-offer {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-proteus-dives {
  background:
    radial-gradient(ellipse 60% 70% at 50% 90%, #3a2510 0%, #1a1208 60%),
    radial-gradient(ellipse 40% 50% at 30% 20%, #2a1a0a 0%, #0d0804 100%);
  position: relative; overflow: hidden;
}
.scn-proteus-dives .bg-tent {
  position: absolute; inset: 0;
  background: linear-gradient(170deg, #2e1e0e 0%, #1a0f06 50%, #0d0703 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  animation: prd-tent 20s ease-in-out infinite alternate;
}
.scn-proteus-dives .fire-ember {
  position: absolute; bottom: 30%; left: 40%;
  width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #ffa050 0%, #cc7020 30%, #803a0a 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,160,80,.3), 0 0 80px 40px rgba(200,100,30,.1);
  animation: prd-fire 4s ease-in-out infinite alternate;
}
.scn-proteus-dives .menelaus-sit {
  position: absolute; bottom: 22%; left: 45%;
  width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0703 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prd-sit 8s ease-in-out infinite;
}
.scn-proteus-dives .bedroll {
  position: absolute; bottom: 13%; left: 30%;
  width: 80px; height: 25px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: inset 0 3px 8px rgba(0,0,0,.5);
  animation: prd-bed 12s ease-in-out infinite;
}
.scn-proteus-dives .window-view {
  position: absolute; top: 15%; right: 12%;
  width: 90px; height: 110px;
  background: #0a1a2a;
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 4px 10px rgba(0,0,0,.7);
  animation: prd-window 15s ease-in-out infinite alternate;
  overflow: hidden;
}
.scn-proteus-dives .sea-night {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #0c1c2c 0%, #1a3a5a 40%, #0a1a2a 100%);
  animation: prd-sea 25s ease-in-out infinite alternate;
}
.scn-proteus-dives .diver-shadow {
  position: absolute; top: 30%; left: 30%;
  width: 18px; height: 30px;
  background: #0a0a1a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(25deg);
  box-shadow: 0 0 8px 2px rgba(0,0,0,.4);
  animation: prd-dive 10s ease-in-out infinite;
}
.scn-proteus-dives .supper-plate {
  position: absolute; bottom: 24%; left: 48%;
  width: 30px; height: 8px;
  background: radial-gradient(ellipse, #8a6a3a 0%, #4a2a0a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: prd-plate 6s ease-in-out infinite alternate;
}
@keyframes prd-tent { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(0.98) translateY(2px); } }
@keyframes prd-fire { 0% { transform: scale(0.95); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.85; } }
@keyframes prd-sit { 0%,100% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(0deg); } 50% { transform: translateX(4px) rotate(1deg); } 75% { transform: translateX(2px) rotate(0deg); } }
@keyframes prd-bed { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98) translateY(1px); } }
@keyframes prd-window { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes prd-sea { 0% { background-position: 0% 0%; } 50% { background-position: 10% 5%; } 100% { background-position: -5% 0%; } }
@keyframes prd-dive { 0% { transform: rotate(25deg) translateY(0); } 50% { transform: rotate(20deg) translateY(15px); } 100% { transform: rotate(25deg) translateY(0); } }
@keyframes prd-plate { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

.scn-telemachus-declines {
  background:
    linear-gradient(180deg, #f2e8d0 0%, #d4c4a8 50%, #b8a488 100%),
    radial-gradient(ellipse at 50% 100%, #e8d8c0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-telemachus-declines .hall-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(170deg, #e8dcca 0%, #c8b8a0 60%, #a08870 100%);
  animation: tdc-wall 20s ease-in-out infinite alternate;
}
.scn-telemachus-declines .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-conic-gradient(#b8a488 0% 25%, #a09070 0% 50%) 0 0 / 40px 40px;
  animation: tdc-floor 15s linear infinite;
}
.scn-telemachus-declines .col-left {
  position: absolute; bottom: 5%; left: 15%;
  width: 14px; height: 90%;
  background: linear-gradient(90deg, #d0c0a8, #b8a88a, #d0c0a8);
  border-radius: 4px;
  box-shadow: 4px 0 12px rgba(0,0,0,.1);
  animation: tdc-column 12s ease-in-out infinite alternate;
}
.scn-telemachus-declines .col-right {
  position: absolute; bottom: 5%; right: 15%;
  width: 14px; height: 90%;
  background: linear-gradient(-90deg, #d0c0a8, #b8a88a, #d0c0a8);
  border-radius: 4px;
  box-shadow: -4px 0 12px rgba(0,0,0,.1);
  animation: tdc-column 12s ease-in-out infinite alternate-reverse;
}
.scn-telemachus-declines .table-wood {
  position: absolute; bottom: 8%; left: 35%; right: 35%; height: 8%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 6px 14px rgba(0,0,0,.2);
  animation: tdc-table 18s ease-in-out infinite;
}
.scn-telemachus-declines .telemachus-stand {
  position: absolute; bottom: 12%; left: 30%;
  width: 24px; height: 65px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tdc-tel 7s ease-in-out infinite;
}
.scn-telemachus-declines .menelaus-throne {
  position: absolute; bottom: 10%; right: 30%;
  width: 32px; height: 58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tdc-mene 8s ease-in-out infinite;
}
.scn-telemachus-declines .plate-gift {
  position: absolute; bottom: 12%; left: 42%; width: 22px; height: 6px;
  background: radial-gradient(ellipse, #d6c6a0 0%, #b8a080 70%, #806040 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3), 0 0 12px 4px rgba(200,180,140,.1);
  animation: tdc-plate 5s ease-in-out infinite alternate;
}
@keyframes tdc-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes tdc-floor { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }
@keyframes tdc-column { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01) translateY(-1px); } }
@keyframes tdc-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tdc-tel { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 75% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes tdc-mene { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(1deg); } }
@keyframes tdc-plate { 0% { transform: scale(0.98); opacity: 0.85; } 100% { transform: scale(1.02); opacity: 1; } }

.scn-menelaus-promises {
  background:
    radial-gradient(ellipse 70% 80% at 50% 60%, #f0e0c0 0%, #d0b894 60%),
    linear-gradient(180deg, #e8d6b8 0%, #c0a884 100%);
  position: relative; overflow: hidden;
}
.scn-menelaus-promises .bg-soft {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f8e8d0 0%, #c8b498 80%);
  filter: blur(8px);
  animation: mlp-bg 25s ease-in-out infinite alternate;
}
.scn-menelaus-promises .table-surface {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a08460 0%, #705038 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,.2);
  animation: mlp-table 18s ease-in-out infinite;
}
.scn-menelaus-promises .mixing-bowl {
  position: absolute; bottom: 20%; left: 43%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 40%, #d6c6a0 0%, #b09878 50%, #806050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.4), inset 0 2px 6px rgba(255,255,200,.3);
  animation: mlp-bowl 6s ease-in-out infinite alternate;
}
.scn-menelaus-promises .hand-giver {
  position: absolute; bottom: 25%; left: 35%;
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #d0b898 0%, #a08868 100%);
  border-radius: 40% 30% 30% 40% / 60% 40% 40% 60%;
  transform: rotate(-15deg);
  transform-origin: bottom left;
  animation: mlp-hand-g 8s ease-in-out infinite;
}
.scn-menelaus-promises .hand-taker {
  position: absolute; bottom: 22%; right: 35%;
  width: 28px; height: 38px;
  background: linear-gradient(180deg, #b89878 0%, #907058 100%);
  border-radius: 30% 40% 40% 30% / 40% 60% 60% 40%;
  transform: rotate(15deg);
  transform-origin: bottom right;
  animation: mlp-hand-t 8s ease-in-out infinite;
}
.scn-menelaus-promises .warm-glow {
  position: absolute; top: 25%; left: 48%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,220,150,0.4) 0%, rgba(255,200,100,0.1) 60%, transparent 100%);
  animation: mlp-glow 5s ease-in-out infinite alternate;
}
.scn-menelaus-promises .deep-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  animation: mlp-shadow 12s ease-in-out infinite;
}
@keyframes mlp-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes mlp-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes mlp-bowl { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.03) rotate(-2deg); } 100% { transform: scale(0.98) rotate(2deg); } }
@keyframes mlp-hand-g { 0%,100% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(4px); } }
@keyframes mlp-hand-t { 0%,100% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(10deg) translateX(-4px); } }
@keyframes mlp-glow { 0% { transform: scale(0.9); opacity: 0.5; } 100% { transform: scale(1.2); opacity: 0.8; } }
@keyframes mlp-shadow { 0%,100% { opacity: 0.3; } 50% { opacity: 0.5; } }

.scn-suitors-plot-return {
  background:
    linear-gradient(180deg, #e8e0d0 0%, #c8b8a0 40%, #a89880 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-suitors-plot-return .sky-blaze {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #fcf4d8 0%, #e0d0b8 80%);
  animation: srt-sky 30s ease-in-out infinite alternate;
}
.scn-suitors-plot-return .courtyard-stone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b8a898 0%, #908070 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.1);
  animation: srt-court 22s ease-in-out infinite;
}
.scn-suitors-plot-return .col-l {
  position: absolute; bottom: 10%; left: 18%;
  width: 12px; height: 70%;
  background: linear-gradient(90deg, #c8b8a0, #a89880, #c8b8a0);
  border-radius: 3px;
  box-shadow: 4px 0 12px rgba(0,0,0,.15);
  animation: srt-col 14s ease-in-out infinite alternate;
}
.scn-suitors-plot-return .col-r {
  position: absolute; bottom: 10%; right: 18%;
  width: 12px; height: 70%;
  background: linear-gradient(-90deg, #c8b8a0, #a89880, #c8b8a0);
  border-radius: 3px;
  box-shadow: -4px 0 12px rgba(0,0,0,.15);
  animation: srt-col 14s ease-in-out infinite alternate-reverse;
}
.scn-suitors-plot-return .antineus-throne {
  position: absolute; bottom: 8%; left: 30%;
  width: 30px; height: 55px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: srt-anti 9s ease-in-out infinite;
}
.scn-suitors-plot-return .eurymachus-throne {
  position: absolute; bottom: 8%; right: 30%;
  width: 28px; height: 52px;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: srt-eury 9s ease-in-out infinite;
}
.scn-suitors-plot-return .noemon-stand {
  position: absolute; bottom: 16%; left: 48%;
  width: 22px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: srt-noem 11s ease-in-out infinite;
}
.scn-suitors-plot-return .discus-ground {
  position: absolute; bottom: 5%; left: 20%;
  width: 20px; height: 10px;
  background: radial-gradient(ellipse, #a09070 0%, #705838 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: srt-discus 7s ease-in-out infinite;
}
@keyframes srt-sky { 0%,100% { background-position: 0% 0%; } 50% { background-position: 10% 5%; } }
@keyframes srt-court { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98) translateY(-2px); } 100% { transform: scaleY(1); } }
@keyframes srt-col { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.01) translateY(-3px); } }
@keyframes srt-anti { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(1deg); } }
@keyframes srt-eury { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-1deg); } }
@keyframes srt-noem { 0% { transform: translateX(0) rotate(-1deg); } 33% { transform: translateX(3px) rotate(0deg); } 66% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes srt-discus { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(30deg) translateY(-4px); } }

/* eagles-omen – tense overcast */
.scn-eagles-omen { background: linear-gradient(180deg, #4e5b6b 0%, #3a4452 30%, #2f3845 60%, #1f252f 100%); }
.scn-eagles-omen .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a6b7c 0%, #3a4a5a 100%); animation: eo-sky 10s ease-in-out infinite alternate; }
.scn-eagles-omen .hills { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3f4e3f 0%, #2a372a 100%); border-radius: 60% 40% 0 0 / 90% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: eo-hills 14s ease-in-out infinite alternate; }
.scn-eagles-omen .eagle-body { position:absolute; width:28px; height:16px; background: #1a1f2a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 6px rgba(0,0,0,0.5); }
.scn-eagles-omen .eagle-body-1 { top:22%; left:20%; animation: eo-eagle1 8s ease-in-out infinite; }
.scn-eagles-omen .eagle-body-2 { top:28%; left:60%; animation: eo-eagle2 9s ease-in-out infinite 2s; }
.scn-eagles-omen .eagle-wing { position:absolute; width:20px; height:10px; background: #1a1f2a; border-radius: 50% 20% 20% 50% / 60% 40% 40% 60%; transform-origin: 30% 50%; }
.scn-eagles-omen .eagle-wing-1 { top:calc(22% + 4px); left:calc(20% - 6px); animation: eo-wing1 0.6s ease-in-out infinite alternate; }
.scn-eagles-omen .eagle-wing-2 { top:calc(28% + 6px); left:calc(60% - 4px); animation: eo-wing2 0.7s ease-in-out infinite alternate 0.3s; }
.scn-eagles-omen .crowd { position:absolute; bottom:38%; left:10%; right:10%; height:15%; background: radial-gradient(circle at 20% 80%, #1e242f 0%, transparent 70%), radial-gradient(circle at 50% 80%, #1e242f 0%, transparent 70%), radial-gradient(circle at 80% 80%, #1e242f 0%, transparent 70%); filter: blur(1px); animation: eo-crowd 4s ease-in-out infinite alternate; }
.scn-eagles-omen .shadow { position:absolute; bottom:25%; left:15%; right:15%; height:2%; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(3px); animation: eo-shadow 3s ease-in-out infinite alternate; }
@keyframes eo-sky { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.75 } }
@keyframes eo-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes eo-eagle1 { 0% { transform: translate(0,0) rotate(-5deg) } 25% { transform: translate(40px,-20px) rotate(5deg) } 50% { transform: translate(80px,0) rotate(-5deg) } 75% { transform: translate(40px,20px) rotate(5deg) } 100% { transform: translate(0,0) rotate(-5deg) } }
@keyframes eo-eagle2 { 0% { transform: translate(0,0) rotate(4deg) } 25% { transform: translate(-30px,-25px) rotate(-4deg) } 50% { transform: translate(-60px,0) rotate(4deg) } 75% { transform: translate(-30px,25px) rotate(-4deg) } 100% { transform: translate(0,0) rotate(4deg) } }
@keyframes eo-wing1 { 0% { transform: rotate(0deg) scaleY(1) } 100% { transform: rotate(-40deg) scaleY(0.6) } }
@keyframes eo-wing2 { 0% { transform: rotate(0deg) scaleY(1) } 100% { transform: rotate(40deg) scaleY(0.6) } }
@keyframes eo-crowd { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes eo-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } 100% { transform: scaleX(1) } }

/* eurymachus-scoffs – angry overcast */
.scn-eurymachus-scoffs { background: linear-gradient(180deg, #3f4550 0%, #2f3540 40%, #1f242a 100%); }
.scn-eurymachus-scoffs .bg { position:absolute; inset:0; background: linear-gradient(180deg, #4a5060 0%, #2c313c 100%); }
.scn-eurymachus-scoffs .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #2a2e36 0%, #3a3f48 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,0.4); }
.scn-eurymachus-scoffs .eury-body { position:absolute; bottom:38%; left:48%; width:32px; height:60px; background: linear-gradient(180deg, #3a3e4a 0%, #1f232e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(-5deg); animation: es-eurybody 2s ease-in-out infinite alternate; }
.scn-eurymachus-scoffs .eury-arm { position:absolute; bottom:60%; left:52%; width:8px; height:40px; background: #2a2e3a; border-radius: 40%; transform-origin: 50% 0%; transform: rotate(20deg); animation: es-euryarm 0.5s ease-in-out infinite alternate; }
.scn-eurymachus-scoffs .oldman { position:absolute; bottom:30%; left:35%; width:24px; height:36px; background: linear-gradient(180deg, #1a1e26 0%, #0f1218 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(10deg) scale(0.8); animation: es-oldman 1.2s ease-in-out infinite alternate; }
.scn-eurymachus-scoffs .crowd-dots { position:absolute; bottom:40%; left:15%; right:15%; height:12%; background: radial-gradient(circle 3px at 10% 80%, #1e222c 0%, transparent 100%), radial-gradient(circle 3px at 30% 80%, #1e222c 0%, transparent 100%), radial-gradient(circle 3px at 50% 80%, #1e222c 0%, transparent 100%), radial-gradient(circle 3px at 70% 80%, #1e222c 0%, transparent 100%), radial-gradient(circle 3px at 90% 80%, #1e222c 0%, transparent 100%); filter: blur(1px); animation: es-crowd 3s ease-in-out infinite alternate; }
.scn-eurymachus-scoffs .shadow-eury { position:absolute; bottom:30%; left:46%; width:40px; height:4px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(2px); animation: es-shade 1s ease-in-out infinite alternate; }
.scn-eurymachus-scoffs .shadow-old { position:absolute; bottom:24%; left:30%; width:30px; height:3px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(2px); animation: es-shade 1.3s ease-in-out infinite alternate 0.2s; }
@keyframes es-eurybody { 0% { transform: rotate(-5deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-5deg) } }
@keyframes es-euryarm { 0% { transform: rotate(20deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(15deg) } }
@keyframes es-oldman { 0% { transform: rotate(10deg) scale(0.8) translateX(0) } 50% { transform: rotate(8deg) scale(0.75) translateX(-5px) } 100% { transform: rotate(10deg) scale(0.8) translateX(0) } }
@keyframes es-crowd { 0% { opacity:0.7 } 50% { opacity:0.5 } 100% { opacity:0.8 } }
@keyframes es-shade { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } 100% { transform: scaleX(1) } }

/* mentor-speaks – stern overcast */
.scn-mentor-speaks { background: linear-gradient(180deg, #495366 0%, #323b48 40%, #1e2732 100%); }
.scn-mentor-speaks .bg { position:absolute; inset:0; background: linear-gradient(90deg, #3c4554 0%, #2a3240 50%, #3c4554 100%); }
.scn-mentor-speaks .platform { position:absolute; bottom:30%; left:25%; right:25%; height:8%; background: linear-gradient(0deg, #2a313c 0%, #3a4350 100%); border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,0.5); }
.scn-mentor-speaks .mentor-body { position:absolute; bottom:42%; left:48%; width:34px; height:58px; background: linear-gradient(180deg, #3a4150 0%, #1f2732 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: ms-mentor 4s ease-in-out infinite alternate; }
.scn-mentor-speaks .mentor-arm-l { position:absolute; bottom:58%; left:42%; width:8px; height:44px; background: #2a3140; border-radius: 30%; transform-origin: 50% 0%; animation: ms-arm-l 3s ease-in-out infinite alternate; }
.scn-mentor-speaks .mentor-arm-r { position:absolute; bottom:58%; right:42%; width:8px; height:44px; background: #2a3140; border-radius: 30%; transform-origin: 50% 0%; animation: ms-arm-r 3s ease-in-out infinite alternate 0.1s; }
.scn-mentor-speaks .telemachus { position:absolute; bottom:33%; left:35%; width:22px; height:30px; background: linear-gradient(180deg, #1c2330 0%, #0f141c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: ms-telem 5s ease-in-out infinite alternate; }
.scn-mentor-speaks .crowd-l { position:absolute; bottom:33%; left:15%; right:55%; height:15%; background: radial-gradient(circle 4px at 20% 80%, #1a202c 0%, transparent 100%), radial-gradient(circle 4px at 40% 80%, #1a202c 0%, transparent 100%), radial-gradient(circle 4px at 60% 80%, #1a202c 0%, transparent 100%), radial-gradient(circle 4px at 80% 80%, #1a202c 0%, transparent 100%); filter: blur(1px); animation: ms-crowd 6s ease-in-out infinite alternate; }
.scn-mentor-speaks .crowd-r { position:absolute; bottom:33%; left:55%; right:10%; height:15%; background: radial-gradient(circle 4px at 20% 80%, #1a202c 0%, transparent 100%), radial-gradient(circle 4px at 50% 80%, #1a202c 0%, transparent 100%), radial-gradient(circle 4px at 80% 80%, #1a202c 0%, transparent 100%); filter: blur(1px); animation: ms-crowd 6s ease-in-out infinite alternate 0.5s; }
@keyframes ms-mentor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ms-arm-l { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-35deg) } 100% { transform: rotate(-20deg) } }
@keyframes ms-arm-r { 0% { transform: rotate(20deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(20deg) } }
@keyframes ms-telem { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(-3deg) scale(0.95) } 100% { transform: rotate(-5deg) scale(1) } }
@keyframes ms-crowd { 0% { opacity:0.7 } 50% { opacity:0.5 } 100% { opacity:0.7 } }

/* telemachus-prays – desperate dusk */
.scn-telemachus-prays { background: linear-gradient(180deg, #2c2533 0%, #3d2e3a 30%, #5a3f4a 60%, #7a5545 100%); }
.scn-telemachus-prays .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2330 0%, #3d2e3a 40%, #6a4f50 80%, #9a7055 100%); animation: tp-sky 12s ease-in-out infinite alternate; }
.scn-telemachus-prays .sea { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a1d2a 0%, #3a3a50 60%, #6a5a5a 100%); animation: tp-sea 8s ease-in-out infinite alternate; }
.scn-telemachus-prays .shore { position:absolute; bottom:25%; left:0; right:0; height:12%; background: linear-gradient(0deg, #4a3a30 0%, #6a4e40 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-telemachus-prays .telemachus-body { position:absolute; bottom:28%; left:45%; width:30px; height:40px; background: linear-gradient(180deg, #1a1e26 0%, #0a0d14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(-10deg); animation: tp-tel 4s ease-in-out infinite alternate; }
.scn-telemachus-prays .telemachus-head { position:absolute; bottom:48%; left:46%; width:14px; height:14px; background: #0a0d14; border-radius: 50%; transform: rotate(0deg); animation: tp-head 4s ease-in-out infinite alternate; }
.scn-telemachus-prays .glow { position:absolute; bottom:50%; left:40%; right:40%; height:20%; background: radial-gradient(circle, rgba(200,180,140,0.25) 0%, transparent 70%); filter: blur(10px); animation: tp-glow 5s ease-in-out infinite alternate; }
.scn-telemachus-prays .cloud { position:absolute; top:12%; left:10%; width:80px; height:12px; background: linear-gradient(180deg, rgba(180,170,160,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: tp-cloud 30s linear infinite; }
.scn-telemachus-prays .wave-1 { position:absolute; bottom:38%; left:0; right:0; height:8%; background: linear-gradient(0deg, rgba(50,60,80,0.4) 0%, transparent 100%); border-radius: 0 0 40% 60% / 0 0 60% 40%; animation: tp-wave1 6s ease-in-out infinite alternate; }
.scn-telemachus-prays .wave-2 { position:absolute; bottom:42%; left:0; right:0; height:6%; background: linear-gradient(0deg, rgba(60,70,90,0.3) 0%, transparent 100%); border-radius: 0 0 60% 40% / 0 0 40% 60%; animation: tp-wave2 7s ease-in-out infinite alternate 0.5s; }
@keyframes tp-sky { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.7 } }
@keyframes tp-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tp-tel { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-3px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes tp-head { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes tp-glow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes tp-cloud { 0% { transform: translateX(-20px) } 100% { transform: translateX(120vw) } }
@keyframes tp-wave1 { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } 100% { transform: scaleY(1) } }
@keyframes tp-wave2 { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.9) } 100% { transform: scaleY(1) } }

.scn-garden-description { background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 50%, #228B22 100%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 70%); }
.scn-garden-description .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87CEEB 0%, #FFF8DC 100%); animation: gd-sky 10s ease-in-out infinite alternate; }
.scn-garden-description .wall { position:absolute; bottom:30%; left:5%; width:90%; height:20%; background: linear-gradient(90deg, #8B7355 0%, #A0522D 100%); border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: gd-wall 8s ease-in-out infinite; }
.scn-garden-description .tree-1 { position:absolute; bottom:35%; left:15%; width:40px; height:100px; background: linear-gradient(180deg, #654321 0%, #3E2723 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gd-tree1 6s ease-in-out infinite; }
.scn-garden-description .tree-2 { position:absolute; bottom:35%; right:20%; width:35px; height:90px; background: linear-gradient(180deg, #654321 0%, #3E2723 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gd-tree2 7s ease-in-out infinite 1s; }
.scn-garden-description .vine { position:absolute; bottom:45%; left:40%; width:80px; height:20px; background: radial-gradient(ellipse, #556B2F 0%, #228B22 100%); border-radius: 50%; filter: blur(2px); animation: gd-vine 12s ease-in-out infinite; }
.scn-garden-description .stream { position:absolute; bottom:20%; left:0; width:100%; height:10px; background: linear-gradient(90deg, #4682B4 0%, #87CEEB 50%, #4682B4 100%); border-radius: 50% / 100%; animation: gd-stream 5s ease-in-out infinite; }
.scn-garden-description .flowers { position:absolute; bottom:25%; left:10%; width:50px; height:20px; background: radial-gradient(circle, #FFB6C1 0%, #FF69B4 100%); border-radius: 50%; filter: blur(3px); animation: gd-flowers 4s ease-in-out infinite alternate; }
@keyframes gd-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes gd-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes gd-tree1 { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes gd-tree2 { 0% { transform: rotate(0deg); } 50% { transform: rotate(-4deg); } 100% { transform: rotate(0deg); } }
@keyframes gd-vine { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(1); } }
@keyframes gd-stream { 0% { transform: translateX(-10px); } 50% { transform: translateX(10px); } 100% { transform: translateX(-10px); } }
@keyframes gd-flowers { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(1); } }

.scn-ulysses-enters { background: linear-gradient(180deg, #D2B48C 0%, #DEB887 50%, #8B4513 100%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 80%); }
.scn-ulysses-enters .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(90deg, #A0522D 0%, #D2691E 100%); border-radius: 10% 10% 0 0; }
.scn-ulysses-enters .pillar-l { position:absolute; bottom:20%; left:15%; width:20px; height:80%; background: linear-gradient(180deg, #F5DEB3 0%, #8B7355 100%); border-radius: 5px; box-shadow: 2px 0 5px rgba(0,0,0,0.3); animation: ue-pillar 10s ease-in-out infinite; }
.scn-ulysses-enters .pillar-r { position:absolute; bottom:20%; right:15%; width:20px; height:80%; background: linear-gradient(180deg, #F5DEB3 0%, #8B7355 100%); border-radius: 5px; box-shadow: -2px 0 5px rgba(0,0,0,0.3); animation: ue-pillar 10s ease-in-out infinite 1s; }
.scn-ulysses-enters .altar { position:absolute; bottom:30%; left:40%; width:60px; height:40px; background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%); border-radius: 10px; box-shadow: 0 4px 6px rgba(0,0,0,0.5); animation: ue-altar 6s ease-in-out infinite; }
.scn-ulysses-enters .statue { position:absolute; bottom:35%; left:42%; width:20px; height:50px; background: linear-gradient(180deg, #FFD700 0%, #DAA520 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ue-statue 8s ease-in-out infinite; }
.scn-ulysses-enters .ulysses { position:absolute; bottom:20%; left:35%; width:25px; height:45px; background: linear-gradient(180deg, #2F4F4F 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ue-ulysses 12s ease-in-out infinite; opacity:0.9; }
.scn-ulysses-enters .queen { position:absolute; bottom:25%; right:25%; width:30px; height:60px; background: linear-gradient(180deg, #FFD700 0%, #DAA520 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ue-queen 15s ease-in-out infinite; }
.scn-ulysses-enters .light { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, rgba(255,215,0,0.4) 0%, transparent 70%); animation: ue-light 5s ease-in-out infinite alternate; }
@keyframes ue-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes ue-altar { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ue-statue { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes ue-ulysses { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ue-queen { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes ue-light { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.8; } }

.scn-ulysses-sits { background: linear-gradient(180deg, #8B4513 0%, #DEB887 50%, #F5DEB3 100%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 80%); }
.scn-ulysses-sits .hearth { position:absolute; bottom:10%; left:35%; width:80px; height:30px; background: linear-gradient(180deg, #2F2F2F 0%, #1a1a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5); animation: us-hearth 8s ease-in-out infinite; }
.scn-ulysses-sits .ashes { position:absolute; bottom:12%; left:38%; width:50px; height:10px; background: radial-gradient(circle, #696969 0%, #808080 50%, #A9A9A9 100%); border-radius: 50%; filter: blur(3px); animation: us-ashes 6s ease-in-out infinite alternate; }
.scn-ulysses-sits .ulysses-fig { position:absolute; bottom:15%; left:40%; width:20px; height:30px; background: linear-gradient(180deg, #2F4F4F 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: us-ulysses 5s ease-in-out infinite; }
.scn-ulysses-sits .echeneus { position:absolute; bottom:20%; right:25%; width:25px; height:50px; background: linear-gradient(180deg, #8B7355 0%, #5C3317 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: us-echeneus 7s ease-in-out infinite; }
.scn-ulysses-sits .throne { position:absolute; bottom:25%; left:10%; width:40px; height:60px; background: linear-gradient(180deg, #FFD700 0%, #DAA520 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: us-throne 10s ease-in-out infinite; }
.scn-ulysses-sits .pillar-l { position:absolute; bottom:20%; left:5%; width:15px; height:80%; background: linear-gradient(180deg, #F5DEB3 0%, #8B7355 100%); border-radius: 5px; animation: us-pillar 12s ease-in-out infinite; }
.scn-ulysses-sits .pillar-r { position:absolute; bottom:20%; right:5%; width:15px; height:80%; background: linear-gradient(180deg, #F5DEB3 0%, #8B7355 100%); border-radius: 5px; animation: us-pillar 12s ease-in-out infinite 2s; }
@keyframes us-hearth { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes us-ashes { 0% { opacity:0.6; transform: translateY(0); } 50% { opacity:1; transform: translateY(-2px); } 100% { opacity:0.7; transform: translateY(0); } }
@keyframes us-ulysses { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes us-echeneus { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes us-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes us-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }

.scn-alcinous-acts { background: linear-gradient(180deg, #DEB887 0%, #F5DEB3 50%, #D2B48C 100%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 80%); }
.scn-alcinous-acts .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(90deg, #A0522D 0%, #D2691E 100%); border-radius: 10% 10% 0 0; }
.scn-alcinous-acts .table { position:absolute; bottom:30%; left:40%; width:80px; height:20px; background: linear-gradient(90deg, #8B4513 0%, #A0522D 100%); border-radius: 5px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: aa-table 10s ease-in-out infinite; }
.scn-alcinous-acts .ulysses-stand { position:absolute; bottom:25%; left:35%; width:25px; height:50px; background: linear-gradient(180deg, #2F4F4F 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aa-ulysses 8s ease-in-out infinite; }
.scn-alcinous-acts .alcinous { position:absolute; bottom:30%; left:50%; width:30px; height:55px; background: linear-gradient(180deg, #FFD700 0%, #DAA520 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aa-alcinous 6s ease-in-out infinite; }
.scn-alcinous-acts .maid { position:absolute; bottom:28%; right:30%; width:20px; height:40px; background: linear-gradient(180deg, #F5DEB3 0%, #DEB887 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aa-maid 5s ease-in-out infinite; }
.scn-alcinous-acts .bowl { position:absolute; bottom:35%; left:30%; width:40px; height:25px; background: radial-gradient(ellipse, #8B4513 0%, #5C3317 100%); border-radius: 50%; box-shadow: inset 0 -4px 4px rgba(0,0,0,0.5); animation: aa-bowl 12s ease-in-out infinite; }
.scn-alcinous-acts .laodamas-seat { position:absolute; bottom:25%; right:20%; width:30px; height:40px; background: linear-gradient(180deg, #DAA520 0%, #B8860B 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 6px rgba(0,0,0,0.4); animation: aa-seat 7s ease-in-out infinite; }
.scn-alcinous-acts .wine { position:absolute; bottom:38%; left:32%; width:10px; height:15px; background: linear-gradient(180deg, #722F37 0%, #4A1C1E 100%); border-radius: 50%; filter: blur(2px); animation: aa-wine 4s ease-in-out infinite; }
@keyframes aa-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes aa-ulysses { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes aa-alcinous { 0% { transform: rotate(0deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes aa-maid { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes aa-bowl { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(1); } }
@keyframes aa-seat { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes aa-wine { 0% { opacity:0.7; transform: translateY(0); } 50% { opacity:1; transform: translateY(-3px); } 100% { opacity:0.8; transform: translateY(0); } }

.scn-penelope-wakens { background: linear-gradient(180deg, #0f0c29 0%, #19103f 50%, #2c1b4d 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-penelope-wakens .pw-window-frame { position: absolute; inset: 5% 10%; background: linear-gradient(135deg, #3a2a1a 0%, #1a100a 100%); border-radius: 20px; box-shadow: inset 0 0 30px rgba(0,0,0,.8); }
.scn-penelope-wakens .pw-dawn-sky { position: absolute; top: 6%; left: 12%; right: 12%; bottom: 40%; background: linear-gradient(180deg, #2a1a4e 0%, #4a3a6e 30%, #8a7a9e 70%, #e8d5b7 100%); border-radius: 10px; animation: pw-sky 14s ease-in-out infinite alternate; }
.scn-penelope-wakens .pw-drapes-left { position: absolute; top: 5%; left: 10%; width: 15%; height: 60%; background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%); border-radius: 0 40% 60% 0; transform-origin: top left; animation: pw-drape 9s ease-in-out infinite alternate; }
.scn-penelope-wakens .pw-drapes-right { position: absolute; top: 5%; right: 10%; width: 15%; height: 60%; background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%); border-radius: 40% 0 0 60%; transform-origin: top right; animation: pw-drape 9s ease-in-out infinite alternate-reverse; }
.scn-penelope-wakens .pw-bed { position: absolute; bottom: 12%; left: 20%; right: 20%; height: 25%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10px 10px 30px 30px; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-penelope-wakens .pw-figure { position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%); width: 12%; height: 20%; background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pw-breathe 6s ease-in-out infinite; }
.scn-penelope-wakens .pw-dream-echo { position: absolute; top: 15%; left: 30%; right: 30%; bottom: 50%; background: radial-gradient(ellipse, rgba(200,180,220,.4) 0%, rgba(200,180,220,.1) 50%, transparent 70%); filter: blur(8px); animation: pw-fade 10s ease-in-out infinite alternate; }
.scn-penelope-wakens .pw-light-ray { position: absolute; top: 6%; left: 45%; width: 10%; height: 40%; background: linear-gradient(180deg, rgba(255, 230, 180, .15) 0%, transparent 100%); transform: skewX(-10deg); animation: pw-light 15s ease-in-out infinite alternate; }
@keyframes pw-sky { 0% { opacity: .6; filter: brightness(.8); } 50% { opacity: .9; filter: brightness(1.1); } 100% { opacity: .7; filter: brightness(.9); } }
@keyframes pw-drape { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.02); } 100% { transform: rotate(-2deg) scaleY(.98); } }
@keyframes pw-breathe { 0%, 100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } }
@keyframes pw-fade { 0% { opacity: .8; filter: blur(4px); } 50% { opacity: .4; filter: blur(12px); } 100% { opacity: .1; filter: blur(20px); } }
@keyframes pw-light { 0% { transform: skewX(-10deg) translateX(-10px); opacity: .3; } 50% { transform: skewX(-5deg) translateX(5px); opacity: .8; } 100% { transform: skewX(-15deg) translateX(-5px); opacity: .4; } }

.scn-minerva-complains { background: linear-gradient(180deg, #f5e6d3 0%, #e8d5b7 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-minerva-complains .mc-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: repeating-linear-gradient(90deg, #d4c3aa 0px, #d4c3aa 2px, #c4b39a 2px, #c4b39a 4px); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 30px -20px #2a1a1a; }
.scn-minerva-complains .mc-throne { position: absolute; bottom: 20%; left: 10%; width: 25%; height: 45%; background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 10px 30px rgba(0,0,0,.4); }
.scn-minerva-complains .mc-minerva { position: absolute; bottom: 25%; right: 20%; width: 18%; height: 40%; background: linear-gradient(180deg, #702243 0%, #3e1018 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-tremble .4s ease-in-out infinite; }
.scn-minerva-complains .mc-spear { position: absolute; bottom: 30%; right: 28%; width: 2%; height: 35%; background: linear-gradient(180deg, #a0461a 0%, #5a1a0a 100%); border-radius: 10px; transform: rotate(15deg); transform-origin: bottom center; animation: mc-spear .4s ease-in-out infinite alternate; }
.scn-minerva-complains .mc-aura { position: absolute; inset: 0; background: radial-gradient(ellipse at 70% 40%, rgba(200, 85, 61, .4) 0%, transparent 60%); filter: blur(30px); animation: mc-aura 4s ease-in-out infinite alternate; }
.scn-minerva-complains .mc-shadow { position: absolute; bottom: 0; right: 15%; width: 25%; height: 20%; background: rgba(30, 15, 15, .6); border-radius: 50% 50% 0 0; filter: blur(5px); animation: mc-shadow 4s ease-in-out infinite alternate; }
.scn-minerva-complains .mc-column-l { position: absolute; top: 0; left: 2%; width: 8%; height: 90%; background: linear-gradient(180deg, #e8d5b7 0%, #c4b39a 50%, #a09080 100%); border-radius: 0 0 30% 30%; box-shadow: 10px 0 20px rgba(0,0,0,.1); }
.scn-minerva-complains .mc-column-r { position: absolute; top: 0; right: 2%; width: 8%; height: 90%; background: linear-gradient(180deg, #e8d5b7 0%, #c4b39a 50%, #a09080 100%); border-radius: 0 0 30% 30%; box-shadow: -10px 0 20px rgba(0,0,0,.1); }
@keyframes mc-tremble { 0% { transform: translateX(-2px) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(.5deg); } 75% { transform: translateX(1px) rotate(-.5deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes mc-spear { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(20deg) scaleY(1.02); } 100% { transform: rotate(15deg) scaleY(.98); } }
@keyframes mc-aura { 0% { opacity: .6; filter: blur(20px); } 50% { opacity: 1; filter: blur(35px); } 100% { opacity: .7; filter: blur(25px); } }
@keyframes mc-shadow { 0% { transform: scaleX(.9); opacity: .7; } 50% { transform: scaleX(1.1); opacity: 1; } 100% { transform: scaleX(.95); opacity: .8; } }

.scn-jove-orders { background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%), radial-gradient(ellipse at 50% 0%, #f1c40f 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-jove-orders .jo-panel-bg { position: absolute; inset: 5%; background: linear-gradient(135deg, #d4ac0d 0%, #9a7d0a 100%); border-radius: 20px; box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-jove-orders .jo-throne-steps { position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%); width: 70%; height: 25%; background: linear-gradient(180deg, #5d6d7e 0%, #2c3e50 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 10px 30px rgba(0,0,0,.5); }
.scn-jove-orders .jo-jove { position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 25%; height: 40%; background: linear-gradient(180deg, #ecf0f1 0%, #bdc3c7 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 40px rgba(241, 196, 15, .4); animation: jo-authority 8s ease-in-out infinite; }
.scn-jove-orders .jo-mercury { position: absolute; bottom: 12%; left: 15%; width: 12%; height: 25%; background: linear-gradient(180deg, #f1c40f 0%, #e67e22 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: jo-attend 5s ease-in-out infinite alternate; }
.scn-jove-orders .jo-beam { position: absolute; top: 5%; left: 45%; width: 10%; height: 60%; background: linear-gradient(180deg, rgba(241, 196, 15, .8) 0%, rgba(241, 196, 15, .2) 50%, transparent 100%); animation: jo-beam 3s ease-in-out infinite alternate; }
.scn-jove-orders .jo-eagle { position: absolute; top: 8%; right: 18%; width: 15%; height: 20%; background: #1a252f; border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: jo-eagle 12s linear infinite; }
.scn-jove-orders .jo-caduceus { position: absolute; bottom: 15%; left: 18%; width: 2%; height: 18%; background: linear-gradient(180deg, #f1c40f 0%, #d4ac0d 100%); border-radius: 10px; box-shadow: 0 0 15px #f1c40f; animation: jo-glow 2s ease-in-out infinite alternate; }
@keyframes jo-authority { 0%, 100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-3px); box-shadow: 0 0 60px rgba(241,196,15,.6); } }
@keyframes jo-attend { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes jo-beam { 0% { opacity: .5; transform: scaleX(.8); } 50% { opacity: 1; transform: scaleX(1.2); } 100% { opacity: .6; transform: scaleX(.9); } }
@keyframes jo-eagle { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-20px) rotate(-5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(20px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes jo-glow { 0% { box-shadow: 0 0 10px #f1c40f; opacity: .7; } 50% { box-shadow: 0 0 25px #f1c40f, 0 0 50px #d4ac0d; opacity: 1; } 100% { box-shadow: 0 0 15px #f1c40f; opacity: .8; } }

.scn-mercury-greets { background: linear-gradient(180deg, #1a3a3a 0%, #2a4a4a 100%), radial-gradient(ellipse at 30% 30%, #3498db 0%, transparent 50%); position: relative; overflow: hidden; }
.scn-mercury-greets .mg-cave-wall { position: absolute; inset: 0; background: linear-gradient(135deg, #2c3e50 0%, #1a252f 100%); border-radius: 40% 40% 20% 20% / 10% 10% 30% 30%; box-shadow: inset 0 0 50px rgba(0,0,0,.4); }
.scn-mercury-greets .mg-table { position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%); width: 45%; height: 15%; background: linear-gradient(180deg, #7f8c8d 0%, #34495e 100%); border-radius: 10px; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-mercury-greets .mg-mercury { position: absolute; bottom: 22%; left: 28%; width: 16%; height: 30%; background: linear-gradient(180deg, #f1c40f 0%, #e67e22 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mg-attend 6s ease-in-out infinite alternate; }
.scn-mercury-greets .mg-calypso { position: absolute; bottom: 22%; right: 25%; width: 20%; height: 35%; background: linear-gradient(180deg, #1abc9c 0%, #16a085 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mg-offer 7s ease-in-out infinite; }
.scn-mercury-greets .mg-ambrosia { position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%); width: 12%; height: 8%; background: radial-gradient(circle, #f39c12 0%, #a0461a 100%); border-radius: 50%; filter: blur(3px); animation: mg-steam 4s ease-in-out infinite alternate; }
.scn-mercury-greets .mg-nectar { position: absolute; bottom: 26%; left: 56%; width: 6%; height: 12%; background: linear-gradient(180deg, #9b59b6 0%, #8e44ad 100%); border-radius: 0 0 30% 30%; box-shadow: 0 0 20px #9b59b6; animation: mg-glow 2.5s ease-in-out infinite alternate; }
.scn-mercury-greets .mg-spring { position: absolute; top: 0; right: 8%; width: 12%; height: 60%; background: linear-gradient(180deg, rgba(52, 152, 219, .8) 0%, rgba(41, 128, 185, .2) 100%); border-radius: 0 0 40% 40%; transform-origin: top center; animation: mg-flow 9s linear infinite; }
.scn-mercury-greets .mg-vines { position: absolute; top: 0; left: 2%; width: 25%; height: 100%; background: linear-gradient(180deg, #27ae60 0%, rgba(39, 174, 96, .1) 80%); border-radius: 0 60% 0 0; filter: blur(4px); animation: mg-vines 15s ease-in-out infinite alternate; }
@keyframes mg-attend { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(3deg); } }
@keyframes mg-offer { 0%, 100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(2deg); } }
@keyframes mg-steam { 0% { transform: translateX(-50%) scale(1) translateY(0); opacity: .7; filter: blur(2px); } 50% { transform: translateX(-50%) scale(1.2) translateY(-8px); opacity: 1; filter: blur(5px); } 100% { transform: translateX(-50%) scale(.9) translateY(0); opacity: .6; filter: blur(3px); } }
@keyframes mg-glow { 0% { box-shadow: 0 0 10px #9b59b6; } 50% { box-shadow: 0 0 30px #9b59b6, 0 0 60px #8e44ad; } 100% { box-shadow: 0 0 15px #8e44ad; } }
@keyframes mg-flow { 0% { transform: scaleY(1); opacity: .8; } 25% { transform: scaleY(1.05); opacity: .9; } 50% { transform: scaleY(.95); opacity: .7; } 75% { transform: scaleY(1.02); opacity: .85; } 100% { transform: scaleY(1); opacity: .8; } }
@keyframes mg-vines { 0% { transform: scaleY(1) rotate(0deg); } 33% { transform: scaleY(1.03) rotate(3deg); } 66% { transform: scaleY(.97) rotate(-2deg); } 100% { transform: scaleY(1) rotate(1deg); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.dust-dust-a { position: absolute; pointer-events: none; }
.dust-dust-b { position: absolute; pointer-events: none; }
.fig-c { position: absolute; pointer-events: none; }
.fs4-cloud { position: absolute; pointer-events: none; }
.gentle { position: absolute; pointer-events: none; }
.jar-small { position: absolute; pointer-events: none; }
.kneeling { position: absolute; pointer-events: none; }
.large { position: absolute; pointer-events: none; }
.layer { position: absolute; pointer-events: none; }
.many { position: absolute; pointer-events: none; }
.plank-broken { position: absolute; pointer-events: none; }
.prone { position: absolute; pointer-events: none; }
.star-er { position: absolute; pointer-events: none; }
.wind-line { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-telemachus-returns-to-suitors {
  background: linear-gradient(180deg, #d4c4a8 0%, #b8966a 40%, #8a6e4a 100%), radial-gradient(ellipse at 50% 30%, #e8d8b8 0%, transparent 60%);
}
.scn-telemachus-returns-to-suitors .hall-wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8b898 0%, #a88a6a 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.2);
  animation: te1-wall 12s ease-in-out infinite alternate;
}
.scn-telemachus-returns-to-suitors .hall-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #7a5e3a 0%, #4a3a2a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
}
.scn-telemachus-returns-to-suitors .column-left {
  position: absolute;
  left: 15%;
  top: 10%;
  width: 8%;
  height: 70%;
  background: linear-gradient(180deg, #d8c8b0 0%, #b09878 100%);
  border-radius: 6% / 2%;
  box-shadow: 8px 0 12px rgba(0,0,0,0.15);
  animation: te1-column 20s ease-in-out infinite alternate;
}
.scn-telemachus-returns-to-suitors .column-right {
  position: absolute;
  right: 15%;
  top: 10%;
  width: 8%;
  height: 70%;
  background: linear-gradient(180deg, #d8c8b0 0%, #b09878 100%);
  border-radius: 6% / 2%;
  box-shadow: -8px 0 12px rgba(0,0,0,0.15);
  animation: te1-column 20s ease-in-out infinite alternate-reverse;
}
.scn-telemachus-returns-to-suitors .table {
  position: absolute;
  bottom: 28%;
  left: 30%;
  width: 40%;
  height: 8%;
  background: linear-gradient(180deg, #6a4e32 0%, #4a3622 100%);
  border-radius: 20% 20% 10% 10% / 80% 80% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-telemachus-returns-to-suitors .fire {
  position: absolute;
  bottom: 32%;
  left: 48%;
  width: 5%;
  height: 10%;
  background: radial-gradient(ellipse at 50% 60%, #f0a040 0%, #c06020 40%, transparent 70%);
  filter: blur(3px);
  animation: te1-fire 2s ease-in-out infinite alternate;
}
.scn-telemachus-returns-to-suitors .figure-telemachus {
  position: absolute;
  bottom: 24%;
  left: 22%;
  width: 8%;
  height: 16%;
  background: linear-gradient(180deg, #2a1e14 0%, #140e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: te1-telemachus 6s ease-in-out infinite;
}
.scn-telemachus-returns-to-suitors .figure-suitors {
  position: absolute;
  bottom: 24%;
  left: 38%;
  width: 12%;
  height: 14%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: te1-suitors 4s ease-in-out infinite alternate;
}
@keyframes te1-wall { 0% { opacity: 0.9; filter: brightness(1); } 50% { opacity: 1; filter: brightness(1.05); } 100% { opacity: 0.9; filter: brightness(0.95); } }
@keyframes te1-column { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes te1-fire { 0% { transform: scale(1) rotate(0deg); opacity: 0.8; } 50% { transform: scale(1.1) rotate(3deg); opacity: 1; } 100% { transform: scale(0.95) rotate(-2deg); opacity: 0.7; } }
@keyframes te1-telemachus { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(-2deg); } 60% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes te1-suitors { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }

.scn-telemachus-defiance {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #3a3a5e 100%), radial-gradient(ellipse at 50% 40%, #3a3a6e 0%, transparent 70%);
}
.scn-telemachus-defiance .bg-dark {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a30 100%);
  animation: te2-dark 8s ease-in-out infinite alternate;
}
.scn-telemachus-defiance .hand-telemachus {
  position: absolute;
  right: 30%;
  bottom: 45%;
  width: 10%;
  height: 12%;
  background: linear-gradient(180deg, #d4a078 0%, #a07050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(45deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: te2-hand 3s ease-in-out infinite;
}
.scn-telemachus-defiance .arm-telemachus {
  position: absolute;
  right: 35%;
  bottom: 32%;
  width: 6%;
  height: 20%;
  background: linear-gradient(180deg, #8a6040 0%, #5a3a2a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 50% 50%;
  transform-origin: bottom center;
  transform: rotate(-10deg);
  box-shadow: -4px 0 6px rgba(0,0,0,0.3);
  animation: te2-arm 3s ease-in-out infinite;
}
.scn-telemachus-defiance .profile-telemachus {
  position: absolute;
  right: 50%;
  bottom: 20%;
  width: 14%;
  height: 20%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  clip-path: polygon(30% 0%, 70% 0%, 80% 30%, 75% 60%, 60% 80%, 40% 80%, 25% 60%, 20% 30%);
  filter: drop-shadow(4px 0 6px rgba(0,0,0,0.5));
  animation: te2-profile 5s ease-in-out infinite alternate;
}
.scn-telemachus-defiance .profile-suitors {
  position: absolute;
  left: 20%;
  bottom: 22%;
  width: 12%;
  height: 16%;
  background: linear-gradient(180deg, #2a1e14 0%, #140e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  clip-path: polygon(40% 0%, 60% 0%, 75% 25%, 70% 55%, 55% 75%, 45% 75%, 30% 55%, 25% 25%);
  filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.4));
  animation: te2-suitors 4s ease-in-out infinite alternate;
}
.scn-telemachus-defiance .shadow-stripe {
  position: absolute;
  left: 45%;
  top: 0;
  width: 10%;
  height: 100%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 30%, transparent 100%);
  filter: blur(8px);
  animation: te2-stripe 6s ease-in-out infinite alternate;
}
@keyframes te2-dark { 0% { opacity: 0.8; filter: brightness(1); } 50% { opacity: 0.9; filter: brightness(1.1); } 100% { opacity: 0.7; filter: brightness(0.95); } }
@keyframes te2-hand { 0% { transform: rotate(40deg) scale(1); } 50% { transform: rotate(50deg) scale(1.1); } 100% { transform: rotate(35deg) scale(0.95); } }
@keyframes te2-arm { 0% { transform: rotate(-12deg); } 50% { transform: rotate(-8deg); } 100% { transform: rotate(-15deg); } }
@keyframes te2-profile { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes te2-suitors { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.03); } 100% { transform: translateY(2px) scale(0.97); } }
@keyframes te2-stripe { 0% { transform: translateX(-5px); opacity: 0.3; } 50% { transform: translateX(5px); opacity: 0.5; } 100% { transform: translateX(-3px); opacity: 0.2; } }

.scn-penelope-descends {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #a88c6a 70%, #7a5e3e 100%),
              radial-gradient(ellipse at 40% 50%, #ffe8c0 0%, transparent 60%);
}
.scn-penelope-descends .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e6d5b5 0%, #c9b090 100%); }
.scn-penelope-descends .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b7048 0%, #5a4228 100%); }
.scn-penelope-descends .pillar-left { position:absolute; bottom:30%; left:15%; width:12px; height:60%; background: linear-gradient(90deg, #b09570, #8a7048, #b09570); border-radius:4%; box-shadow:4px 0 8px rgba(0,0,0,.2); }
.scn-penelope-descends .pillar-right{ position:absolute; bottom:30%; right:15%; width:12px; height:60%; background: linear-gradient(90deg, #b09570, #8a7048, #b09570); border-radius:4%; box-shadow:-4px 0 8px rgba(0,0,0,.2); }
.scn-penelope-descends .odysseus{ position:absolute; bottom:30%; left:45%; width:28px; height:60px; background: linear-gradient(180deg, #e0c8a0 0%, #b89870 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:center bottom; animation: pd-fight 2s ease-in-out infinite alternate; }
.scn-penelope-descends .irus   { position:absolute; bottom:30%; left:52%; width:20px; height:40px; background: linear-gradient(180deg, #c8a888 0%, #8a6848 100%); border-radius:60% 40% 50% 50% / 70% 70% 40% 40%; transform:rotate(15deg); animation: pd-fall 0.8s linear infinite; }
.scn-penelope-descends .goat-paunch{ position:absolute; bottom:32%; left:38%; width:30px; height:15px; background: radial-gradient(ellipse at 50% 50%, #b87868 30%, #8a5040 70%); border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.3); animation: pd-shake 1.4s ease-in-out infinite; }
.scn-penelope-descends .suitors-cheer { position:absolute; bottom:35%; right:10%; width:50px; height:30px; background: radial-gradient(circle, rgba(200,180,140,0.4) 0%, transparent 70%); filter:blur(4px); animation: pd-cheer 0.6s ease-in-out infinite alternate; }
@keyframes pd-fight { 0% { transform: translateX(0) rotate(0) scale(1); } 50% { transform: translateX(6px) rotate(5deg) scale(1.05); } 100% { transform: translateX(0) rotate(0) scale(1); } }
@keyframes pd-fall  { 0% { transform: rotate(15deg) translateY(0); } 25% { transform: rotate(20deg) translateY(-2px); } 50% { transform: rotate(10deg) translateY(0); } 75% { transform: rotate(18deg) translateY(-1px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes pd-shake { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-3px) rotate(-5deg); } 50% { transform: translateX(3px) rotate(5deg); } 75% { transform: translateX(-2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pd-cheer { 0% { opacity:0.7; transform:scale(1); } 100% { opacity:1; transform:scale(1.08); } }

.scn-suitors-gifts {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3020 30%, #6a4830 60%, #3a2010 100%),
              radial-gradient(ellipse at 50% 20%, #d08040 0%, transparent 50%);
}
.scn-suitors-gifts .wall-dark { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #3a2010 0%, #1a0e05 100%); }
.scn-suitors-gifts .hearth   { position:absolute; bottom:25%; left:10%; width:80px; height:40px; background: radial-gradient(ellipse at 50% 30%, #ff8c40 0%, #c05a20 50%, #4a1a08 80%); border-radius:50% 50% 30% 30%; box-shadow:0 0 40px 20px rgba(255,100,20,0.4); animation: sg-fire 2s ease-in-out infinite alternate; }
.scn-suitors-gifts .penelope { position:absolute; bottom:25%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #d4b090 0%, #a08060 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:center bottom; animation: sg-stand 6s ease-in-out infinite; }
.scn-suitors-gifts .eurymachus{position:absolute; bottom:25%; right:25%; width:22px; height:44px; background: linear-gradient(180deg, #b89870 0%, #7a5a38 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: sg-bow 3s ease-in-out infinite alternate; }
.scn-suitors-gifts .gift-chest {position:absolute; bottom:28%; left:55%; width:40px; height:24px; background: linear-gradient(180deg, #8a6a48 0%, #5a3a20 100%); border-radius:8%; box-shadow:2px 2px 6px rgba(0,0,0,.5); animation: sg-glint 4s ease-in-out infinite; }
.scn-suitors-gifts .gift-necklace{position:absolute; bottom:32%; left:58%; width:16px; height:10px; background: radial-gradient(ellipse, #ffd080 0%, #b89850 60%); border-radius:50%; box-shadow:0 0 8px 2px rgba(255,200,80,0.3); animation: sg-shine 2.5s linear infinite; }
.scn-suitors-gifts .gift-cup   {position:absolute; bottom:30%; left:62%; width:12px; height:16px; background: linear-gradient(180deg, #c09060 0%, #8a6040 100%); border-radius:20% 20% 30% 30%; box-shadow:0 2px 4px rgba(0,0,0,.4); }
.scn-suitors-gifts .shadow-suitors{position:absolute; bottom:25%; right:5%; width:80px; height:30px; background: radial-gradient(ellipse, rgba(20,10,5,0.3) 0%, transparent 70%); filter:blur(8px); animation: sg-shadow 5s ease-in-out infinite alternate; }
@keyframes sg-fire   { 0% { box-shadow:0 0 30px 15px rgba(255,100,20,0.3); } 50% { box-shadow:0 0 50px 25px rgba(255,140,40,0.5); } 100% { box-shadow:0 0 30px 15px rgba(255,100,20,0.3); } }
@keyframes sg-stand  { 0% { transform:translateX(0) rotate(0); } 25% { transform:translateX(-2px) rotate(-2deg); } 50% { transform:translateX(0) rotate(0); } 75% { transform:translateX(2px) rotate(2deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes sg-bow   { 0% { transform:rotate(0) scaleY(1); } 50% { transform:rotate(10deg) scaleY(0.9); } 100% { transform:rotate(0) scaleY(1); } }
@keyframes sg-glint { 0% { opacity:1; } 25% { opacity:0.7; } 50% { opacity:1; } 75% { opacity:0.8; } 100% { opacity:1; } }
@keyframes sg-shine { 0% { transform:rotate(0) scale(1); } 25% { transform:rotate(90deg) scale(1.1); } 50% { transform:rotate(180deg) scale(1); } 75% { transform:rotate(270deg) scale(0.9); } 100% { transform:rotate(360deg) scale(1); } }
@keyframes sg-shadow{ 0% { opacity:0.5; transform:scaleX(1); } 50% { opacity:1; transform:scaleX(1.2); } 100% { opacity:0.5; transform:scaleX(1); } }

.scn-weapons-removed-and-foot-washing {
  background: linear-gradient(180deg, #3a1a0a 0%, #5a3020 40%, #7a4a30 70%, #4a2010 100%),
              radial-gradient(ellipse at 60% 30%, #c06030 0%, transparent 60%);
}
.scn-weapons-removed-and-foot-washing .hall-wall {position:absolute; inset:0 0 28% 0; background: linear-gradient(180deg, #4a2818 0%, #2a1008 100%); }
.scn-weapons-removed-and-foot-washing .weapons-rack{position:absolute; bottom:28%; left:15%; width:6px; height:60%; background: linear-gradient(180deg, #8a6a48 0%, #5a3a20 100%); border-radius:2px; box-shadow:12px 0 0 #5a3a20, 24px 0 0 #4a2a10; }
.scn-weapons-removed-and-foot-washing .odysseus-figure{position:absolute; bottom:28%; left:40%; width:26px; height:55px; background: linear-gradient(180deg, #d4b090 0%, #a08060 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:center bottom; animation: wr-carry 4s ease-in-out infinite; }
.scn-weapons-removed-and-foot-washing .telemachus-figure{position:absolute; bottom:28%; left:52%; width:22px; height:44px; background: linear-gradient(180deg, #c8a888 0%, #8a6848 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: wr-bend 3s ease-in-out infinite alternate; }
.scn-weapons-removed-and-foot-washing .foot-basin{position:absolute; bottom:30%; left:48%; width:30px; height:12px; background: radial-gradient(ellipse at 50% 50%, #a08060 30%, #6a4830 70%); border-radius:0 0 50% 50%; box-shadow:0 2px 6px rgba(0,0,0,.4); }
.scn-weapons-removed-and-foot-washing .water-splash{position:absolute; bottom:32%; left:49%; width:6px; height:6px; background: radial-gradient(circle, #e0d0c0 0%, transparent 70%); border-radius:50%; animation: wr-splash 1.2s ease-out infinite; }
.scn-weapons-removed-and-foot-washing .torch-glow{position:absolute; bottom:50%; left:20%; width:30px; height:50px; background: radial-gradient(ellipse at 50% 30%, #ffac40 0%, #c06020 40%, transparent 70%); filter:blur(10px); animation: wr-glow 2s ease-in-out infinite alternate; }
@keyframes wr-carry  { 0% { transform:translateX(0) rotate(0); } 25% { transform:translateX(6px) rotate(3deg); } 50% { transform:translateX(0) rotate(0); } 75% { transform:translateX(-6px) rotate(-3deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes wr-bend   { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-4px) rotate(15deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes wr-splash { 0% { opacity:1; transform:scale(1) translateY(0); } 50% { opacity:0.8; transform:scale(2) translateY(-2px); } 100% { opacity:0; transform:scale(3) translateY(-4px); } }
@keyframes wr-glow   { 0% { opacity:0.7; transform:scaleX(1); } 50% { opacity:1; transform:scaleX(1.2); } 100% { opacity:0.7; transform:scaleX(1); } }

.scn-penelopes-dream {
  background: linear-gradient(180deg, #f5e8d0 0%, #d4c0a0 30%, #a09070 60%, #6a5840 100%),
              radial-gradient(ellipse at 70% 20%, #f0d8a0 0%, transparent 50%);
}
.scn-penelopes-dream .dawn-sky {position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f0d8a0 0%, #c8a868 50%, #a08048 100%); animation: dr-sky 15s ease-in-out infinite alternate; }
.scn-penelopes-dream .horizon {position:absolute; bottom:45%; left:0; right:0; height:8%; background: linear-gradient(180deg, #e0c890 0%, #b09050 100%); border-radius:30% 70% 0 0 / 50% 50% 0 0; }
.scn-penelopes-dream .eagle   {position:absolute; top:15%; left:30%; width:40px; height:24px; background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%); border-radius:60% 40% 30% 70% / 50% 50% 50% 50%; transform:rotate(-20deg); animation: dr-eagle 6s ease-in-out infinite; }
.scn-penelopes-dream .geese-flock{position:absolute; top:25%; left:50%; width:80px; height:20px; background: radial-gradient(ellipse at 50% 50%, #e0d0c0 60%, transparent 70%); filter:blur(2px); animation: dr-geese 4s ease-in-out infinite; }
.scn-penelopes-dream .geese-shadow{position:absolute; top:28%; left:52%; width:60px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%); filter:blur(3px); animation: dr-shadow 4s ease-in-out infinite; }
.scn-penelopes-dream .penelope-bed{position:absolute; bottom:15%; left:20%; width:100px; height:40px; background: linear-gradient(180deg, #b89870 0%, #8a6848 100%); border-radius:50% 50% 20% 20%; box-shadow:0 4px 12px rgba(0,0,0,.3); }
.scn-penelopes-dream .blanket-fold{position:absolute; bottom:18%; left:25%; width:60px; height:20px; background: linear-gradient(180deg, #d4b090 0%, #a08060 100%); border-radius:10% 30% 20% 40%; animation: dr-blanket 7s ease-in-out infinite; }
.scn-penelopes-dream .dream-haze{position:absolute; inset:0; background: radial-gradient(ellipse at 40% 30%, rgba(255,220,160,0.3) 0%, transparent 60%); pointer-events:none; animation: dr-haze 10s ease-in-out infinite alternate; }
@keyframes dr-sky    { 0% { background-position:0% 0%; } 50% { background-position:20% 10%; } 100% { background-position:0% 0%; } }
@keyframes dr-eagle  { 0% { transform:rotate(-20deg) translateY(0); } 30% { transform:rotate(-10deg) translateY(-8px); } 60% { transform:rotate(-25deg) translateY(5px); } 100% { transform:rotate(-20deg) translateY(0); } }
@keyframes dr-geese  { 0% { opacity:0.6; transform:scaleX(1) translateX(0); } 25% { opacity:0.8; transform:scaleX(1.1) translateX(5px); } 50% { opacity:0.6; transform:scaleX(1) translateX(0); } 75% { opacity:0.7; transform:scaleX(0.9) translateX(-5px); } 100% { opacity:0.6; transform:scaleX(1) translateX(0); } }
@keyframes dr-shadow { 0% { opacity:0.2; transform:scaleX(1); } 50% { opacity:0.5; transform:scaleX(1.3); } 100% { opacity:0.2; transform:scaleX(1); } }
@keyframes dr-blanket{ 0% { transform:translateY(0) rotate(0); } 30% { transform:translateY(-3px) rotate(2deg); } 60% { transform:translateY(0) rotate(0); } 100% { transform:translateY(-1px) rotate(-1deg); } }
@keyframes dr-haze   { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.5; } }

/* telemachus-brooding-among-suitors */
.scn-telemachus-brooding-among-suitors {
  background: linear-gradient(180deg, #d4b878 0%, #b09060 50%, #806040 100%), radial-gradient(ellipse at 50% 0%, #f0e4c8 0%, transparent 60%);
}
.scn-telemachus-brooding-among-suitors .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
}
.scn-telemachus-brooding-among-suitors .back-wall {
  position: absolute; bottom: 30%; left: 0; right: 0; top: 0;
  background: linear-gradient(180deg, #d4b878 0%, #c09860 100%);
}
.scn-telemachus-brooding-among-suitors .window {
  position: absolute; bottom: 50%; left: 50%; width: 30%; height: 20%; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #ffe0a0 50%, transparent 100%);
  border-radius: 4px; box-shadow: 0 0 60px 20px rgba(255, 224, 160, 0.5);
  animation: ti1-window 6s ease-in-out infinite alternate;
}
.scn-telemachus-brooding-among-suitors .column-left,
.scn-telemachus-brooding-among-suitors .column-right {
  position: absolute; bottom: 30%; top: 10%; width: 4%;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a5a 50%, #6a4a3a 100%);
  border-radius: 4px;
}
.scn-telemachus-brooding-among-suitors .column-left {
  left: 15%;
}
.scn-telemachus-brooding-among-suitors .column-right {
  right: 15%;
}
.scn-telemachus-brooding-among-suitors .suitors {
  position: absolute; bottom: 30%; height: 30%; width: 12%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  animation: ti1-suitor 4s ease-in-out infinite;
}
.scn-telemachus-brooding-among-suitors .suitor-left {
  left: 10%; animation-delay: 0s;
}
.scn-telemachus-brooding-among-suitors .suitor-right {
  right: 10%; animation-delay: 1.5s;
}
.scn-telemachus-brooding-among-suitors .telemachus {
  position: absolute; bottom: 32%; left: 50%; width: 10%; height: 35%; transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: ti1-telemachus 8s ease-in-out infinite;
}
@keyframes ti1-window {
  0% { opacity: 0.8; transform: translateX(-50%) scaleX(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleX(1.05); }
  100% { opacity: 0.85; transform: translateX(-50%) scaleX(0.98); }
}
@keyframes ti1-suitor {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ti1-telemachus {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}

/* athena-urges-assembly */
.scn-athena-urges-assembly {
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 50%, #3a4a5a 100%), radial-gradient(ellipse at 50% 30%, #8a9aaa 0%, transparent 70%);
}
.scn-athena-urges-assembly .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%);
  animation: ti2-sky 20s ease-in-out infinite alternate;
}
.scn-athena-urges-assembly .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%);
}
.scn-athena-urges-assembly .platform {
  position: absolute; bottom: 38%; left: 50%; width: 20%; height: 4%; transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
}
.scn-athena-urges-assembly .figure-telemachus {
  position: absolute; bottom: 38%; left: 46%; width: 5%; height: 12%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ti2-figure 6s ease-in-out infinite;
}
.scn-athena-urges-assembly .figure-athena {
  position: absolute; bottom: 38%; right: 44%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ti2-figure 7s ease-in-out infinite reverse;
}
.scn-athena-urges-assembly .crowd {
  position: absolute; bottom: 35%; height: 15%; width: 8%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  animation: ti2-crowd 4s ease-in-out infinite;
}
.scn-athena-urges-assembly .crowd-1 {
  left: 25%; animation-delay: 0s;
}
.scn-athena-urges-assembly .crowd-2 {
  left: 45%; width: 6%; animation-delay: 1s;
}
.scn-athena-urges-assembly .crowd-3 {
  right: 25%; animation-delay: 2s;
}
@keyframes ti2-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes ti2-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ti2-crowd {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

/* sailing-to-pylos */
.scn-sailing-to-pylos {
  background: linear-gradient(180deg, #f0a060 0%, #d08040 30%, #a06030 50%, #6a4050 75%, #2a2a3a 100%), radial-gradient(ellipse at 50% 20%, #f0c080 0%, transparent 70%);
}
.scn-sailing-to-pylos .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0b070 0%, #c08050 60%, #6a4050 100%);
  animation: ti3-sky 30s ease-in-out infinite alternate;
}
.scn-sailing-to-pylos .sun {
  position: absolute; bottom: 50%; left: 50%; width: 12%; height: 12%; transform: translate(-50%, 50%);
  background: radial-gradient(circle, #ffd080 0%, #e0a050 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(224,160,80,0.4);
  animation: ti3-sun 12s ease-in-out infinite alternate;
}
.scn-sailing-to-pylos .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a4a5a 0%, #1a2a3a 100%);
  animation: ti3-sea 8s ease-in-out infinite alternate;
}
.scn-sailing-to-pylos .ship-hull {
  position: absolute; bottom: 38%; left: 50%; width: 18%; height: 8%; transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%;
  animation: ti3-ship 6s ease-in-out infinite;
}
.scn-sailing-to-pylos .mast {
  position: absolute; bottom: 46%; left: 50%; width: 2%; height: 20%; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 2px;
}
.scn-sailing-to-pylos .sail {
  position: absolute; bottom: 46%; left: 40%; width: 20%; height: 18%;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  transform-origin: bottom center;
  animation: ti3-sail 8s ease-in-out infinite;
}
.scn-sailing-to-pylos .wave {
  position: absolute; bottom: 38%; left: 0; right: 0; height: 4%;
  background: linear-gradient(180deg, #3a5a6a 0%, transparent 100%);
  border-radius: 50%;
  animation: ti3-wave 4s ease-in-out infinite;
}
.scn-sailing-to-pylos .wave-1 {
  animation-delay: 0s;
}
.scn-sailing-to-pylos .wave-2 {
  bottom: 35%; animation-delay: 1s;
}
@keyframes ti3-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ti3-sun {
  0% { transform: translate(-50%, 50%) scale(1); opacity: 0.9; }
  50% { transform: translate(-50%, 50%) scale(1.1); opacity: 1; }
  100% { transform: translate(-50%, 50%) scale(0.95); opacity: 0.85; }
}
@keyframes ti3-sea {
  0% { background-position: 0% 0%; }
  100% { background-position: 10% 10%; }
}
@keyframes ti3-ship {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); }
}
@keyframes ti3-sail {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(1.1) rotate(1deg); }
}
@keyframes ti3-wave {
  0% { transform: translateX(0); }
  50% { transform: translateX(5%); }
  100% { transform: translateX(0); }
}

/* athena-revealed-and-wedding-feast */
.scn-athena-revealed-and-wedding-feast {
  background: linear-gradient(180deg, #5a3020 0%, #4a2018 50%, #2a1010 100%), radial-gradient(ellipse at 50% 0%, #e08040 0%, transparent 70%);
}
.scn-athena-revealed-and-wedding-feast .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2018 0%, #1a0a08 100%);
}
.scn-athena-revealed-and-wedding-feast .room-wall {
  position: absolute; bottom: 30%; left: 0; right: 0; top: 0;
  background: linear-gradient(180deg, #6a4030 0%, #4a2820 100%);
}
.scn-athena-revealed-and-wedding-feast .table {
  position: absolute; bottom: 32%; left: 30%; right: 30%; height: 6%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 4px;
}
.scn-athena-revealed-and-wedding-feast .fire {
  position: absolute; bottom: 28%; left: 20%; width: 8%; height: 12%;
  background: radial-gradient(ellipse at 50% 80%, #ffa060 0%, #e06030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(224,96,48,0.5);
  animation: ti4-fire 3s ease-in-out infinite alternate;
}
.scn-athena-revealed-and-wedding-feast .guest {
  position: absolute; bottom: 30%; height: 20%; width: 8%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  animation: ti4-guest 5s ease-in-out infinite;
}
.scn-athena-revealed-and-wedding-feast .guest-1 {
  left: 35%; animation-delay: 0s;
}
.scn-athena-revealed-and-wedding-feast .guest-2 {
  right: 35%; animation-delay: 1.5s;
}
.scn-athena-revealed-and-wedding-feast .figure-athena-glow {
  position: absolute; bottom: 38%; left: 50%; width: 10%; height: 22%; transform: translateX(-50%);
  background: linear-gradient(180deg, #f0c0a0 0%, #c08870 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 60px 20px rgba(240,192,160,0.6);
  animation: ti4-athena 8s ease-in-out infinite alternate;
}
.scn-athena-revealed-and-wedding-feast .figure-telemachus-seated {
  position: absolute; bottom: 30%; right: 22%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ti4-telemachus 6s ease-in-out infinite;
}
@keyframes ti4-fire {
  0% { transform: scale(1) rotate(0deg); opacity: 0.9; }
  50% { transform: scale(1.15) rotate(5deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(-3deg); opacity: 0.85; }
}
@keyframes ti4-guest {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes ti4-athena {
  0% { opacity: 0.8; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.9; transform: translateX(-50%) scale(0.98); }
}
@keyframes ti4-telemachus {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}

/* Scene: bed-test (firelit, dark) */
.scn-bed-test {
  background:
    linear-gradient(180deg, #2b0e05 0%, #4a1a0a 30%, #6b2b12 60%, #3a1508 100%),
    radial-gradient(ellipse at 30% 50%, #c05c20 0%, transparent 70%);
}
.scn-bed-test .bt-hall { position:absolute; inset:0; background: linear-gradient(135deg, #140400 30%, #2b0e05 60%, #1a0800 100%); opacity:.6; }
.scn-bed-test .bt-fire { position:absolute; bottom:20%; left:45%; width:40px; height:70px; background: radial-gradient(circle at 50% 0%, #ff8c40 0%, #d06020 50%, #4a1a0a 100%); border-radius:50% 50% 0 0; box-shadow:0 0 60px 30px #d06020, 0 0 120px 60px rgba(208,96,32,.3); animation: bt-flicker .4s ease-in-out infinite alternate; }
.scn-bed-test .bt-ulysses { position:absolute; bottom:18%; left:40%; width:30px; height:80px; background: linear-gradient(180deg, #0a0200 0%, #1a0800 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform: translateX(-10px); animation: bt-step 2s ease-in-out infinite; }
.scn-bed-test .bt-rope-left { position:absolute; top:0; left:35%; width:4px; height:80%; background: linear-gradient(180deg, #4a2a1a, #1a0a00); border-radius:2px; transform:rotate(-5deg); animation: bt-sway 5s ease-in-out infinite; }
.scn-bed-test .bt-rope-right { position:absolute; top:0; right:35%; width:4px; height:80%; background: linear-gradient(180deg, #4a2a1a, #1a0a00); border-radius:2px; transform:rotate(5deg); animation: bt-sway 5s ease-in-out infinite reverse; }
.scn-bed-test .bt-shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent, #0a0200 80%); }
.scn-bed-test .bt-smoke { position:absolute; top:40%; left:30%; width:100px; height:60px; background: radial-gradient(ellipse, rgba(80,60,40,.4) 0%, transparent 70%); filter:blur(8px); animation: bt-drift 12s linear infinite; }
@keyframes bt-flicker { 0% { opacity:.7; transform: scaleY(1) } 33% { opacity:1; transform: scaleY(1.05) } 66% { opacity:.8; transform: scaleY(.95) } 100% { opacity:.9; transform: scaleY(1.02) } }
@keyframes bt-step { 0% { transform: translateX(-10px) rotate(-1deg) } 50% { transform: translateX(0px) rotate(1deg) } 100% { transform: translateX(-10px) rotate(-1deg) } }
@keyframes bt-sway { 0% { transform: rotate(-5deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-5deg) } }
@keyframes bt-drift { 0% { transform: translate(0,0) scale(1); opacity:.5; } 50% { transform: translate(30px,-20px) scale(1.3); opacity:.3; } 100% { transform: translate(60px,0) scale(1); opacity:.5; } }

/* Scene: item-olive-bed (warm, dim interior) */
.scn-item-olive-bed {
  background:
    linear-gradient(180deg, #1c0f06 0%, #3a2212 40%, #4a2e1a 60%, #1c0f06 100%),
    radial-gradient(ellipse at 50% 100%, #5a3a22 0%, transparent 70%);
}
.scn-item-olive-bed .ob-bg { position:absolute; inset:0; background: linear-gradient(45deg, #1c0f06 0%, #2a1a0e 50%, #1c0f06 100%); opacity:.5; }
.scn-item-olive-bed .ob-bed { position:absolute; bottom:20%; left:20%; width:60%; height:35%; background: linear-gradient(180deg, #3a2212 0%, #1c0f06 100%); border-radius:6px 6px 20px 20px; box-shadow: 0 -6px 12px rgba(0,0,0,.6); }
.scn-item-olive-bed .ob-figures { position:absolute; bottom:22%; left:40%; width:50px; height:40px; background: radial-gradient(ellipse 40px 30px at 50% 80%, #1c0f06 0%, transparent 100%); border-radius:50%; animation: ob-embrace 6s ease-in-out infinite; }
.scn-item-olive-bed .ob-lamp { position:absolute; bottom:45%; right:25%; width:14px; height:20px; background: radial-gradient(circle at 50% 0%, #ffd080 0%, #c08040 70%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,.3); animation: ob-glow 3s ease-in-out infinite alternate; }
.scn-item-olive-bed .ob-window { position:absolute; top:25%; left:10%; width:60px; height:80px; background: #2a1a0e; border:4px solid #3a2212; border-radius:4px; }
.scn-item-olive-bed .ob-dawn-trace { position:absolute; top:20%; left:10%; width:60px; height:80px; background: linear-gradient(135deg, rgba(200,170,140,.4) 0%, transparent 60%); border-radius:4px; animation: ob-dawn 10s ease-in-out infinite alternate; }
@keyframes ob-embrace { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.05) translateY(-2px) } 100% { transform: scale(1) translateY(0) } }
@keyframes ob-glow { 0% { box-shadow: 0 0 20px 8px #c08040; opacity:.8 } 50% { box-shadow: 0 0 40px 16px #ffd080; opacity:1 } 100% { box-shadow: 0 0 25px 10px #c08040; opacity:.9 } }
@keyframes ob-dawn { 0% { opacity:0; } 50% { opacity:.5; } 100% { opacity:.8; } }

/* Scene: item-oar (warm, sunlit) */
.scn-item-oar {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0ff 30%, #d4f0ff 60%, #a8c8e0 100%),
    radial-gradient(ellipse at 50% 0%, #ffe888 0%, transparent 70%);
}
.scn-item-oar .io-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 100%); }
.scn-item-oar .io-ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8b9a4a 0%, #5a6a2a 100%); border-radius: 30% 70% 0 0 / 50% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.2); }
.scn-item-oar .io-oar { position:absolute; bottom:15%; left:60%; width:12px; height:120px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 4px; transform: rotate(15deg); transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: io-sway 4s ease-in-out infinite; }
.scn-item-oar .io-tree { position:absolute; bottom:35%; left:15%; width:60px; height:100px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,.2); }
.scn-item-oar .io-barn { position:absolute; bottom:30%; left:35%; width:70px; height:50px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 6px 6px 2px 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-item-oar .io-sun { position:absolute; top:10%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #ffe888 0%, #ffd060 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(255,216,96,.3); animation: io-sunrise 15s ease-in-out infinite alternate; }
.scn-item-oar .io-cloud { position:absolute; top:20%; left:10%; width:100px; height:20px; background: rgba(255,255,255,.6); border-radius:50%; filter: blur(6px); animation: io-drift 30s linear infinite; }
@keyframes io-sway { 0% { transform: rotate(15deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(15deg) } }
@keyframes io-sunrise { 0% { transform: scale(.8); opacity:.8 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(.95); opacity:.9 } }
@keyframes io-drift { 0% { transform: translateX(-50px) } 100% { transform: translateX(150vw) } }

/* Scene: peace-covenant (tense, overcast) */
.scn-peace-covenant {
  background:
    linear-gradient(180deg, #4a4a5a 0%, #5a5a6a 30%, #3a3a4a 60%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 100%, #6a6a7a 0%, transparent 70%);
}
.scn-peace-covenant .pc-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 50%, #3a3a4a 100%); animation: pc-sky 8s ease-in-out infinite alternate; }
.scn-peace-covenant .pc-ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; }
.scn-peace-covenant .pc-altar { position:absolute; bottom:28%; left:50%; width:50px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-peace-covenant .pc-figure-left { position:absolute; bottom:25%; left:30%; width:30px; height:60px; background: #1a1a0a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: pc-tremble .3s ease-in-out infinite; }
.scn-peace-covenant .pc-figure-right { position:absolute; bottom:25%; right:30%; width:30px; height:60px; background: #1a1a0a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(5deg); animation: pc-tremble .3s ease-in-out infinite reverse; }
.scn-peace-covenant .pc-spear { position:absolute; bottom:40%; left:35%; width:4px; height:50px; background: #6a5a4a; transform: rotate(-10deg); transform-origin: bottom center; animation: pc-spear .5s ease-in-out infinite alternate; }
.scn-peace-covenant .pc-flash { position:absolute; top:10%; left:50%; width:20px; height:20px; background: #ffffff; border-radius: 50% 0 50% 0; transform: translateX(-50%) rotate(45deg); box-shadow: 0 0 30px 15px rgba(255,255,255,.5); animation: pc-flash 4s ease-in-out infinite; }
@keyframes pc-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pc-tremble { 0% { transform: translate(0,0) rotate(-5deg) } 33% { transform: translate(1px,-1px) rotate(-3deg) } 66% { transform: translate(-1px,1px) rotate(-6deg) } 100% { transform: translate(0,0) rotate(-5deg) } }
@keyframes pc-spear { 0% { transform: rotate(-10deg) } 100% { transform: rotate(5deg) } }
@keyframes pc-flash { 0% { opacity:0; transform: translateX(-50%) rotate(45deg) scale(.5) } 20% { opacity:.8; transform: translateX(-50%) rotate(45deg) scale(1.5) } 40% { opacity:0; transform: translateX(-50%) rotate(45deg) scale(1) } 100% { opacity:0; } }

.scn-menelaus-feast-and-telemachus-weeps {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a0a 30%, #7a4a1a 60%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 60%, #b07030 0%, transparent 60%);
}
.scn-menelaus-feast-and-telemachus-weeps .mf-column {
  position: absolute; top: 0; bottom: 0; width: 12%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-menelaus-feast-and-telemachus-weeps .mf-column.left { left: 5%; }
.scn-menelaus-feast-and-telemachus-weeps .mf-column.right { right: 5%; }
.scn-menelaus-feast-and-telemachus-weeps .mf-fire {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 60px; background: radial-gradient(circle at bottom, #ff8822 0%, #cc4400 50%, #331100 80%);
  border-radius: 50% 50% 20% 20%; animation: mf-flame 2s ease-in-out infinite alternate;
  box-shadow: 0 0 40px 20px rgba(255,136,34,.4), 0 0 80px 40px rgba(204,68,0,.3);
}
.scn-menelaus-feast-and-telemachus-weeps .mf-table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1505 100%);
  border-radius: 10% 10% 0 0; transform: perspective(300px) rotateX(20deg); animation: mf-table 10s ease-in-out infinite;
}
.scn-menelaus-feast-and-telemachus-weeps .mf-menelaus {
  position: absolute; bottom: 33%; left: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #8a5a3a 0%, #3a1a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: mf-figure 6s ease-in-out infinite;
}
.scn-menelaus-feast-and-telemachus-weeps .mf-telemachus {
  position: absolute; bottom: 33%; right: 30%; width: 26px; height: 44px;
  background: linear-gradient(180deg, #6a4a2a 0%, #2a1505 100%); border-radius: 50% 50% 30% 30% / 60% 60% 35% 35%;
  transform-origin: bottom center; animation: mf-grief 4s ease-in-out infinite;
}
.scn-menelaus-feast-and-telemachus-weeps .mf-cup {
  position: absolute; bottom: 30%; left: 40%; width: 10px; height: 12px;
  background: radial-gradient(circle at 50% 40%, #d4a050 0%, #7a4a20 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px 2px rgba(200,120,40,.3);
  animation: mf-cup 3s ease-in-out infinite alternate;
}
.scn-menelaus-feast-and-telemachus-weeps .mf-spark {
  position: absolute; bottom: 55%; left: 50%; width: 3px; height: 3px;
  background: #ffcc66; border-radius: 50%; box-shadow: 0 0 6px 2px #ffcc66;
  animation: mf-spark 1.5s linear infinite;
}
@keyframes mf-flame {
  0% { transform: translateX(-50%) scaleY(1) rotate(0deg); opacity: .9; }
  50% { transform: translateX(-50%) scaleY(1.15) rotate(2deg); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(.95) rotate(-2deg); opacity: .8; }
}
@keyframes mf-table {
  0% { transform: perspective(300px) rotateX(20deg) translateY(0); }
  50% { transform: perspective(300px) rotateX(18deg) translateY(2px); }
  100% { transform: perspective(300px) rotateX(20deg) translateY(0); }
}
@keyframes mf-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mf-grief {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(2px) rotate(-1deg) scaleX(.95); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(1px) rotate(2deg) scaleX(1); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes mf-cup {
  0% { transform: scale(1) rotate(-5deg); }
  100% { transform: scale(1.1) rotate(5deg); }
}
@keyframes mf-spark {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  100% { transform: translateY(-30px) scale(0); opacity: 0; }
}

.scn-helen-drugges-wine {
  background: linear-gradient(180deg, #0f0b1a 0%, #1c1330 40%, #2d1d4a 100%),
              radial-gradient(ellipse at 50% 60%, #3a255a 0%, transparent 70%);
}
.scn-helen-drugges-wine .hd-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0a0615 0%, #1a1030 100%);
  animation: hd-shadow 8s ease-in-out infinite alternate;
}
.scn-helen-drugges-wine .hd-table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 6%;
  background: linear-gradient(180deg, #5a3040 0%, #301820 100%); border-radius: 10%;
  transform: perspective(200px) rotateX(30deg); box-shadow: inset 0 0 20px rgba(0,0,0,.6);
}
.scn-helen-drugges-wine .hd-vessel {
  position: absolute; bottom: 24%; left: 48%; width: 20px; height: 28px;
  background: radial-gradient(circle at 30% 20%, #803060 0%, #401a30 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 5px rgba(128,48,96,.3);
  animation: hd-vessel 6s ease-in-out infinite alternate;
}
.scn-helen-drugges-wine .hd-helen {
  position: absolute; bottom: 23%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #6a3a4a 0%, #2a1020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 35% 35%;
  transform-origin: bottom; animation: hd-pour 5s ease-in-out infinite;
}
.scn-helen-drugges-wine .hd-fumes {
  position: absolute; bottom: 30%; left: 44%; width: 30px; height: 40px;
  background: radial-gradient(ellipse, rgba(180,100,150,.3) 0%, transparent 70%);
  filter: blur(8px); animation: hd-fumes 7s ease-in-out infinite alternate;
}
.scn-helen-drugges-wine .hd-silhouettes {
  position: absolute; bottom: 22%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #0c0618 0%, transparent 100%);
  border-radius: 20% 20% 0 0; animation: hd-sil 9s ease-in-out infinite;
}
@keyframes hd-shadow {
  0% { opacity: .5; }
  50% { opacity: .8; }
  100% { opacity: .6; }
}
@keyframes hd-vessel {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-2px) rotate(0deg) scale(1.02); }
  100% { transform: translateY(0) rotate(5deg); }
}
@keyframes hd-pour {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(5deg) translateY(-1px); }
  75% { transform: rotate(-3deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes hd-fumes {
  0% { transform: translateY(0) scale(1); opacity: .5; }
  50% { transform: translateY(-10px) scale(1.2); opacity: .3; }
  100% { transform: translateY(0) scale(1); opacity: .5; }
}
@keyframes hd-sil {
  0% { transform: scale(1); opacity: .2; }
  50% { transform: scale(1.03); opacity: .4; }
  100% { transform: scale(1); opacity: .2; }
}

.scn-suitor-plot-and-penelopes-grief {
  background: linear-gradient(180deg, #4b5b6a 0%, #3a4a5a 40%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 100%, #5a6a7a 0%, transparent 60%);
}
.scn-suitor-plot-and-penelopes-grief .sp-sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #6b7b8a 0%, #3a4a5a 100%);
  animation: sp-sky 12s ease-in-out infinite alternate;
}
.scn-suitor-plot-and-penelopes-grief .sp-colonnade {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 25%;
  background: repeating-linear-gradient(90deg, #3a4a5a 0%, #3a4a5a 4%, #2a3a4a 4%, #2a3a4a 8%);
  border-top: 2px solid #4a5a6a; box-shadow: 0 -4px 10px rgba(0,0,0,.3);
  animation: sp-colonnade 15s ease-in-out infinite alternate;
}
.scn-suitor-plot-and-penelopes-grief .sp-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.5);
}
.scn-suitor-plot-and-penelopes-grief .sp-suitors {
  position: absolute; bottom: 30%; left: 15%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: sp-suitors 8s ease-in-out infinite;
}
.scn-suitor-plot-and-penelopes-grief .sp-penelope {
  position: absolute; bottom: 55%; right: 5%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #5a6a7a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  animation: sp-grief 6s ease-in-out infinite;
}
.scn-suitor-plot-and-penelopes-grief .sp-discus {
  position: absolute; bottom: 33%; left: 25%; width: 12px; height: 12px;
  background: radial-gradient(circle, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50%; box-shadow: 0 4px 6px rgba(0,0,0,.4);
  animation: sp-discus 3s ease-in-out infinite alternate;
}
@keyframes sp-sky {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .6; }
}
@keyframes sp-colonnade {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes sp-suitors {
  0% { transform: translateX(0); }
  25% { transform: translateX(5px); }
  75% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}
@keyframes sp-grief {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(3deg); }
}
@keyframes sp-discus {
  0% { transform: scale(1) rotate(0deg); }
  100% { transform: scale(1.1) rotate(180deg); }
}

.scn-penelopes-vision-and-gods-council {
  background: linear-gradient(180deg, #0a0a1f 0%, #12102a 50%, #1a1535 100%),
              radial-gradient(ellipse at 30% 50%, #2a2040 0%, transparent 70%);
}
.scn-penelopes-vision-and-gods-council .pv-chamber {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0c0a1a 0%, #161330 100%);
  animation: pv-shift 12s ease-in-out infinite alternate;
}
.scn-penelopes-vision-and-gods-council .pv-bed {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 15%;
  background: linear-gradient(180deg, #2a2040 0%, #1a1030 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  transform: perspective(300px) rotateX(20deg);
}
.scn-penelopes-vision-and-gods-council .pv-penelope {
  position: absolute; bottom: 28%; left: 40%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a5a 0%, #1a1030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 35% 35%;
  transform-origin: bottom; animation: pv-sleep 6s ease-in-out infinite;
}
.scn-penelopes-vision-and-gods-council .pv-vision {
  position: absolute; top: 15%; left: 30%; right: 30%; height: 40%;
  background: radial-gradient(ellipse, rgba(200,180,255,.15) 0%, transparent 70%);
  filter: blur(12px); animation: pv-appear 8s ease-in-out infinite alternate;
}
.scn-penelopes-vision-and-gods-council .pv-glow {
  position: absolute; top: 30%; left: 38%; width: 40px; height: 50px;
  background: radial-gradient(circle, rgba(220,200,255,.2) 0%, transparent 60%);
  border-radius: 50%; animation: pv-glow 5s ease-in-out infinite alternate;
}
.scn-penelopes-vision-and-gods-council .pv-orb {
  position: absolute; top: 25%; left: 44%; width: 6px; height: 6px;
  background: rgba(240,230,255,.8); border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(200,180,255,.3);
  animation: pv-orb 3s ease-in-out infinite alternate;
}
@keyframes pv-shift {
  0% { opacity: .6; }
  100% { opacity: .9; }
}
@keyframes pv-sleep {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.03) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes pv-appear {
  0% { transform: scale(.8); opacity: .2; }
  50% { transform: scale(1); opacity: .4; }
  100% { transform: scale(1.1); opacity: .3; }
}
@keyframes pv-glow {
  0% { transform: scale(1); opacity: .3; }
  100% { transform: scale(1.3); opacity: .6; }
}
@keyframes pv-orb {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-10px) scale(1.2); }
}

/* discus scene */
.scn-item-discus {
  background: linear-gradient(180deg, #6a9ec7 0%, #3a7aad 30%, #c8a860 100%), radial-gradient(ellipse at 30% 40%, #ffe080 0%, transparent 60%);
  overflow: hidden;
}
.scn-item-discus .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b0d4f0 0%, #6a9ec7 100%); animation: ds-sky 20s ease-in-out infinite alternate; }
.scn-item-discus .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #c8a860 0%, #9a7a40 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; }
.scn-item-discus .sun { position:absolute; top:8%; left:20%; width:60px; height:60px; background: radial-gradient(circle, #ffe680 0%, #f0b020 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px #f0b020; animation: ds-sun 5s ease-in-out infinite alternate; }
.scn-item-discus .discus { position:absolute; bottom:30%; left:50%; width:24px; height:6px; background: linear-gradient(90deg, #6a5a4a, #3a2a1a); border-radius: 50%; transform-origin: center; animation: ds-fly 4s cubic-bezier(0.25,0.1,0.25,1) infinite; }
.scn-item-discus .athlete { position:absolute; bottom:12%; right:20%; width:28px; height:58px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ds-throw 4s ease-in-out infinite; }
.scn-item-discus .shadow { position:absolute; bottom:11%; right:22%; width:30px; height:6px; background: rgba(0,0,0,0.3); border-radius:50%; animation: ds-shadow 4s ease-in-out infinite; }
.scn-item-discus .dust { position:absolute; bottom:14%; width:8px; height:8px; background: #d4b87a; border-radius:50%; filter: blur(2px); }
.scn-item-discus .d1 { left:35%; animation: ds-dust 3s ease-out infinite; }
.scn-item-discus .d2 { left:45%; animation: ds-dust 4s ease-out infinite 1.5s; }
@keyframes ds-sky { 0% { opacity:1; } 50% { opacity:0.85; } 100% { opacity:1; } }
@keyframes ds-sun { 0% { box-shadow: 0 0 40px 10px #f0b020; } 50% { box-shadow: 0 0 80px 25px #ffe080; } 100% { box-shadow: 0 0 50px 15px #f0b020; } }
@keyframes ds-fly { 0% { transform: translateX(0) translateY(0) rotate(0); opacity:1; } 20% { transform: translateX(40px) translateY(-60px) rotate(180deg); } 40% { transform: translateX(80px) translateY(-80px) rotate(360deg); opacity:1; } 60% { transform: translateX(120px) translateY(-40px) rotate(540deg); } 80% { transform: translateX(160px) translateY(-10px) rotate(720deg); opacity:0.8; } 100% { transform: translateX(200px) translateY(0) rotate(900deg); opacity:0; } }
@keyframes ds-throw { 0% { transform: rotate(-20deg) scale(0.9); } 25% { transform: rotate(-40deg) scale(1); } 50% { transform: rotate(-20deg) scale(0.9); } 75% { transform: rotate(0deg) scale(1); } 100% { transform: rotate(-20deg) scale(0.9); } }
@keyframes ds-shadow { 0% { transform: scaleX(1); } 25% { transform: scaleX(0.5); } 50% { transform: scaleX(1.2); } 75% { transform: scaleX(0.8); } 100% { transform: scaleX(1); } }
@keyframes ds-dust { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(-20px) scale(2); opacity:0.3; } 100% { transform: translateY(-40px) scale(3); opacity:0; } }

/* sword gift scene */
.scn-item-sword-gift {
  background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 40%, #2a0a00 100%), radial-gradient(ellipse at 50% 30%, #a04020 0%, transparent 70%);
}
.scn-item-sword-gift .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #4a2a1a, #2a1a0a); animation: sg-flicker 5s ease-in-out infinite; }
.scn-item-sword-gift .fire { position:absolute; bottom:5%; left:50%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 100%, #ff6800 0%, #e04000 40%, transparent 100%); border-radius:50%; filter: blur(4px); animation: sg-fire 0.5s ease-in-out infinite alternate; box-shadow: 0 0 80px 30px #e04000; }
.scn-item-sword-gift .chest { position:absolute; bottom:10%; left:10%; width:70px; height:40px; background: linear-gradient(180deg, #6a4a2a, #4a2a10); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.6); animation: sg-chest 6s ease-in-out infinite; }
.scn-item-sword-gift .sword { position:absolute; bottom:15%; left:25%; width:60px; height:6px; background: linear-gradient(180deg, #b0a080, #8a7050); border-radius: 20%; transform: rotate(-30deg); box-shadow: 0 0 10px 2px #b08040; animation: sg-sword 3s ease-in-out infinite alternate; }
.scn-item-sword-gift .cloak { position:absolute; bottom:18%; left:45%; width:40px; height:50px; background: linear-gradient(180deg, #7a3a2a, #4a1a0a); border-radius: 40% 60% 20% 80% / 70% 30% 70% 30%; animation: sg-cloak 7s ease-in-out infinite; }
.scn-item-sword-gift .gold-pile { position:absolute; bottom:12%; left:35%; width:30px; height:20px; background: radial-gradient(circle at 30% 30%, #e0c060, #b09040); border-radius: 70% 70% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: sg-gold 8s ease-in-out infinite alternate; }
.scn-item-sword-gift .glow { position:absolute; bottom:10%; left:20%; width:100px; height:100px; background: radial-gradient(circle, rgba(255,128,0,0.3) 0%, transparent 70%); animation: sg-glow 4s ease-in-out infinite alternate; }
@keyframes sg-flicker { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes sg-fire { 0% { transform: scaleY(1) scaleX(0.8); opacity:0.9; } 100% { transform: scaleY(1.2) scaleX(1); opacity:1; } }
@keyframes sg-chest { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes sg-sword { 0% { transform: rotate(-30deg) scale(1); } 50% { transform: rotate(-20deg) scale(1.05); } 100% { transform: rotate(-30deg) scale(1); } }
@keyframes sg-cloak { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes sg-gold { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sg-glow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

/* odysseus begins tale scene */
.scn-odysseus-begins-tale {
  background: linear-gradient(180deg, #e0d8c0 0%, #c8b8a0 50%, #a09080 100%), radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 70%);
}
.scn-odysseus-begins-tale .hall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #d0c4b0, #b8aa98); }
.scn-odysseus-begins-tale .pillar { position:absolute; top:0; width:24px; height:100%; background: linear-gradient(180deg, #b0a090, #8a7a6a); border-radius: 20% 20% 0 0; }
.scn-odysseus-begins-tale .left { left:5%; }
.scn-odysseus-begins-tale .right { right:5%; }
.scn-odysseus-begins-tale .odysseus { position:absolute; bottom:15%; left:48%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a, #1a0a00); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ot-figure 8s ease-in-out infinite; }
.scn-odysseus-begins-tale .throne { position:absolute; bottom:12%; left:45%; width:40px; height:30px; background: linear-gradient(180deg, #8a7050, #5a3a20); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 12px rgba(0,0,0,0.3); animation: ot-throne 10s ease-in-out infinite alternate; }
.scn-odysseus-begins-tale .ship-symbol { position:absolute; top:30%; left:50%; width:40px; height:15px; background: linear-gradient(90deg, #4a3a2a, #6a5a4a); border-radius: 50% 50% 0 0; clip-path: polygon(0 100%, 30% 0, 70% 0, 100% 100%); animation: ot-ship 15s ease-in-out infinite alternate; }
.scn-odysseus-begins-tale .light-beam { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,248,230,0.4) 0%, transparent 100%); animation: ot-light 5s ease-in-out infinite alternate; }
@keyframes ot-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ot-throne { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-1px); } 100% { transform: scale(1); } }
@keyframes ot-ship { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes ot-light { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* cyclops blinding scene */
.scn-cyclops-blinding {
  background: linear-gradient(180deg, #1a0a08 0%, #2a1a10 40%, #0a0500 100%), radial-gradient(ellipse at 50% 70%, #5a2a10 0%, transparent 60%);
}
.scn-cyclops-blinding .cave-back { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a12, #1a0a08); animation: cb-cave 10s ease-in-out infinite alternate; }
.scn-cyclops-blinding .giant-silhouette { position:absolute; bottom:10%; left:50%; width:100px; height:140px; background: linear-gradient(180deg, #1a0a06, #0a0502); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: translateX(-50%); animation: cb-giant 6s ease-in-out infinite; }
.scn-cyclops-blinding .stake { position:absolute; bottom:25%; left:30%; width:8px; height:60px; background: linear-gradient(180deg, #5a3a1a, #2a1a0a); border-radius: 40%; transform: rotate(30deg); transform-origin: bottom center; animation: cb-stake 2s ease-in-out infinite; }
.scn-cyclops-blinding .flame { position:absolute; bottom:30%; left:28%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 100%, #e06820, #a03000, transparent); border-radius: 50%; filter: blur(3px); animation: cb-flame 0.8s ease-in-out infinite alternate; }
.scn-cyclops-blinding .eye-glow { position:absolute; bottom:50%; left:50%; width:30px; height:20px; background: radial-gradient(circle at 50% 50%, #c06030 0%, #8a2010 60%, transparent 100%); border-radius: 50%; transform: translateX(-50%); animation: cb-eye 3s ease-in-out infinite; }
.scn-cyclops-blinding .blood-spatter { position:absolute; bottom:35%; left:50%; width:40px; height:20px; background: radial-gradient(ellipse at 30% 50%, #7a2a1a 0%, transparent 100%); filter: blur(2px); animation: cb-blood 5s ease-in-out infinite; }
.scn-cyclops-blinding .rock-floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1210, #0a0605); border-radius: 30% 70% 0 0 / 20% 20% 0 0; }
@keyframes cb-cave { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes cb-giant { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 30% { transform: translateX(-50%) scale(1.02) rotate(2deg); } 60% { transform: translateX(-50%) scale(1) rotate(-2deg); } 100% { transform: translateX(-50%) scale(1) rotate(0deg); } }
@keyframes cb-stake { 0% { transform: rotate(30deg) scaleY(1); } 50% { transform: rotate(20deg) scaleY(1.2); } 100% { transform: rotate(30deg) scaleY(1); } }
@keyframes cb-flame { 0% { transform: scale(1) translateY(0); opacity:0.9; } 100% { transform: scale(1.15) translateY(-5px); opacity:1; } }
@keyframes cb-eye { 0% { opacity:0.5; transform: translateX(-50%) scaleX(0.8); } 50% { opacity:1; transform: translateX(-50%) scaleX(1.2); } 100% { opacity:0.7; transform: translateX(-50%) scaleX(0.9); } }
@keyframes cb-blood { 0% { opacity:0.2; transform: translateX(-50%) scale(1); } 50% { opacity:0.6; transform: translateX(-50%) scale(1.3); } 100% { opacity:0.3; transform: translateX(-50%) scale(0.9); } }

.scn-telemachus-returns-to-eumaeus { background:
  linear-gradient(180deg, #3a2818 0%, #4a3828 30%, #2a1a0a 70%),
  radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, #1a0a00 100%); }
.scn-telemachus-returns-to-eumaeus .hut-wall { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:0 0 20% 20%; }
.scn-telemachus-returns-to-eumaeus .hut-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); }
.scn-telemachus-returns-to-eumaeus .hearth { position:absolute; bottom:25%; left:25%; width:40px; height:20px; background:#2a1a0a; border-radius:50% 50% 0 0; transform:translateX(-50%); }
.scn-telemachus-returns-to-eumaeus .hearth-fire { position:absolute; bottom:27%; left:25%; width:24px; height:30px; background:radial-gradient(circle, #ff8840 0%, #d44a1a 60%, transparent 100%); border-radius:50%; filter:blur(3px); animation:te-fire 0.8s ease-in-out infinite alternate; }
.scn-telemachus-returns-to-eumaeus .figure-eumaeus { position:absolute; bottom:30%; left:35%; width:20px; height:40px; background:linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:te-bow 6s ease-in-out infinite; }
.scn-telemachus-returns-to-eumaeus .figure-ulysses { position:absolute; bottom:30%; left:55%; width:22px; height:42px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:te-sit 8s ease-in-out infinite; }
.scn-telemachus-returns-to-eumaeus .figure-telemachus { position:absolute; bottom:30%; left:70%; width:18px; height:38px; background:linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:te-enter 10s ease-in-out infinite; }
.scn-telemachus-returns-to-eumaeus .dog { position:absolute; bottom:28%; left:60%; width:12px; height:16px; background:linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom; animation:te-tail 1.2s ease-in-out infinite; }
@keyframes te-fire   { 0% { transform:scale(1) translateY(0); opacity:.8; } 50% { transform:scale(1.1) translateY(-2px); opacity:1; } 100% { transform:scale(1) translateY(0); opacity:.85; } }
@keyframes te-bow    { 0%,100% { transform:rotate(0); } 50% { transform:rotate(-5deg); } }
@keyframes te-sit    { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1px); } }
@keyframes te-enter  { 0% { transform:translateX(20px) scale(0.95); opacity:.6; } 50% { transform:translateX(0) scale(1); opacity:1; } 100% { transform:translateX(0) scale(1); } }
@keyframes te-tail   { 0%,100% { transform:rotate(-10deg); } 50% { transform:rotate(10deg); } }

.scn-revelation-and-plan { background:
  linear-gradient(180deg, #2a1a10 0%, #4a2a18 40%, #1a0a00 100%),
  radial-gradient(ellipse at 30% 70%, #8a4a20 0%, transparent 60%); }
.scn-revelation-and-plan .hut-shadow { position:absolute; inset:0; background:linear-gradient(135deg, #1a0a00 0%, transparent 60%); }
.scn-revelation-and-plan .hearth-fire { position:absolute; bottom:25%; left:30%; width:30px; height:40px; background:radial-gradient(circle, #ffaa40 0%, #d44a1a 60%, transparent 100%); filter:blur(4px); animation:rp-fire 0.6s ease-in-out infinite alternate; }
.scn-revelation-and-plan .figure-ulysses { position:absolute; bottom:28%; left:35%; width:22px; height:44px; background:linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:rp-stand 4s ease-in-out infinite; }
.scn-revelation-and-plan .figure-telemachus { position:absolute; bottom:28%; left:55%; width:18px; height:38px; background:linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:rp-recoil 3s ease-in-out infinite; }
.scn-revelation-and-plan .figure-minerva { position:absolute; bottom:28%; left:70%; width:24px; height:46px; background:linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 0 20px #bfa070; animation:rp-rises 10s ease-in-out infinite; }
.scn-revelation-and-plan .divine-glow { position:absolute; bottom:28%; left:70%; width:40px; height:60px; background:radial-gradient(circle, rgba(191,160,112,0.4) 0%, transparent 70%); transform:translate(-30%,-20%); animation:rp-glow 2s ease-in-out infinite alternate; }
.scn-revelation-and-plan .spear { position:absolute; bottom:28%; left:65%; width:4px; height:30px; background:linear-gradient(180deg, #5a3a1a 0%, #1a0a00 100%); border-radius:2px; transform:rotate(-15deg); transform-origin:bottom; animation:rp-spear 5s ease-in-out infinite; }
@keyframes rp-fire   { 0% { opacity:.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.08); } 100% { opacity:.7; transform:scale(.92); } }
@keyframes rp-stand  { 0%,100% { transform:rotate(0) translateY(0); } 50% { transform:rotate(2deg) translateY(-1px); } }
@keyframes rp-recoil { 0%,100% { transform:translateX(0) scale(1); } 50% { transform:translateX(-4px) scale(0.95); } }
@keyframes rp-rises  { 0% { transform:translateY(10px) scale(0.9); opacity:.6; } 50% { transform:translateY(0) scale(1); opacity:1; } 100% { transform:translateY(0) scale(1); } }
@keyframes rp-glow   { 0% { opacity:.3; transform:scale(1); } 100% { opacity:.7; transform:scale(1.3); } }
@keyframes rp-spear  { 0%,100% { transform:rotate(-15deg); } 50% { transform:rotate(-5deg); } }

.scn-argos-and-antinous { background:
  linear-gradient(180deg, #95b8d0 0%, #e5f0f5 40%, #b5c8d0 100%),
  radial-gradient(ellipse at 70% 30%, #f5e8c0 0%, transparent 50%); }
.scn-argos-and-antinous .sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #7aa9c0 0%, #b5d0e0 100%); }
.scn-argos-and-antinous .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); }
.scn-argos-and-antinous .fountain { position:absolute; bottom:32%; left:20%; width:30px; height:20px; background:linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius:10% 10% 20% 20%; box-shadow:0 4px 8px rgba(0,0,0,0.3); animation:aa-water 1s ease-in-out infinite alternate; }
.scn-argos-and-antinous .dog-argos { position:absolute; bottom:30%; left:35%; width:16px; height:14px; background:linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom; animation:aa-wag 0.8s ease-in-out infinite; }
.scn-argos-and-antinous .beggar { position:absolute; bottom:30%; left:45%; width:20px; height:42px; background:linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(5deg); animation:aa-stagger 7s ease-in-out infinite; }
.scn-argos-and-antinous .goatherd { position:absolute; bottom:30%; left:60%; width:18px; height:40px; background:linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:aa-point 4s ease-in-out infinite; }
.scn-argos-and-antinous .suitor-antinous { position:absolute; bottom:30%; left:75%; width:22px; height:44px; background:linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:aa-stand 12s ease-in-out infinite; }
@keyframes aa-water  { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.05); } 100% { transform:scaleY(1); } }
@keyframes aa-wag    { 0%,100% { transform:rotate(-15deg); } 50% { transform:rotate(15deg); } }
@keyframes aa-stagger{ 0%,100% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(8deg) translateY(-2px); } }
@keyframes aa-point  { 0%,100% { transform:rotate(0); } 50% { transform:rotate(10deg); } }
@keyframes aa-stand  { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1px); } }

.scn-beggar-and-penelope-summon { background:
  linear-gradient(180deg, #c8b090 0%, #e8d8c0 30%, #b8a088 100%),
  radial-gradient(ellipse at 50% 0%, #f0e0c8 0%, transparent 60%); }
.scn-beggar-and-penelope-summon .palace-wall { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #b8a088 0%, #8a7050 100%); }
.scn-beggar-and-penelope-summon .palace-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #8a7050 0%, #5a4028 100%); }
.scn-beggar-and-penelope-summon .beggar { position:absolute; bottom:20%; left:30%; width:20px; height:40px; background:linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:bs-beg 6s ease-in-out infinite; }
.scn-beggar-and-penelope-summon .antinous { position:absolute; bottom:20%; left:50%; width:22px; height:44px; background:linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:bs-throw 3s ease-in-out infinite; }
.scn-beggar-and-penelope-summon .suitors-left { position:absolute; bottom:20%; left:15%; width:60px; height:40px; background:radial-gradient(ellipse, #6a5a4a 0%, transparent 70%); filter:blur(6px); animation:bs-jeer 2s ease-in-out infinite alternate; }
.scn-beggar-and-penelope-summon .suitors-right { position:absolute; bottom:20%; left:65%; width:60px; height:40px; background:radial-gradient(ellipse, #5a4a3a 0%, transparent 70%); filter:blur(6px); animation:bs-jeer 2s ease-in-out infinite alternate-reverse; }
.scn-beggar-and-penelope-summon .footstool { position:absolute; bottom:25%; left:45%; width:10px; height:8px; background:#6a4a2a; border-radius:10%; animation:bs-fly 3s ease-in-out infinite; }
.scn-beggar-and-penelope-summon .messenger { position:absolute; bottom:20%; left:80%; width:16px; height:38px; background:linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:bs-enter 10s ease-in-out infinite; }
@keyframes bs-beg   { 0%,100% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-2px) rotate(2deg); } }
@keyframes bs-throw { 0%,100% { transform:rotate(0); } 50% { transform:rotate(20deg); } }
@keyframes bs-jeer  { 0% { transform:scaleY(1); opacity:.5; } 100% { transform:scaleY(1.1); opacity:.8; } }
@keyframes bs-fly   { 0% { transform:translate(0,0) rotate(0); } 25% { transform:translate(20px,-30px) rotate(45deg); } 50% { transform:translate(40px,0) rotate(90deg); } 75% { transform:translate(20px,10px) rotate(135deg); } 100% { transform:translate(0,0) rotate(180deg); } }
@keyframes bs-enter { 0% { transform:translateX(20px) scale(0.95); opacity:.6; } 50% { transform:translateX(0) scale(1); opacity:1; } 100% { transform:translateX(0); } }

/* Scene: suitors-omens – bright interior, tense mood, omen bird */
.scn-suitors-omens {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d9c29e 40%, #b8946a 100%),
    radial-gradient(ellipse at 30% 50%, #ffe6aa 0%, transparent 60%),
    radial-gradient(ellipse at 70% 30%, #fff4d6 0%, transparent 40%);
}
.scn-suitors-omens .hall-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e8d5b5 0%, #c09a6a 100%);
  border-bottom: 4px solid #5e3e1a;
}
.scn-suitors-omens .table {
  position: absolute;
  bottom: 20%;
  left: 10%;
  right: 10%;
  height: 6%;
  background: linear-gradient(180deg, #8b6b4a 0%, #5e3e1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: so-table 12s ease-in-out infinite alternate;
}
.scn-suitors-omens .figure-telemachus {
  position: absolute;
  bottom: 28%;
  left: 25%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #d4a373 0%, #8b5e3c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: so-figure 8s ease-in-out infinite;
}
.scn-suitors-omens .figure-suitors {
  position: absolute;
  bottom: 28%;
  left: 55%;
  width: 60px;
  height: 40px;
  background: radial-gradient(ellipse at 30% 40%, #b88a5e 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: so-suitors 6s ease-in-out infinite alternate;
}
.scn-suitors-omens .omen-bird {
  position: absolute;
  top: 15%;
  left: 40%;
  width: 30px;
  height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 60% 40%;
  transform: rotate(-20deg);
  animation: so-bird 10s ease-in-out infinite;
  filter: drop-shadow(0 0 6px rgba(0,0,0,0.5));
}
.scn-suitors-omens .shadow-bars {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(90deg, rgba(0,0,0,0.08) 0px 2px, transparent 2px 20px);
  animation: so-shadows 15s linear infinite;
}
.scn-suitors-omens .lantern {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 8px;
  height: 12px;
  background: radial-gradient(circle, #ffd699 0%, #c08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,214,153,0.6), 0 0 40px 12px rgba(255,214,153,0.3);
  animation: so-lantern 4s ease-in-out infinite alternate;
}
@keyframes so-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes so-figure { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes so-suitors { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes so-bird { 0% { transform: translateX(0) rotate(-20deg); } 25% { transform: translateX(10px) rotate(-15deg); } 50% { transform: translateX(-5px) rotate(-25deg); } 75% { transform: translateX(15px) rotate(-10deg); } 100% { transform: translateX(0) rotate(-20deg); } }
@keyframes so-shadows { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes so-lantern { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.85; } }

/* Scene: bow-contest – dark mood, bright interior, bow and axes */
.scn-bow-contest {
  background: 
    linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 30%, #c0a080 0%, transparent 70%);
}
.scn-bow-contest .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #5e4a3a 0%, #3a2a1a 100%);
}
.scn-bow-contest .back-wall {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 65%;
  background: linear-gradient(135deg, #8a7a6a 0%, #4a3a2a 100%);
  border-bottom: 3px solid #2a1a0a;
}
.scn-bow-contest .bow {
  position: absolute;
  bottom: 40%;
  left: 30%;
  width: 60px;
  height: 20px;
  background: radial-gradient(ellipse at 30% 50%, #d4a373 0%, #8b5e3c 100%);
  border-radius: 50%;
  transform: rotate(-30deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: bc-bow 6s ease-in-out infinite alternate;
}
.scn-bow-contest .axes {
  position: absolute;
  bottom: 35%;
  left: 50%;
  width: 80px;
  height: 30px;
  background: linear-gradient(90deg, #7a5a3a 0%, #4a2a0a 100%);
  border-radius: 10%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: bc-axes 8s ease-in-out infinite;
}
.scn-bow-contest .figure-penelope {
  position: absolute;
  bottom: 30%;
  left: 15%;
  width: 18px;
  height: 48px;
  background: linear-gradient(180deg, #b8a090 0%, #6a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: bc-penelope 10s ease-in-out infinite;
}
.scn-bow-contest .figure-suitors2 {
  position: absolute;
  bottom: 30%;
  left: 55%;
  width: 80px;
  height: 40px;
  background: linear-gradient(180deg, #7a6a5a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bc-suitors 5s ease-in-out infinite alternate;
}
.scn-bow-contest .blood-spatter {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 20px;
  height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #8b3a2a 0%, #5e1a1d 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: bc-blood 12s linear infinite;
}
.scn-bow-contest .candle-glow {
  position: absolute;
  bottom: 45%;
  left: 45%;
  width: 10px;
  height: 15px;
  background: radial-gradient(circle, #ffc080 0%, #c08040 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(255,192,128,0.5), 0 0 60px 16px rgba(255,192,128,0.2);
  animation: bc-candle 3s ease-in-out infinite alternate;
}
@keyframes bc-bow { 0% { transform: rotate(-30deg) scale(1); } 50% { transform: rotate(-35deg) scale(1.05); } 100% { transform: rotate(-30deg) scale(1); } }
@keyframes bc-axes { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes bc-penelope { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes bc-suitors { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.08); } 100% { transform: scaleY(1); } }
@keyframes bc-blood { 0% { opacity: 0.3; } 25% { opacity: 0.6; } 50% { opacity: 0.4; } 75% { opacity: 0.7; } 100% { opacity: 0.3; } }
@keyframes bc-candle { 0% { transform: scale(1); box-shadow: 0 0 30px 8px rgba(255,192,128,0.5); } 50% { transform: scale(1.2); box-shadow: 0 0 40px 12px rgba(255,192,128,0.7); } 100% { transform: scale(0.9); box-shadow: 0 0 25px 6px rgba(255,192,128,0.4); } }

/* Scene: item-bow-stringing – dark interior, Odysseus stringing bow */
.scn-item-bow-stringing {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 40%, #c08040 0%, transparent 70%);
}
.scn-item-bow-stringing .bg-temple {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #5e4a3a 0%, #2a1a0a 100%);
  /* no animation */
}
.scn-item-bow-stringing .figure-odysseus {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 22px;
  height: 55px;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bs-odysseus 8s ease-in-out infinite;
}
.scn-item-bow-stringing .bow-string {
  position: absolute;
  bottom: 45%;
  left: 30%;
  width: 50px;
  height: 4px;
  background: linear-gradient(90deg, #d4a373 0%, #c08040 100%);
  border-radius: 2px;
  transform: rotate(-40deg);
  box-shadow: 0 1px 4px rgba(0,0,0,0.6);
  animation: bs-string 6s ease-in-out infinite alternate;
}
.scn-item-bow-stringing .figure-telemachus2 {
  position: absolute;
  bottom: 28%;
  left: 55%;
  width: 16px;
  height: 45px;
  background: linear-gradient(180deg, #b8a090 0%, #6a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: bs-telemachus 10s ease-in-out infinite;
}
.scn-item-bow-stringing .figure-eumaeus {
  position: absolute;
  bottom: 28%;
  left: 15%;
  width: 18px;
  height: 42px;
  background: linear-gradient(180deg, #5e4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: bs-eumaeus 12s ease-in-out infinite;
}
.scn-item-bow-stringing .arrow {
  position: absolute;
  bottom: 42%;
  left: 40%;
  width: 30px;
  height: 2px;
  background: #b88a5e;
  transform: rotate(10deg);
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: bs-arrow 7s ease-in-out infinite alternate;
}
.scn-item-bow-stringing .light-source {
  position: absolute;
  bottom: 35%;
  left: 25%;
  width: 12px;
  height: 12px;
  background: radial-gradient(circle, #ffd699 0%, #c08040 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(255,214,153,0.5), 0 0 80px 24px rgba(255,214,153,0.2);
  animation: bs-light 4s ease-in-out infinite alternate;
}
@keyframes bs-odysseus { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes bs-string { 0% { transform: rotate(-40deg) scaleX(1); } 50% { transform: rotate(-35deg) scaleX(1.1); } 100% { transform: rotate(-40deg) scaleX(1); } }
@keyframes bs-telemachus { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-2px) rotate(2deg); } 66% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes bs-eumaeus { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(-3deg); } }
@keyframes bs-arrow { 0% { transform: translateX(0) rotate(10deg) scaleY(1); } 50% { transform: translateX(8px) rotate(15deg) scaleY(0.8); } 100% { transform: translateX(0) rotate(10deg) scaleY(1); } }
@keyframes bs-light { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.7; } }

/* Scene: slaughter-of-suitors – firelit, battle, Athena disguise */
.scn-slaughter-of-suitors {
  background: 
    linear-gradient(180deg, #8b3a2a 0%, #4a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 40% 20%, #ff8040 0%, #c04020 40%, transparent 70%);
}
.scn-slaughter-of-suitors .fire-bg {
  position: absolute;
  inset: 0;
  background: repeating-radial-gradient(circle at 30% 20%, #ff6020 0%, transparent 30%);
  filter: blur(10px);
  animation: ss-fire 8s ease-in-out infinite alternate;
}
.scn-slaughter-of-suitors .figure-odysseus2 {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 24px;
  height: 60px;
  background: linear-gradient(180deg, #5e3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ss-odysseus 6s ease-in-out infinite;
}
.scn-slaughter-of-suitors .figure-telemachus3 {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 18px;
  height: 50px;
  background: linear-gradient(180deg, #b8a090 0%, #6a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: ss-telemachus 7s ease-in-out infinite;
}
.scn-slaughter-of-suitors .suitors-falling {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 70px;
  height: 50px;
  background: radial-gradient(ellipse at 40% 30%, #7a3a2a 0%, #3a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(15deg);
  animation: ss-fall 10s ease-in-out infinite;
}
.scn-slaughter-of-suitors .spear {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 40px;
  height: 4px;
  background: linear-gradient(90deg, #5e3a2a 0%, #a06030 100%);
  border-radius: 2px;
  transform: rotate(-50deg);
  animation: ss-spear 11s ease-in-out infinite alternate;
}
.scn-slaughter-of-suitors .athena-disguise {
  position: absolute;
  bottom: 20%;
  left: 15%;
  width: 22px;
  height: 55px;
  background: linear-gradient(180deg, #b8b0a0 0%, #6a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: ss-athena 9s ease-in-out infinite;
}
.scn-slaughter-of-suitors .rafters {
  position: absolute;
  top: 5%;
  left: 20%;
  right: 20%;
  height: 8px;
  background: linear-gradient(90deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ss-rafters 20s linear infinite alternate;
}
@keyframes ss-fire { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes ss-odysseus { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-5px) rotate(5deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ss-telemachus { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(-4deg); } }
@keyframes ss-fall { 0% { transform: rotate(15deg) translateY(0); } 30% { transform: rotate(20deg) translateY(-10px); } 60% { transform: rotate(10deg) translateY(-5px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ss-spear { 0% { transform: rotate(-50deg) translateX(0); } 50% { transform: rotate(-45deg) translateX(15px); } 100% { transform: rotate(-50deg) translateX(0); } }
@keyframes ss-athena { 0% { transform: translateY(0) scale(1); } 33% { transform: translateY(-3px) scale(1.05); } 66% { transform: translateY(0) scale(0.95); } 100% { transform: translateY(0) scale(1); } }
@keyframes ss-rafters { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }

.scn-polyphemus-prayer {
  background: linear-gradient(180deg, #2b3a4a 0%, #1a2630 50%, #0f1519 100%), radial-gradient(ellipse at 50% 0%, #3a5068 0%, transparent 70%);
}
.scn-polyphemus-prayer .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a4f63 0%, #1e2c3b 100%);
  animation: pp-sky 15s ease-in-out infinite alternate;
}
.scn-polyphemus-prayer .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a3b47 0%, #101c24 100%);
  border-radius: 0% 0% 10% 10%;
  animation: pp-sea 8s ease-in-out infinite alternate;
}
.scn-polyphemus-prayer .cliff {
  position: absolute; bottom: 35%; left: 65%; width: 25%; height: 40%;
  background: linear-gradient(135deg, #3a4a3a 0%, #1f2b1f 100%);
  border-radius: 20% 80% 0% 0% / 40% 100% 0% 0%;
  box-shadow: inset -8px 0 15px rgba(0,0,0,0.6);
}
.scn-polyphemus-prayer .cyclops {
  position: absolute; bottom: 38%; left: 68%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1f1a 0%, #0f140f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pp-cyclops 6s ease-in-out infinite;
}
.scn-polyphemus-prayer .rock {
  position: absolute; bottom: 50%; left: 50%; width: 8%; height: 6%;
  background: radial-gradient(circle at 40% 40%, #4a5a4a 0%, #1a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: pp-rock 4s ease-in-out infinite;
}
.scn-polyphemus-prayer .ship {
  position: absolute; bottom: 30%; left: 20%; width: 14%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  animation: pp-ship 5s ease-in-out infinite;
}
.scn-polyphemus-prayer .wave {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(42,59,71,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-polyphemus-prayer .wave-1 { animation: pp-wave1 7s linear infinite; }
.scn-polyphemus-prayer .wave-2 { animation: pp-wave2 9s linear infinite; transform: scaleY(0.7); }
@keyframes pp-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes pp-sea { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(-2px) } }
@keyframes pp-cyclops { 0%,100% { transform: translate(0, 0) rotate(-2deg) scaleY(1) } 25% { transform: translate(5px, -3px) rotate(3deg) scaleY(1.05) } 50% { transform: translate(8px, 0) rotate(-1deg) scaleY(0.97) } 75% { transform: translate(2px, 2px) rotate(1deg) scaleY(1.02) } }
@keyframes pp-rock { 0% { transform: translate(0, 0) rotate(0deg) } 25% { transform: translate(-10px, -20px) rotate(15deg) } 50% { transform: translate(-20px, -40px) rotate(30deg) } 75% { transform: translate(-30px, -60px) rotate(45deg) } 100% { transform: translate(-40px, -80px) rotate(60deg); opacity: 0 } }
@keyframes pp-ship { 0% { transform: translate(0, 0) rotate(0deg) } 25% { transform: translate(-2px, 3px) rotate(5deg) } 50% { transform: translate(0, 6px) rotate(-3deg) } 75% { transform: translate(3px, 2px) rotate(4deg) } 100% { transform: translate(0, 0) rotate(0deg) } }
@keyframes pp-wave1 { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.2) translateX(10px) } 100% { transform: scaleX(1) translateX(20px) } }
@keyframes pp-wave2 { 0% { transform: scaleY(0.7) translateX(20px) } 50% { transform: scaleY(0.8) translateX(0) } 100% { transform: scaleY(0.7) translateX(-10px) } }

.scn-item-wind-sack {
  background: linear-gradient(180deg, #4a5568 0%, #2d3748 40%, #1a202c 100%), radial-gradient(ellipse at 70% 20%, #6b7a8f 0%, transparent 60%);
}
.scn-item-wind-sack .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #5a6b7a 0%, #3a4a5a 100%);
  animation: ws-sky 10s ease-in-out infinite alternate;
}
.scn-item-wind-sack .cloud {
  position: absolute; top: 15%; width: 15%; height: 8%;
  background: linear-gradient(180deg, rgba(200,210,220,0.6) 0%, rgba(150,160,170,0.2) 100%);
  border-radius: 50%;
  filter: blur(5px);
}
.scn-item-wind-sack .cloud-a { left: 10%; animation: ws-cloud-a 20s linear infinite; }
.scn-item-wind-sack .cloud-b { right: 20%; animation: ws-cloud-b 25s linear infinite reverse; }
.scn-item-wind-sack .ship {
  position: absolute; bottom: 30%; left: 30%; width: 18%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  animation: ws-ship 4s ease-in-out infinite;
}
.scn-item-wind-sack .sail {
  position: absolute; bottom: 35%; left: 33%; width: 10%; height: 15%;
  background: linear-gradient(135deg, #b8a88a 0%, #8a7a6a 100%);
  border-radius: 20% 80% 20% 80% / 40% 60% 40% 60%;
  animation: ws-sail 6s ease-in-out infinite;
}
.scn-item-wind-sack .sack {
  position: absolute; bottom: 32%; left: 55%; width: 10%; height: 8%;
  background: radial-gradient(circle at 30% 30%, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: ws-sack 2s ease-in-out infinite;
}
.scn-item-wind-sack .wind {
  position: absolute; width: 12%; height: 10%;
  background: radial-gradient(circle, rgba(200,210,230,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
}
.scn-item-wind-sack .wind-1 { top: 20%; left: 50%; animation: ws-wind1 3s linear infinite; }
.scn-item-wind-sack .wind-2 { top: 35%; left: 60%; animation: ws-wind2 4s linear infinite; }
@keyframes ws-sky { 0% { opacity: 0.8 } 50% { opacity: 0.5 } 100% { opacity: 0.9 } }
@keyframes ws-cloud-a { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(80px) scale(1.1) } 100% { transform: translateX(160px) scale(0.9) } }
@keyframes ws-cloud-b { 0% { transform: translateX(0) scale(0.9) } 50% { transform: translateX(-50px) scale(1.1) } 100% { transform: translateX(-100px) scale(0.8) } }
@keyframes ws-ship { 0% { transform: translate(0, 0) rotate(-3deg) } 25% { transform: translate(5px, -2px) rotate(2deg) } 50% { transform: translate(10px, 0) rotate(5deg) } 75% { transform: translate(5px, 3px) rotate(-1deg) } 100% { transform: translate(0, 0) rotate(-3deg) } }
@keyframes ws-sail { 0% { transform: scaleX(1) rotate(0deg) } 25% { transform: scaleX(0.8) rotate(10deg) } 50% { transform: scaleX(1.2) rotate(-5deg) } 75% { transform: scaleX(0.9) rotate(8deg) } 100% { transform: scaleX(1) rotate(0deg) } }
@keyframes ws-sack { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.1) translateY(-3px) rotate(5deg) } 100% { transform: scale(1) translateY(0) rotate(0deg) } }
@keyframes ws-wind1 { 0% { transform: translate(0, 0) scale(0.5); opacity: 0 } 25% { transform: translate(30px, -20px) scale(1); opacity: 0.6 } 50% { transform: translate(60px, 0) scale(0.8); opacity: 0.3 } 75% { transform: translate(90px, 30px) scale(1.2); opacity: 0.7 } 100% { transform: translate(120px, 0) scale(0.5); opacity: 0 } }
@keyframes ws-wind2 { 0% { transform: translate(0, 0) rotate(0deg) scale(0.6); opacity: 0 } 30% { transform: translate(-20px, 20px) rotate(45deg) scale(1); opacity: 0.5 } 60% { transform: translate(-40px, -10px) rotate(90deg) scale(0.7); opacity: 0.3 } 100% { transform: translate(-60px, 30px) rotate(135deg) scale(0.6); opacity: 0 } }

.scn-laestrygonians-and-circe-warning {
  background: linear-gradient(135deg, #2a1a1a 0%, #1f1212 50%, #0d0808 100%), radial-gradient(ellipse at 40% 60%, #3a2020 0%, transparent 70%);
}
.scn-laestrygonians-and-circe-warning .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 10% 10% 0% 0%;
}
.scn-laestrygonians-and-circe-warning .doorway {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(135deg, #0d0808 0%, #1a0e0e 100%);
  border-radius: 20% 20% 0% 0%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-laestrygonians-and-circe-warning .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
}
.scn-laestrygonians-and-circe-warning .table {
  position: absolute; bottom: 15%; left: 20%; width: 25%; height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-laestrygonians-and-circe-warning .lamp {
  position: absolute; bottom: 30%; left: 50%; width: 8%; height: 10%;
  background: radial-gradient(circle at 50% 40%, #c8853d 0%, #a06030 50%, #3a2010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 40px 15px rgba(200,133,61,0.4), 0 0 80px 30px rgba(200,133,61,0.2);
  animation: lc-lamp 2s ease-in-out infinite alternate;
}
.scn-laestrygonians-and-circe-warning .figure-circe {
  position: absolute; bottom: 12%; left: 40%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lc-circe 5s ease-in-out infinite;
}
.scn-laestrygonians-and-circe-warning .figure-shadow {
  position: absolute; bottom: 12%; left: 60%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #0f0a0a 0%, #050303 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lc-shadow 6s ease-in-out infinite;
}
@keyframes lc-lamp { 0% { opacity: 0.6; box-shadow: 0 0 30px 10px rgba(200,133,61,0.3), 0 0 60px 20px rgba(200,133,61,0.1); } 50% { opacity: 1; box-shadow: 0 0 50px 20px rgba(200,133,61,0.5), 0 0 100px 40px rgba(200,133,61,0.3); } 100% { opacity: 0.7; box-shadow: 0 0 35px 12px rgba(200,133,61,0.35), 0 0 70px 25px rgba(200,133,61,0.15); } }
@keyframes lc-circe { 0%,100% { transform: translate(0, 0) rotate(0deg) scaleY(1); } 25% { transform: translate(3px, -4px) rotate(3deg) scaleY(1.04); } 50% { transform: translate(6px, 0) rotate(-2deg) scaleY(0.98); } 75% { transform: translate(2px, 2px) rotate(1deg) scaleY(1.02); } }
@keyframes lc-shadow { 0%,100% { transform: translate(0, 0) scale(0.9); opacity: 0.4; } 50% { transform: translate(5px, -5px) scale(1.1); opacity: 0.6; } }

.scn-teiresias-prophecy {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #0a0a12 100%), radial-gradient(ellipse at 50% 30%, #1a2440 0%, transparent 70%);
}
.scn-teiresias-prophecy .underworld {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #12121e 0%, #08080e 100%);
  animation: tp-underworld 20s ease-in-out infinite alternate;
}
.scn-teiresias-prophecy .soul {
  position: absolute; width: 6%; height: 10%;
  background: radial-gradient(circle, rgba(200,210,255,0.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-teiresias-prophecy .soul-a { top: 20%; left: 30%; animation: tp-soul-a 8s ease-in-out infinite; }
.scn-teiresias-prophecy .soul-b { top: 40%; right: 25%; animation: tp-soul-b 10s ease-in-out infinite; }
.scn-teiresias-prophecy .teiresias {
  position: absolute; bottom: 20%; left: 35%; width: 12%; height: 25%;
  background: linear-gradient(180deg, rgba(140,160,200,0.3) 0%, rgba(100,120,160,0.1) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(140,160,200,0.2);
  animation: tp-teiresias 6s ease-in-out infinite;
}
.scn-teiresias-prophecy .odysseus {
  position: absolute; bottom: 18%; left: 50%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tp-odysseus 4s ease-in-out infinite;
}
.scn-teiresias-prophecy .sword {
  position: absolute; bottom: 25%; left: 52%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #8a8a9a 0%, #3a3a4a 100%);
  clip-path: polygon(50% 0%, 40% 100%, 60% 100%);
  animation: tp-sword 3s ease-in-out infinite;
}
.scn-teiresias-prophecy .styx {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%);
  border-radius: 80% 80% 0% 0% / 60% 60% 0% 0%;
  animation: tp-styx 10s linear infinite;
}
@keyframes tp-underworld { 0% { opacity: 0.9 } 50% { opacity: 0.7 } 100% { opacity: 1 } }
@keyframes tp-soul-a { 0% { transform: translate(0, 0) scale(1); opacity: 0.3 } 25% { transform: translate(20px, -15px) scale(1.2); opacity: 0.6 } 50% { transform: translate(40px, 10px) scale(0.8); opacity: 0.2 } 75% { transform: translate(60px, -5px) scale(1.1); opacity: 0.5 } 100% { transform: translate(80px, 0) scale(0.9); opacity: 0.3 } }
@keyframes tp-soul-b { 0% { transform: translate(0, 0) scale(0.8); opacity: 0.2 } 30% { transform: translate(-15px, 10px) scale(1.1); opacity: 0.5 } 60% { transform: translate(-30px, -20px) scale(0.9); opacity: 0.3 } 100% { transform: translate(-45px, 0) scale(1); opacity: 0.4 } }
@keyframes tp-teiresias { 0%,100% { transform: translate(0, 0) scaleY(1); opacity: 0.5 } 50% { transform: translate(2px, -5px) scaleY(1.05); opacity: 0.8; box-shadow: 0 0 50px 20px rgba(140,160,200,0.4); } }
@keyframes tp-odysseus { 0% { transform: translate(0, 0) rotate(-1deg) } 25% { transform: translate(2px, -3px) rotate(2deg) } 50% { transform: translate(4px, 0) rotate(-2deg) } 75% { transform: translate(2px, 2px) rotate(1deg) } 100% { transform: translate(0, 0) rotate(-1deg) } }
@keyframes tp-sword { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.1) } 100% { transform: rotate(-3deg) scaleY(0.95) } }
@keyframes tp-styx { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.05) translateX(5px) } 100% { transform: scaleX(1) translateX(10px) } }

/* ulysses-kills-suitors-and-reconciliation */
.scn-ulysses-kills-suitors-and-reconciliation {
  background: radial-gradient(ellipse at 50% 70%, #c08040 0%, #3a1a0e 60%, #1a0a04 100%), linear-gradient(180deg, #2a0e04 0%, #1a0602 100%);
}
.scn-ulysses-kills-suitors-and-reconciliation .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #5a2a1a 0%, #7a3a2a 50%, #5a2a1a 100%);
}
.scn-ulysses-kills-suitors-and-reconciliation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a1a0a 0%, #2a0a00 100%);
}
.scn-ulysses-kills-suitors-and-reconciliation .pillar-left {
  position: absolute; top: 5%; left: 10%; width: 6%; height: 75%;
  background: linear-gradient(90deg, #7a503a 0%, #9a7050 30%, #7a503a 70%, #5a3020 100%);
  border-radius: 4%;
  box-shadow: 4px 0 12px rgba(0,0,0,0.6);
}
.scn-ulysses-kills-suitors-and-reconciliation .pillar-right {
  position: absolute; top: 5%; right: 10%; width: 6%; height: 75%;
  background: linear-gradient(90deg, #5a3020 0%, #7a503a 30%, #9a7050 70%, #7a503a 100%);
  border-radius: 4%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.6);
}
.scn-ulysses-kills-suitors-and-reconciliation .ulysses {
  position: absolute; bottom: 18%; left: 50%; width: 8%; height: 45%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: usi-figure 4s ease-in-out infinite;
}
.scn-ulysses-kills-suitors-and-reconciliation .suitors {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0a04 100%);
  border-radius: 20% 20% 0 0;
  clip-path: polygon(0% 0%, 20% 30%, 40% 20%, 60% 35%, 80% 15%, 100% 25%, 100% 100%, 0% 100%);
  animation: usi-suitors 3s ease-in-out infinite alternate;
}
.scn-ulysses-kills-suitors-and-reconciliation .bow {
  position: absolute; bottom: 38%; left: 46%; width: 12%; height: 4%;
  background: linear-gradient(90deg, #8a7050 0%, #b09070 50%, #8a7050 100%);
  border-radius: 40%;
  transform: rotate(-20deg);
  animation: usi-bow 2s ease-in-out infinite alternate;
}
.scn-ulysses-kills-suitors-and-reconciliation .light-glow {
  position: absolute; top: 30%; left: 40%; width: 20%; height: 25%;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, rgba(255,150,50,0.2) 40%, transparent 70%);
  filter: blur(8px);
  animation: usi-glow 4s ease-in-out infinite;
}
@keyframes usi-figure {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes usi-suitors {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(0.95) translateY(-2px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes usi-bow {
  0% { transform: rotate(-20deg) scaleX(1); }
  50% { transform: rotate(-15deg) scaleX(1.1); }
  100% { transform: rotate(-20deg) scaleX(1); }
}
@keyframes usi-glow {
  0%, 100% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
}

/* assembly-of-ithaca */
.scn-assembly-of-ithaca {
  background: linear-gradient(180deg, #4a5a7a 0%, #6a7a9a 40%, #8a9ab0 70%, #b0c0d0 100%), radial-gradient(ellipse at 70% 10%, #e0c080 0%, transparent 50%);
}
.scn-assembly-of-ithaca .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a4a6a 0%, #6a7a9a 60%, #a0b0c0 100%);
  animation: ait-sky 12s ease-in-out infinite alternate;
}
.scn-assembly-of-ithaca .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a6a8a 0%, #4a5a7a 100%);
}
.scn-assembly-of-ithaca .platform {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
}
.scn-assembly-of-ithaca .telemachus {
  position: absolute; bottom: 40%; left: 48%; width: 7%; height: 25%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  animation: ait-tele 5s ease-in-out infinite;
}
.scn-assembly-of-ithaca .suitors-crowd {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  clip-path: polygon(0% 20%, 15% 0%, 30% 30%, 50% 10%, 70% 35%, 85% 15%, 100% 25%, 100% 100%, 0% 100%);
  animation: ait-crowd 3s ease-in-out infinite alternate;
}
.scn-assembly-of-ithaca .eagle-left {
  position: absolute; top: 12%; left: 20%; width: 12%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 60%, 30% 0%, 60% 30%, 100% 0%, 80% 60%, 40% 100%);
  animation: ait-eagle 8s ease-in-out infinite;
}
.scn-assembly-of-ithaca .eagle-right {
  position: absolute; top: 10%; right: 25%; width: 10%; height: 7%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  clip-path: polygon(100% 60%, 70% 0%, 40% 30%, 0% 0%, 20% 60%, 60% 100%);
  animation: ait-eagle 10s ease-in-out infinite reverse;
}
.scn-assembly-of-ithaca .dawn-glow {
  position: absolute; top: 5%; left: 60%; width: 20%; height: 30%;
  background: radial-gradient(circle, rgba(255,220,150,0.4) 0%, rgba(255,200,100,0.1) 40%, transparent 70%);
  filter: blur(10px);
  animation: ait-dawn 15s ease-in-out infinite alternate;
}
@keyframes ait-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ait-tele {
  0%, 100% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.03); }
}
@keyframes ait-crowd {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ait-eagle {
  0% { transform: translate(0,0) rotate(0deg); }
  33% { transform: translate(10px,-5px) rotate(3deg); }
  66% { transform: translate(-5px,-10px) rotate(-2deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes ait-dawn {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(1); }
}

/* omen-and-voyage-to-pylos */
.scn-omen-and-voyage-to-pylos {
  background: linear-gradient(180deg, #3a4a6a 0%, #5a6a8a 30%, #7a8aa0 60%, #a0b0c0 100%), radial-gradient(ellipse at 80% 20%, #e0c090 0%, transparent 60%);
}
.scn-omen-and-voyage-to-pylos .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a5a7a 0%, #2a3a5a 100%);
  animation: ovp-ocean 8s ease-in-out infinite alternate;
}
.scn-omen-and-voyage-to-pylos .horizon-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6a8a 0%, #8a9aa0 50%, #b0c0d0 100%);
  animation: ovp-sky 12s ease-in-out infinite;
}
.scn-omen-and-voyage-to-pylos .ship {
  position: absolute; bottom: 35%; left: 40%; width: 25%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 10% 10% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(-5deg);
  animation: ovp-ship 7s ease-in-out infinite alternate;
}
.scn-omen-and-voyage-to-pylos .sail {
  position: absolute; bottom: 45%; left: 48%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-8deg);
  animation: ovp-sail 6s ease-in-out infinite alternate;
}
.scn-omen-and-voyage-to-pylos .telemachus-praying {
  position: absolute; bottom: 40%; left: 35%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  animation: ovp-pray 4s ease-in-out infinite;
}
.scn-omen-and-voyage-to-pylos .eagle-omen {
  position: absolute; top: 10%; left: 50%; width: 14%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 50%, 20% 0%, 50% 30%, 80% 0%, 100% 50%, 80% 100%, 50% 70%, 20% 100%);
  animation: ovp-eagle 15s ease-in-out infinite;
}
.scn-omen-and-voyage-to-pylos .wave-curl {
  position: absolute; bottom: 45%; left: 20%; width: 15%; height: 6%;
  background: rgba(255,255,255,0.15);
  border-radius: 40% 20% 60% 30%;
  filter: blur(3px);
  animation: ovp-wave 5s ease-in-out infinite alternate;
}
@keyframes ovp-ocean {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ovp-sky {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes ovp-ship {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-4px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes ovp-sail {
  0% { transform: rotate(-8deg) scaleX(1); }
  50% { transform: rotate(-5deg) scaleX(1.05); }
  100% { transform: rotate(-8deg) scaleX(1); }
}
@keyframes ovp-pray {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes ovp-eagle {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(20px,-15px) rotate(5deg); }
  50% { transform: translate(-10px,-30px) rotate(-3deg); }
  75% { transform: translate(15px,-20px) rotate(4deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes ovp-wave {
  0% { transform: scaleX(1) translateX(0); }
  100% { transform: scaleX(1.3) translateX(30px); }
}

/* nestor-feast-and-minerva-revealed */
.scn-nestor-feast-and-minerva-revealed {
  background: linear-gradient(180deg, #c09860 0%, #a08050 40%, #806040 70%, #604020 100%), radial-gradient(ellipse at 40% 30%, #ffe0b0 0%, transparent 60%);
}
.scn-nestor-feast-and-minerva-revealed .hearth {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #704020 0%, #502010 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
}
.scn-nestor-feast-and-minerva-revealed .floor-tiles {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 10%;
  background: repeating-linear-gradient(90deg, #8a7050 0px, #8a7050 20px, #9a8060 20px, #9a8060 40px);
  transform: skewX(-10deg);
}
.scn-nestor-feast-and-minerva-revealed .table {
  position: absolute; bottom: 38%; left: 25%; right: 25%; height: 15%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-nestor-feast-and-minerva-revealed .cup-left {
  position: absolute; bottom: 48%; left: 35%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 20% 20% 10% 10%;
  animation: nfe-cup 5s ease-in-out infinite alternate;
}
.scn-nestor-feast-and-minerva-revealed .cup-right {
  position: absolute; bottom: 48%; right: 38%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 20% 20% 10% 10%;
  animation: nfe-cup 7s ease-in-out infinite alternate-reverse;
}
.scn-nestor-feast-and-minerva-revealed .nestor {
  position: absolute; bottom: 40%; left: 30%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: nfe-nestor 6s ease-in-out infinite;
}
.scn-nestor-feast-and-minerva-revealed .telemachus-figure {
  position: absolute; bottom: 40%; left: 48%; width: 7%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: nfe-tele 4s ease-in-out infinite;
}
.scn-nestor-feast-and-minerva-revealed .minerva-figure {
  position: absolute; bottom: 40%; right: 30%; width: 7%; height: 28%;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: nfe-min 7s ease-in-out infinite alternate;
}
@keyframes nfe-cup {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes nfe-nestor {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02) rotate(1deg); }
}
@keyframes nfe-tele {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0); }
}
@keyframes nfe-min {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.8; transform: scaleY(0.98); }
}

/* underworld-visions */
.scn-underworld-visions {
  background: 
    linear-gradient(180deg, #0d0b1a 0%, #1a1228 40%, #2c1f3a 100%),
    radial-gradient(ellipse at 30% 40%, #3a2850 0%, transparent 70%);
}
.scn-underworld-visions .cave-arch {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #1a1430 0%, #0e0c1e 50%, #1a1430 100%);
  border-radius: 30% 70% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
  animation: uv-arch 12s ease-in-out infinite alternate;
}
.scn-underworld-visions .river-styx {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #1c1530 0%, #0d0b1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 6px 18px rgba(0,0,0,.5);
  animation: uv-river 10s ease-in-out infinite alternate;
}
.scn-underworld-visions .torch-glow {
  position: absolute; bottom: 32%; left: 20%;
  width: 20px; height: 30px;
  background: radial-gradient(circle, #ffb060 0%, #a06020 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 15px #b07030, 0 0 80px 30px rgba(176,112,48,.4);
  animation: uv-torch 3s ease-in-out infinite alternate;
}
.scn-underworld-visions .shade-agamemnon {
  position: absolute; bottom: 30%; left: 35%;
  width: 22px; height: 40px;
  background: linear-gradient(180deg, rgba(180,160,140,.4) 0%, rgba(80,60,40,.2) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: uv-shade-a 8s ease-in-out infinite alternate;
}
.scn-underworld-visions .shade-achilles {
  position: absolute; bottom: 28%; right: 30%;
  width: 24px; height: 42px;
  background: linear-gradient(180deg, rgba(200,180,160,.35) 0%, rgba(100,80,60,.15) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: uv-shade-b 9s ease-in-out infinite alternate-reverse;
}
.scn-underworld-visions .shadow-figures {
  position: absolute; inset: 10% 15% 25% 10%;
  background: radial-gradient(ellipse at 60% 50%, rgba(0,0,0,.6) 0%, transparent 60%);
  animation: uv-shadows 7s ease-in-out infinite;
}
.scn-underworld-visions .dust-particles {
  position: absolute; inset: 0;
  background-image: radial-gradient(2px 2px at 20% 60%, rgba(255,200,150,.3) 0%, transparent),
                    radial-gradient(3px 3px at 70% 30%, rgba(255,150,100,.2) 0%, transparent),
                    radial-gradient(1px 1px at 45% 75%, rgba(200,150,100,.25) 0%, transparent);
  background-size: 200px 200px;
  animation: uv-dust 20s linear infinite;
}
@keyframes uv-arch {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(0.98) translateY(1px); }
}
@keyframes uv-river {
  0% { background-position: 0 0; opacity: 0.8; }
  50% { background-position: 10% 5%; opacity: 1; }
  100% { background-position: 20% 0; opacity: 0.85; }
}
@keyframes uv-torch {
  0% { opacity: 0.7; transform: scale(0.95) rotate(-3deg); box-shadow: 0 0 30px 10px #b07030; }
  50% { opacity: 1; transform: scale(1.05) rotate(2deg); box-shadow: 0 0 50px 20px #d09040; }
  100% { opacity: 0.8; transform: scale(1) rotate(0); box-shadow: 0 0 35px 12px #b07030; }
}
@keyframes uv-shade-a {
  0% { transform: translateX(0) translateY(0) rotate(0); opacity: 0.3; }
  50% { transform: translateX(-5px) translateY(-3px) rotate(-2deg); opacity: 0.6; }
  100% { transform: translateX(2px) translateY(0) rotate(1deg); opacity: 0.4; }
}
@keyframes uv-shade-b {
  0% { transform: translateX(0) translateY(0) rotate(0); opacity: 0.25; }
  50% { transform: translateX(4px) translateY(-2px) rotate(2deg); opacity: 0.5; }
  100% { transform: translateX(-3px) translateY(1px) rotate(-1deg); opacity: 0.35; }
}
@keyframes uv-shadows {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.3; }
}
@keyframes uv-dust {
  0% { background-position: 0 0; }
  100% { background-position: 200px 100px; }
}

/* sirens-and-scylla */
.scn-sirens-and-scylla {
  background: 
    linear-gradient(180deg, #5a6b7a 0%, #7a8a9a 40%, #8a9aaa 100%),
    radial-gradient(ellipse at 20% 30%, #a0b0c0 0%, transparent 60%);
}
.scn-sirens-and-scylla .sea-back {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 80% 20% 0 0 / 40% 10% 0 0;
  animation: ss-sea 14s ease-in-out infinite alternate;
}
.scn-sirens-and-scylla .cliffs {
  position: absolute; bottom: 40%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,.4);
  animation: ss-cliffs 20s ease-in-out infinite;
}
.scn-sirens-and-scylla .ship-odysseus {
  position: absolute; bottom: 30%; left: 15%;
  width: 60px; height: 20px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 60% 40% 10% / 50% 60% 40% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: ss-ship 6s ease-in-out infinite alternate;
}
.scn-sirens-and-scylla .siren-left {
  position: absolute; bottom: 50%; left: 10%;
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #9a7a6a 0%, #7a5a4a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ss-siren-l 4s ease-in-out infinite alternate;
}
.scn-sirens-and-scylla .siren-right {
  position: absolute; bottom: 52%; right: 10%;
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ss-siren-r 5s ease-in-out infinite alternate-reverse;
}
.scn-sirens-and-scylla .scylla-head {
  position: absolute; bottom: 48%; right: 30%;
  width: 25px; height: 30px;
  background: radial-gradient(circle at 50% 60%, #7a5a4a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 12px 4px rgba(0,0,0,.6);
  animation: ss-scylla-head 3s ease-in-out infinite;
}
.scn-sirens-and-scylla .scylla-tentacle {
  position: absolute; bottom: 38%; right: 28%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  animation: ss-tentacle 2s ease-in-out infinite alternate;
}
.scn-sirens-and-scylla .spray-mist {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 10%;
  background: radial-gradient(ellipse at 30% 50%, rgba(255,255,255,.15) 0%, transparent 80%);
  animation: ss-mist 12s ease-in-out infinite alternate;
}
@keyframes ss-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}
@keyframes ss-cliffs {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.01); }
  100% { transform: translateY(1px) scaleY(0.99); }
}
@keyframes ss-ship {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes ss-siren-l {
  0% { transform: translateY(0) rotate(-5deg); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); }
  50% { transform: translateY(-4px) rotate(3deg); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); }
  100% { transform: translateY(2px) rotate(0); clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); }
}
@keyframes ss-siren-r {
  0% { transform: translateY(0) rotate(5deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(1px) rotate(3deg); }
}
@keyframes ss-scylla-head {
  0% { transform: translateY(0) scale(1); opacity: 0.9; }
  50% { transform: translateY(-4px) scale(1.05); opacity: 1; box-shadow: 0 0 18px 6px rgba(0,0,0,.7); }
  100% { transform: translateY(2px) scale(0.95); opacity: 0.8; }
}
@keyframes ss-tentacle {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes ss-mist {
  0% { opacity: 0.2; filter: blur(2px); }
  50% { opacity: 0.5; filter: blur(4px); }
  100% { opacity: 0.15; filter: blur(1px); }
}

/* sun-gods-cattle */
.scn-sun-gods-cattle {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 30%, #d8c898 60%, #c8b888 100%),
    radial-gradient(ellipse at 50% 20%, #ffe8b0 0%, transparent 70%);
}
.scn-sun-gods-cattle .sky-gold {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #f0d498 100%);
  animation: sgc-sky 15s ease-in-out infinite alternate;
}
.scn-sun-gods-cattle .island-ground {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #b8a060 0%, #8a7030 100%);
  border-radius: 40% 60% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: sgc-ground 18s ease-in-out infinite;
}
.scn-sun-gods-cattle .cattle-group {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 15%;
  background: radial-gradient(ellipse at 30% 50%, #a08050 0%, transparent 70%),
              radial-gradient(ellipse at 70% 50%, #b09060 0%, transparent 70%);
  animation: sgc-cattle 10s ease-in-out infinite alternate;
}
.scn-sun-gods-cattle .odysseus-sleeping {
  position: absolute; bottom: 24%; left: 10%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sgc-sleep 12s ease-in-out infinite;
}
.scn-sun-gods-cattle .sun-disc {
  position: absolute; top: 8%; left: 50%;
  width: 80px; height: 80px; transform: translateX(-50%);
  background: radial-gradient(circle, #ffe080 0%, #ffc040 40%, #e8a030 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #ffc040, 0 0 100px 50px rgba(255,192,64,.3);
  animation: sgc-sun 8s ease-in-out infinite alternate;
}
.scn-sun-gods-cattle .fire-altar {
  position: absolute; bottom: 20%; left: 40%;
  width: 16px; height: 30px;
  background: linear-gradient(180deg, #604020 0%, #2a1808 100%);
  border-radius: 10% 10% 20% 20%;
  animation: sgc-altar 4s ease-in-out infinite;
}
.scn-sun-gods-cattle .ship-beached {
  position: absolute; bottom: 18%; right: 10%;
  width: 50px; height: 14px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 60% 40% 10% / 50% 60% 40% 50%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: sgc-ship 20s ease-in-out infinite alternate;
}
@keyframes sgc-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes sgc-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes sgc-cattle {
  0% { transform: scaleX(1); opacity: 0.9; }
  50% { transform: scaleX(1.02) translateY(-1px); opacity: 1; }
  100% { transform: scaleX(0.98); opacity: 0.85; }
}
@keyframes sgc-sleep {
  0% { transform: rotate(0) translateY(0); }
  25% { transform: rotate(2deg) translateY(-1px); }
  50% { transform: rotate(-1deg) translateY(0); }
  75% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(0) translateY(0); }
}
@keyframes sgc-sun {
  0% { transform: translateX(-50%) scale(0.95); box-shadow: 0 0 50px 25px #ffc040, 0 0 80px 40px rgba(255,192,64,.2); }
  50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 70px 35px #ffd060, 0 0 100px 50px rgba(255,208,96,.4); }
  100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 55px 28px #ffc040, 0 0 90px 45px rgba(255,192,64,.3); }
}
@keyframes sgc-altar {
  0% { transform: scaleY(1); opacity: 0.7; }
  50% { transform: scaleY(1.03); opacity: 1; }
  100% { transform: scaleY(0.97); opacity: 0.8; }
}
@keyframes sgc-ship {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(3px); }
  100% { transform: rotate(-7deg) translateX(-2px); }
}

/* poseidon-punishes-phaeacians */
.scn-poseidon-punishes-phaeacians {
  background: 
    linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 30%, #3a4a5a 60%, #2a3a4a 100%),
    radial-gradient(ellipse at 20% 50%, #9ab0c0 0%, transparent 70%);
}
.scn-poseidon-punishes-phaeacians .sea-storm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 70% 30% 0 0 / 30% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
  animation: ppp-sea 8s ease-in-out infinite alternate;
}
.scn-poseidon-punishes-phaeacians .city-walls {
  position: absolute; top: 15%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.4);
  animation: ppp-walls 12s ease-in-out infinite alternate;
}
.scn-poseidon-punishes-phaeacians .phaeacian-ship {
  position: absolute; bottom: 40%; left: 20%;
  width: 50px; height: 18px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 60% 40% 10% / 50% 60% 40% 50%;
  transform: rotate(5deg);
  animation: ppp-ship 6s ease-in-out infinite alternate;
}
.scn-poseidon-punishes-phaeacians .stone-ship {
  position: absolute; bottom: 40%; left: 55%;
  width: 40px; height: 15px;
  background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 50% 30% 10% / 40% 50% 30% 40%;
  filter: grayscale(0.8);
  box-shadow: 0 0 0 2px #8a7a6a;
  animation: ppp-stone 10s ease-in-out infinite;
}
.scn-poseidon-punishes-phaeacians .poseidon-figure {
  position: absolute; bottom: 50%; right: 15%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ppp-poseidon 4s ease-in-out infinite alternate;
}
.scn-poseidon-punishes-phaeacians .trident-glow {
  position: absolute; bottom: 58%; right: 20%;
  width: 4px; height: 30px;
  background: linear-gradient(180deg, #ffd080 0%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,.4);
  animation: ppp-trident 3s ease-in-out infinite alternate;
}
.scn-poseidon-punishes-phaeacians .wave-spikes {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 15%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.1) 20%, transparent 40%, rgba(255,255,255,.1) 60%, transparent 80%);
  background-size: 20% 100%;
  animation: ppp-spikes 5s linear infinite;
}
.scn-poseidon-punishes-phaeacians .debris {
  position: absolute; bottom: 25%; left: 40%;
  width: 10px; height: 8px;
  background: #6a5a4a;
  border-radius: 20% 80% 50% 50% / 30% 70% 30% 70%;
  animation: ppp-debris 7s ease-in-out infinite alternate;
}
@keyframes ppp-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(3px); }
}
@keyframes ppp-walls {
  0% { transform: scale(0.98); opacity: 0.8; }
  50% { transform: scale(1.02); opacity: 1; }
  100% { transform: scale(0.99); opacity: 0.9; }
}
@keyframes ppp-ship {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(6px); }
  100% { transform: rotate(8deg) translateX(-3px); }
}
@keyframes ppp-stone {
  0% { transform: translateY(0) scale(1); filter: grayscale(0.8); }
  50% { transform: translateY(-1px) scale(1.02); filter: grayscale(1); }
  100% { transform: translateY(1px) scale(0.98); filter: grayscale(0.7); }
}
@keyframes ppp-poseidon {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ppp-trident {
  0% { opacity: 0.7; transform: scaleY(0.95); }
  50% { opacity: 1; transform: scaleY(1.05); box-shadow: 0 0 30px 10px #ffd080, 0 0 50px 18px rgba(255,208,128,.5); }
  100% { opacity: 0.8; transform: scaleY(1); }
}
@keyframes ppp-spikes {
  0% { background-position: 0 0; }
  100% { background-position: 100% 0; }
}
@keyframes ppp-debris {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(10px) rotate(180deg); }
  100% { transform: translateX(-5px) rotate(90deg); }
}

/* ----- ulysses-at-eumaeus-hut (sunlit warm) ----- */
.scn-ulysses-at-eumaeus-hut {
  background:
    linear-gradient(180deg, #f9d68c 0%, #e8b86b 30%, #9fc5e8 70%, #6fa8dc 100%),
    radial-gradient(ellipse at 60% 10%, #fce4a0 0%, transparent 60%);
}
.scn-ulysses-at-eumaeus-hut .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fde68a 0%, #f9d68c 100%);
  animation: ueh-sky 12s ease-in-out infinite alternate;
}
.scn-ulysses-at-eumaeus-hut .sun {
  position: absolute; top: 8%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff5c4 0%, #fdbc6b 70%);
  border-radius: 50%;
  box-shadow: 0 0 70px 30px rgba(251, 189, 107, 0.5);
  animation: ueh-sun 18s ease-in-out infinite alternate;
}
.scn-ulysses-at-eumaeus-hut .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a9a5a 0%, #5a7a3a 100%);
  border-radius: 60% 40% 0 0 / 90% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0, 0, 0, 0.3);
  animation: ueh-hills 20s ease-in-out infinite alternate;
}
.scn-ulysses-at-eumaeus-hut .hut {
  position: absolute; bottom: 32%; left: 20%; width: 120px; height: 80px;
  background: linear-gradient(135deg, #b06d3a 0%, #7a4a2a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.4);
  transform: perspective(200px) rotateY(-5deg);
  animation: ueh-hut 6s ease-in-out infinite;
}
.scn-ulysses-at-eumaeus-hut .door {
  position: absolute; bottom: 32%; left: 28%; width: 24px; height: 35px;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 12px 2px #c08040;
  animation: ueh-door 4s ease-in-out infinite alternate;
}
.scn-ulysses-at-eumaeus-hut .figure-walk {
  position: absolute; bottom: 24%; left: 55%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ueh-walk 5s ease-in-out infinite;
}
.scn-ulysses-at-eumaeus-hut .hound-a {
  position: absolute; bottom: 22%; left: 50%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: ueh-hound-a 3s ease-in-out infinite;
}
.scn-ulysses-at-eumaeus-hut .hound-b {
  position: absolute; bottom: 21%; left: 48%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: ueh-hound-b 4s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-ulysses-at-eumaeus-hut .tree {
  position: absolute; bottom: 30%; right: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a6a1a 0%, #2a4a0a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
  animation: ueh-tree 10s ease-in-out infinite alternate;
}
@keyframes ueh-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ueh-sun { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(0.95) translateY(0); } }
@keyframes ueh-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ueh-hut { 0%,100% { transform: perspective(200px) rotateY(-5deg); } 50% { transform: perspective(200px) rotateY(-3deg) translateY(-2px); } }
@keyframes ueh-door { 0% { box-shadow: inset 0 0 14px 2px #c08040; opacity: 0.7; } 50% { box-shadow: inset 0 0 24px 6px #d09050; opacity: 1; } 100% { box-shadow: inset 0 0 18px 4px #c08040; opacity: 0.8; } }
@keyframes ueh-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(1deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes ueh-hound-a { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(4px) scale(1.05); } 50% { transform: translateX(0) scale(1); } 75% { transform: translateX(-3px) scale(0.95); } 100% { transform: translateX(0) scale(1); } }
@keyframes ueh-hound-b { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(-3px) scale(0.95); } 50% { transform: translateX(0) scale(1); } 75% { transform: translateX(4px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }
@keyframes ueh-tree { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* ----- false-tale (firelit calm) ----- */
.scn-false-tale {
  background:
    linear-gradient(180deg, #1a0a00 0%, #2a1a0a 40%, #0a0a00 100%),
    radial-gradient(ellipse at 50% 70%, #4a2a0a 0%, transparent 80%);
}
.scn-false-tale .wall-dark {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #1a0a00 0%, #0a0500 90%);
  animation: ft-wall 10s ease-in-out infinite alternate;
}
.scn-false-tale .hearth {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6);
}
.scn-false-tale .fire {
  position: absolute; bottom: 24%; left: 50%; width: 20px; height: 28px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 100%, #f08030 0%, #d06020 40%, #a03010 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  animation: ft-fire 2s ease-in-out infinite alternate;
}
.scn-false-tale .fire-glow {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(240,128,48,0.6) 0%, rgba(200,80,20,0.2) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ft-glow 4s ease-in-out infinite alternate;
}
.scn-false-tale .figure-narrator {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 34px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ft-narrator 6s ease-in-out infinite;
}
.scn-false-tale .figure-listener {
  position: absolute; bottom: 20%; right: 35%; width: 22px; height: 34px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ft-listener 6s ease-in-out infinite;
  animation-delay: 0.3s;
}
.scn-false-tale .roof-beam {
  position: absolute; top: 15%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-false-tale .smoke {
  position: absolute; top: 8%; left: 48%; width: 40px; height: 30px;
  background: radial-gradient(circle, rgba(200,180,160,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ft-smoke 15s linear infinite;
}
@keyframes ft-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ft-fire { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(1.1) rotate(5deg); } 100% { transform: translateX(-50%) scale(0.9) rotate(-5deg); } }
@keyframes ft-glow { 0% { opacity: 0.7; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05); } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.95); } }
@keyframes ft-narrator { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ft-listener { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-1px) rotate(-2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ft-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.1; } 100% { transform: translateY(-40px) scale(2); opacity: 0; } }

/* ----- item-silver-mixing-bowl (sunlit warm) ----- */
.scn-item-silver-mixing-bowl {
  background:
    linear-gradient(180deg, #b8d4f0 0%, #87b8e8 50%, #d4e8f0 100%),
    radial-gradient(ellipse at 80% 20%, #fff8dc 0%, transparent 60%);
}
.scn-item-silver-mixing-bowl .deep-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #a0c8e8 0%, #c0daea 100%);
  animation: isb-sky 15s ease-in-out infinite alternate;
}
.scn-item-silver-mixing-bowl .palace-col {
  position: absolute; bottom: 20%; left: 10%; width: 40px; height: 150px;
  background: linear-gradient(180deg, #f0f0e8 0%, #c0c0b0 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.1);
  transform: perspective(300px) rotateY(8deg);
}
.scn-item-silver-mixing-bowl .palace-col-right {
  position: absolute; bottom: 20%; right: 10%; width: 40px; height: 150px;
  background: linear-gradient(180deg, #f0f0e8 0%, #c0c0b0 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.1);
  transform: perspective(300px) rotateY(-8deg);
}
.scn-item-silver-mixing-bowl .figure-king {
  position: absolute; bottom: 22%; left: 25%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #6a5a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: isb-king 5s ease-in-out infinite;
}
.scn-item-silver-mixing-bowl .figure-prince {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: isb-prince 6s ease-in-out infinite;
}
.scn-item-silver-mixing-bowl .figure-herald {
  position: absolute; bottom: 22%; right: 30%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: isb-herald 4.5s ease-in-out infinite;
}
.scn-item-silver-mixing-bowl .silver-bowl {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 18px;
  background: linear-gradient(135deg, #e0e8f0 0%, #a0b0c0 50%, #c0d0e0 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: 0 0 16px 4px rgba(160,176,192,0.5), 0 0 30px 8px rgba(160,176,192,0.3);
  animation: isb-bowl 3s ease-in-out infinite alternate;
}
.scn-item-silver-mixing-bowl .eagle {
  position: absolute; top: 12%; right: 20%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  clip-path: polygon(0 50%, 50% 0, 100% 50%, 80% 100%, 20% 100%);
  animation: isb-eagle 8s ease-in-out infinite;
}
.scn-item-silver-mixing-bowl .goose {
  position: absolute; top: 15%; right: 10%; width: 30px; height: 14px;
  background: linear-gradient(180deg, #d0d0c0 0%, #a0a090 100%);
  clip-path: polygon(0 50%, 40% 10%, 100% 50%, 80% 100%, 20% 100%);
  animation: isb-goose 8s ease-in-out infinite;
  animation-delay: 0.4s;
}
@keyframes isb-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes isb-king { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes isb-prince { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes isb-herald { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes isb-bowl { 0% { box-shadow: 0 0 16px 4px rgba(160,176,192,0.5); transform: scale(1) translateY(0); } 50% { box-shadow: 0 0 24px 8px rgba(160,176,192,0.7); transform: scale(1.05) translateY(-2px); } 100% { box-shadow: 0 0 20px 6px rgba(160,176,192,0.6); transform: scale(0.95) translateY(0); } }
@keyframes isb-eagle { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-20px) rotate(-5deg); } 50% { transform: translateX(-40px) rotate(0deg); } 75% { transform: translateX(-20px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes isb-goose { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-15px) rotate(3deg); } 50% { transform: translateX(-30px) rotate(0deg); } 75% { transform: translateX(-15px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* ----- eumaeus-story (overcast sad) ----- */
.scn-eumaeus-story {
  background:
    linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 30%, #8a9a9a 60%, #b0b8b8 100%),
    radial-gradient(ellipse at 50% 100%, #7a8a8a 0%, transparent 70%);
}
.scn-eumaeus-story .overcast-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #9aaaba 100%);
  animation: es-sky 20s ease-in-out infinite alternate;
}
.scn-eumaeus-story .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: es-sea 10s ease-in-out infinite alternate;
}
.scn-eumaeus-story .ship {
  position: absolute; bottom: 35%; left: 20%; width: 70px; height: 25px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  transform-origin: center bottom;
  animation: es-ship 6s ease-in-out infinite;
}
.scn-eumaeus-story .figure-ulysses {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: es-fig-ulysses 4s ease-in-out infinite;
}
.scn-eumaeus-story .figure-eumaeus {
  position: absolute; bottom: 30%; left: 70%; width: 20px; height: 34px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: es-fig-eumaeus 4s ease-in-out infinite;
  animation-delay: 0.2s;
}
.scn-eumaeus-story .island {
  position: absolute; bottom: 38%; right: 15%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 4px 8px rgba(0, 0, 0, 0.3);
  animation: es-island 12s ease-in-out infinite alternate;
}
.scn-eumaeus-story .gull-a {
  position: absolute; top: 8%; left: 10%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #d0d0d0 0%, #a0a0a0 100%);
  clip-path: polygon(10% 50%, 40% 10%, 100% 50%, 70% 100%, 0% 100%);
  animation: es-gull-a 20s linear infinite;
}
.scn-eumaeus-story .gull-b {
  position: absolute; top: 12%; right: 5%; width: 16px; height: 8px;
  background: linear-gradient(180deg, #c0c0c0 0%, #909090 100%);
  clip-path: polygon(10% 50%, 40% 10%, 100% 50%, 70% 100%, 0% 100%);
  animation: es-gull-b 25s linear infinite;
  animation-delay: 3s;
}
@keyframes es-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes es-sea { 0% { background-position: 0% 50%; } 50% { background-position: 20% 50%; } 100% { background-position: 0% 50%; } }
@keyframes es-ship { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes es-fig-ulysses { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes es-fig-eumaeus { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes es-island { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes es-gull-a { 0% { transform: translateX(0); } 100% { transform: translateX(100vw); } }
@keyframes es-gull-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-item-promised-goblet {
  background: 
    linear-gradient(180deg, #d9c8b2 0%, #c4a98c 40%, #b08d6e 80%),
    radial-gradient(ellipse at 30% 10%, #f5e6d0 0%, transparent 60%);
}
.scn-item-promised-goblet .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e0d0bc 0%, #c8b4a0 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.15);
  animation: gob-wall 20s ease-in-out infinite alternate;
}
.scn-item-promised-goblet .table {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #9e7c60 0%, #7a5c44 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: gob-table 12s ease-in-out infinite;
}
.scn-item-promised-goblet .goblet {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #bfa680 0%, #8c6f50 80%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  clip-path: polygon(20% 0%, 80% 0%, 75% 40%, 85% 40%, 85% 60%, 15% 60%, 15% 40%, 25% 40%);
}
.scn-item-promised-goblet .goblet-glow {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe0b0 0%, #d4b080 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: gob-glow 4s ease-in-out infinite alternate;
}
.scn-item-promised-goblet .window-light {
  position: absolute; top: 5%; left: 5%; width: 80%; height: 60%;
  background: linear-gradient(135deg, rgba(255,240,210,0.4) 0%, transparent 80%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: gob-light 15s ease-in-out infinite alternate;
}
.scn-item-promised-goblet .shadow {
  position: absolute; bottom: 10%; left: 40%; width: 20%; height: 10%;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(8px);
  animation: gob-shadow 10s ease-in-out infinite;
}
.scn-item-promised-goblet .dust-particles {
  position: absolute; top: 20%; left: 10%; width: 60%; height: 50%;
  background: radial-gradient(circle at 20% 30%, rgba(255,230,190,0.15) 0%, transparent 50%),
              radial-gradient(circle at 80% 60%, rgba(255,220,180,0.1) 0%, transparent 50%);
  filter: blur(3px);
  animation: gob-dust-a 25s linear infinite;
}
.scn-item-promised-goblet .dust-particle-2 {
  position: absolute; top: 30%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(circle at 40% 40%, rgba(255,230,200,0.12) 0%, transparent 50%);
  filter: blur(4px);
  animation: gob-dust-b 30s linear infinite reverse;
}
@keyframes gob-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes gob-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes gob-glow {
  0% { opacity: 0.7; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.85; transform: translateX(-50%) scale(1.02); }
}
@keyframes gob-light {
  0% { transform: rotate(-2deg) scaleX(0.98); opacity: 0.8; }
  50% { transform: rotate(2deg) scaleX(1.02); opacity: 1; }
  100% { transform: rotate(-1deg) scaleX(0.99); opacity: 0.9; }
}
@keyframes gob-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.1); opacity: 0.5; }
  100% { transform: scaleX(1); opacity: 0.3; }
}
@keyframes gob-dust-a {
  0% { transform: translate(0, 0); }
  25% { transform: translate(10px, -5px); }
  50% { transform: translate(-5px, 10px); }
  75% { transform: translate(15px, 0); }
  100% { transform: translate(0, 0); }
}
@keyframes gob-dust-b {
  0% { transform: translate(0, 0); }
  33% { transform: translate(-8px, 12px); }
  66% { transform: translate(6px, -8px); }
  100% { transform: translate(0, 0); }
}

.scn-item-winnowing-shovel {
  background:
    linear-gradient(180deg, #decbb8 0%, #c4a98c 50%, #b08d6e 100%),
    radial-gradient(ellipse at 50% 20%, #f0dcc8 0%, transparent 70%);
}
.scn-item-winnowing-shovel .bg-barn {
  position: absolute; inset: 0 0 25% 0;
  background: repeating-linear-gradient(90deg, #c8b098 0px, #c8b098 2px, #b89e84 2px, #b89e84 4px);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.1);
  border-radius: 0 0 10% 10%;
  animation: sho-bg 16s ease-in-out infinite alternate;
}
.scn-item-winnowing-shovel .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a0886c 0%, #7a6248 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
  border-radius: 15% 15% 0 0;
  animation: sho-floor 8s ease-in-out infinite;
}
.scn-item-winnowing-shovel .shovel {
  position: absolute; bottom: 22%; left: 30%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #6b4c32 0%, #4a3120 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: 50% 85%;
  animation: sho-sway 6s ease-in-out infinite alternate;
}
.scn-item-winnowing-shovel .shovel-head {
  position: absolute; bottom: 18%; left: 26%; width: 16px; height: 12px;
  background: linear-gradient(135deg, #c0a080 0%, #9a7a5a 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform-origin: 50% 0%;
  animation: sho-sway 6s ease-in-out infinite alternate;
}
.scn-item-winnowing-shovel .grain-pile {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 14px;
  background: radial-gradient(ellipse, #b89850 0%, #8a7030 100%);
  border-radius: 50%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.2);
  animation: sho-grain 12s ease-in-out infinite;
}
.scn-item-winnowing-shovel .light-beam {
  position: absolute; top: 0%; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(135deg, rgba(255,240,190,0.3) 0%, transparent 70%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: sho-beam 20s ease-in-out infinite alternate;
}
.scn-item-winnowing-shovel .chaff {
  position: absolute; top: 20%; left: 5%; width: 90%; height: 60%;
  background: radial-gradient(circle at 30% 40%, rgba(220,190,140,0.2) 0%, transparent 60%),
              radial-gradient(circle at 70% 50%, rgba(200,170,120,0.15) 0%, transparent 60%);
  filter: blur(5px);
  animation: sho-chaff 30s linear infinite;
}
@keyframes sho-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes sho-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sho-sway {
  0% { transform: rotate(-6deg); }
  50% { transform: rotate(6deg); }
  100% { transform: rotate(-4deg); }
}
@keyframes sho-grain {
  0% { transform: scale(1) rotate(0deg); }
  25% { transform: scale(1.02) rotate(2deg); }
  75% { transform: scale(0.98) rotate(-2deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes sho-beam {
  0% { transform: translateX(-5px) scaleX(0.98); opacity: 0.8; }
  50% { transform: translateX(5px) scaleX(1.02); opacity: 1; }
  100% { transform: translateX(-2px) scaleX(0.99); opacity: 0.85; }
}
@keyframes sho-chaff {
  0% { transform: translate(0, 0); }
  20% { transform: translate(20px, -10px); }
  40% { transform: translate(-10px, 20px); }
  60% { transform: translate(30px, 0); }
  80% { transform: translate(-20px, -15px); }
  100% { transform: translate(0, 0); }
}

.scn-butler-notes-cave-grotto {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2038 40%, #3a284a 80%),
    radial-gradient(ellipse at 50% 80%, #4a3860 0%, transparent 70%);
}
.scn-butler-notes-cave-grotto .cave-back {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1e1a2c 0%, #2e2440 60%, #1a1424 100%);
  border-radius: 30% 70% 50% 50% / 40% 60% 60% 40%;
  filter: blur(4px);
  animation: cav-back 18s ease-in-out infinite alternate;
}
.scn-butler-notes-cave-grotto .cave-mid {
  position: absolute; inset: 5% 5% 15% 5%;
  background: radial-gradient(ellipse at 50% 40%, #3c2a54 0%, #241a38 70%);
  border-radius: 40% 60% 50% 50% / 50% 50% 60% 40%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: cav-mid 22s ease-in-out infinite alternate;
}
.scn-butler-notes-cave-grotto .stalactite-1 {
  position: absolute; top: 0; left: 20%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  transform-origin: top center;
  animation: cav-drip 8s ease-in-out infinite;
}
.scn-butler-notes-cave-grotto .stalactite-2 {
  position: absolute; top: 0; right: 30%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a102a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5);
  transform-origin: top center;
  animation: cav-drip2 10s ease-in-out infinite 2s;
}
.scn-butler-notes-cave-grotto .pool {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, #1a2038 0%, #0e1428 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
  animation: cav-pool 14s ease-in-out infinite alternate;
}
.scn-butler-notes-cave-grotto .torch-flame {
  position: absolute; bottom: 25%; left: 50%; width: 14px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #ffcc60 0%, #ff9020 40%, #803010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: cav-flame 1.5s ease-in-out infinite alternate;
}
.scn-butler-notes-cave-grotto .torch-glow {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,180,80,0.6) 0%, rgba(200,100,30,0.2) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: cav-glow 3s ease-in-out infinite alternate;
}
.scn-butler-notes-cave-grotto .reflection {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, rgba(255,180,80,0.3) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(6px);
  animation: cav-refl 4s ease-in-out infinite alternate 0.5s;
}
@keyframes cav-back {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.02); opacity: 0.9; }
  100% { transform: scale(0.98); opacity: 0.85; }
}
@keyframes cav-mid {
  0% { transform: scale(0.98); }
  50% { transform: scale(1.01); }
  100% { transform: scale(0.99); }
}
@keyframes cav-drip {
  0% { transform: scaleY(1); }
  25% { transform: scaleY(1.05); }
  50% { transform: scaleY(1); }
  75% { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}
@keyframes cav-drip2 {
  0% { transform: scaleY(1); }
  30% { transform: scaleY(0.9); }
  60% { transform: scaleY(1.05); }
  100% { transform: scaleY(1); }
}
@keyframes cav-pool {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-1px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes cav-flame {
  0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); }
  25% { transform: translateX(-50%) scaleY(1.1) rotate(1deg); }
  50% { transform: translateX(-50%) scaleY(0.95) rotate(-1deg); }
  75% { transform: translateX(-50%) scaleY(1.05) rotate(2deg); }
  100% { transform: translateX(-50%) scaleY(0.98) rotate(0deg); }
}
@keyframes cav-glow {
  0% { opacity: 0.7; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(0.95); }
}
@keyframes cav-refl {
  0% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.2); }
  100% { opacity: 0.5; transform: scaleY(0.9); }
}

.scn-butler-notes-final {
  background:
    linear-gradient(180deg, #e6d6c0 0%, #cfbaa0 40%, #b89a7a 100%),
    radial-gradient(ellipse at 50% 30%, #f0e0c8 0%, transparent 60%);
}
.scn-butler-notes-final .hut-wall {
  position: absolute; inset: 0 10% 0 10%;
  background: linear-gradient(180deg, #c8ac90 0%, #a8886c 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.15);
  animation: but-wall 20s ease-in-out infinite alternate;
}
.scn-butler-notes-final .hut-window {
  position: absolute; top: 15%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8c8d8 0%, #8090b0 100%);
  border: 4px solid #5a3e28;
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.2), 0 0 20px rgba(180,200,220,0.3);
  animation: but-window 10s ease-in-out infinite alternate;
}
.scn-butler-notes-final .hut-door {
  position: absolute; bottom: 0; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5038 0%, #4a3420 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
  animation: but-door 15s ease-in-out infinite;
}
.scn-butler-notes-final .sandals {
  position: absolute; bottom: 5%; left: 20%; width: 28px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #a07050 0%, #7a5030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: but-sandal 8s ease-in-out infinite alternate;
}
.scn-butler-notes-final .ewer {
  position: absolute; bottom: 12%; right: 15%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #c08860 0%, #a06840 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  clip-path: polygon(10% 0%, 90% 0%, 85% 40%, 100% 40%, 100% 60%, 0% 60%, 0% 40%, 15% 40%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.25);
  animation: but-ewer 12s ease-in-out infinite;
}
.scn-butler-notes-final .sunray {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,190,0.35) 0%, transparent 90%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: but-sun 25s ease-in-out infinite alternate;
}
.scn-butler-notes-final .dust-motes {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(circle at 30% 40%, rgba(255,240,200,0.1) 0%, transparent 60%),
              radial-gradient(circle at 70% 60%, rgba(255,230,190,0.08) 0%, transparent 60%);
  filter: blur(4px);
  animation: but-dust 30s linear infinite;
}
@keyframes but-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.97; }
}
@keyframes but-window {
  0% { box-shadow: inset 0 0 12px rgba(0,0,0,0.2), 0 0 20px rgba(180,200,220,0.3); }
  50% { box-shadow: inset 0 0 12px rgba(0,0,0,0.3), 0 0 30px rgba(200,220,240,0.5); }
  100% { box-shadow: inset 0 0 12px rgba(0,0,0,0.2), 0 0 20px rgba(180,200,220,0.3); }
}
@keyframes but-door {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(2deg); }
  75% { transform: translateX(-50%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes but-sandal {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes but-ewer {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(4deg); }
  70% { transform: rotate(-4deg); }
  100% { transform: rotate(0deg); }
}
@keyframes but-sun {
  0% { transform: skewX(-5deg) scaleX(0.98); opacity: 0.7; }
  50% { transform: skewX(5deg) scaleX(1.02); opacity: 1; }
  100% { transform: skewX(-2deg) scaleX(0.99); opacity: 0.8; }
}
@keyframes but-dust {
  0% { transform: translate(0, 0); }
  20% { transform: translate(15px, -8px); }
  40% { transform: translate(-10px, 12px); }
  60% { transform: translate(20px, -5px); }
  80% { transform: translate(-15px, 10px); }
  100% { transform: translate(0, 0); }
}

.scn-calypso-releases-odysseus {
  background: linear-gradient(180deg, #2a1a3a 0%, #4a2a5a 30%, #8a6a7a 60%, #c8a080 100%), radial-gradient(ellipse at 30% 20%, #e0c8a0 0%, transparent 70%);
}
.scn-calypso-releases-odysseus .cavern { position:absolute; inset:10% 10% 60% 15%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 40% 30% 60% 50% / 60% 40% 50% 30%; box-shadow: inset 0 0 40px #1a1a1a; animation: cro-cave 12s ease-in-out infinite alternate; }
.scn-calypso-releases-odysseus .dawn-sky { position:absolute; top:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #ffc8a0 0%, #e8a080 40%, #b07860 70%, #604050 100%); }
.scn-calypso-releases-odysseus .raft-frame { position:absolute; bottom:30%; left:45%; width:120px; height:30px; background: linear-gradient(90deg, #8a6a4a 0%, #6a4a2a 50%, #8a6a4a 100%); border-radius: 4px; transform: rotate(5deg); box-shadow: 0 4px 8px #2a1a1a; animation: cro-raft 8s ease-in-out infinite; }
.scn-calypso-releases-odysseus .tools { position:absolute; bottom:35%; left:30%; width:10px; height:40px; background: #6a4a2a; border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 0 #8a6a4a; animation: cro-tools 4s ease-in-out infinite; }
.scn-calypso-releases-odysseus .odysseus-sil { position:absolute; bottom:25%; left:40%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cro-ody 5s ease-in-out infinite; }
.scn-calypso-releases-odysseus .calypso-sil { position:absolute; bottom:25%; right:35%; width:22px; height:55px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; animation: cro-cal 6s ease-in-out infinite; transform-origin: bottom; }
.scn-calypso-releases-odysseus .dawn-light { position:absolute; top:10%; left:30%; width:80px; height:80px; background: radial-gradient(circle, #ffd8b0 0%, transparent 70%); border-radius: 50%; animation: cro-light 10s linear infinite; }
@keyframes cro-cave { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1); } }
@keyframes cro-raft { 0% { transform: rotate(5deg); } 50% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(5deg); } }
@keyframes cro-tools { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg) translateY(2px); } 100% { transform: rotate(-10deg); } }
@keyframes cro-ody { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg) translateY(-2px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cro-cal { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-2deg) translateY(-1px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cro-light { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

.scn-item-magical-veil {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 50%, #2a2a4a 100%), radial-gradient(ellipse at 70% 30%, #2a2a4a 0%, transparent 80%);
}
.scn-item-magical-veil .storm-sky { position:absolute; inset:0 0 70% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 80%); }
.scn-item-magical-veil .wave-bg { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; animation: mv-wave-bg 6s ease-in-out infinite; }
.scn-item-magical-veil .wave-fg { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%); border-radius: 0 0 60% 40% / 0 0 50% 30%; animation: mv-wave-fg 4s ease-in-out infinite; }
.scn-item-magical-veil .odysseus-swim { position:absolute; bottom:25%; left:20%; width:18px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-20deg); animation: mv-swim 8s ease-in-out infinite; }
.scn-item-magical-veil .veil-glow { position:absolute; bottom:30%; left:25%; width:30px; height:30px; background: radial-gradient(circle, #a0d0ff 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(160,208,255,0.5); animation: mv-veil 3s ease-in-out infinite alternate; }
.scn-item-magical-veil .rocks { position:absolute; bottom:15%; right:10%; width:60px; height:40px; background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 0 10px #0a0a0a; }
.scn-item-magical-veil .river-mouth { position:absolute; bottom:5%; left:30%; right:30%; height:15%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 0 0 50% 50% / 0 0 80% 80%; }
@keyframes mv-wave-bg { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes mv-wave-fg { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-8px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes mv-swim { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(10px) translateY(-3px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes mv-veil { 0% { opacity: 0.6; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2) rotate(10deg); } 100% { opacity: 0.6; transform: scale(0.8); } }

.scn-ulysses-at-phaeacia {
  background: linear-gradient(180deg, #c8a060 0%, #a08040 50%, #806020 100%), radial-gradient(ellipse at 50% 60%, #e0c080 0%, transparent 80%);
}
.scn-ulysses-at-phaeacia .palace-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(200,160,96,0.8) 0%, rgba(160,128,64,0.9) 100%); }
.scn-ulysses-at-phaeacia .column-left { position:absolute; left:10%; top:10%; bottom:30%; width:10%; background: linear-gradient(90deg, #a08050 0%, #c0a060 50%, #a08050 100%); border-radius: 8px; box-shadow: 0 0 20px #604020; animation: up-pillar 4s ease-in-out infinite; }
.scn-ulysses-at-phaeacia .column-right { position:absolute; right:10%; top:10%; bottom:30%; width:10%; background: linear-gradient(90deg, #a08050 0%, #c0a060 50%, #a08050 100%); border-radius: 8px; box-shadow: 0 0 20px #604020; animation: up-pillar 4s ease-in-out infinite reverse; }
.scn-ulysses-at-phaeacia .torch-glow { position:absolute; bottom:40%; left:45%; width:30px; height:40px; background: radial-gradient(circle, #ffc060 0%, #e08020 50%, transparent 80%); border-radius: 50%; animation: up-torch 2s ease-in-out infinite alternate; }
.scn-ulysses-at-phaeacia .nausicaa-fig { position:absolute; bottom:20%; left:25%; width:20px; height:45px; background: linear-gradient(180deg, #d0a87a 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: up-naus 6s ease-in-out infinite; }
.scn-ulysses-at-phaeacia .odysseus-fig { position:absolute; bottom:20%; left:45%; width:22px; height:48px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: up-ody 8s ease-in-out infinite; }
.scn-ulysses-at-phaeacia .athena-owl { position:absolute; top:10%; right:20%; width:15px; height:20px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 50%; box-shadow: 0 0 10px #808080; animation: up-owl 10s ease-in-out infinite; }
.scn-ulysses-at-phaeacia .grove-shadows { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(30,20,10,0.4) 100%); }
@keyframes up-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1); } }
@keyframes up-torch { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.9); } }
@keyframes up-naus { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(2deg) translateY(-2px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes up-ody { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-1deg) translateY(-1px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes up-owl { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(10deg) scale(1.05) translateY(-5px); } 100% { transform: rotate(0deg) scale(1); } }

.scn-alcinous-assembly {
  background: linear-gradient(180deg, #e0a070 0%, #c08050 40%, #a06030 70%, #704020 100%), radial-gradient(ellipse at 50% 0%, #ffc080 0%, transparent 70%);
}
.scn-alcinous-assembly .dawn-sky-a { position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #ffc8a0 0%, #e0a07a 50%, #c08060 100%); }
.scn-alcinous-assembly .palace-steps { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #c08050 0%, #a06030 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; }
.scn-alcinous-assembly .crowd-left { position:absolute; bottom:15%; left:5%; width:20%; height:60%; background: linear-gradient(180deg, #8a5a3a 0%, #5a3a2a 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; animation: aa-crowd 12s ease-in-out infinite; }
.scn-alcinous-assembly .crowd-right { position:absolute; bottom:15%; right:5%; width:20%; height:60%; background: linear-gradient(180deg, #8a5a3a 0%, #5a3a2a 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; animation: aa-crowd 12s ease-in-out infinite reverse; }
.scn-alcinous-assembly .king-alcinous { position:absolute; bottom:25%; left:35%; width:25px; height:55px; background: linear-gradient(180deg, #b08060 0%, #8a6040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: aa-king 6s ease-in-out infinite; }
.scn-alcinous-assembly .odysseus-speaker { position:absolute; bottom:20%; left:48%; width:22px; height:50px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: aa-speaker 8s ease-in-out infinite; }
.scn-alcinous-assembly .minerva-glow { position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #ffffc0 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,255,192,0.5); animation: aa-glow 4s ease-in-out infinite alternate; }
@keyframes aa-crowd { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03) translateY(-3px); } 100% { transform: scaleY(1); } }
@keyframes aa-king { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes aa-speaker { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes aa-glow { 0% { opacity: 0.5; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(0.9); } }
/* end per-scene blocks */
