/* 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) */
/* Scene: pericles-memory-of-daughter (sunlit warm) */
.scn-pericles-memory-of-daughter {
  background:
    linear-gradient(180deg, #f7e9c8 0%, #e2c9a6 30%, #c8a882 60%, #a5835a 100%),
    radial-gradient(ellipse at 50% 0%, #fff4d6 0%, transparent 60%);
}
.scn-pericles-memory-of-daughter .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b8d4e0 0%, #d6e8f0 60%, transparent);
  animation: pmd-sky 12s ease-in-out infinite alternate;
}
.scn-pericles-memory-of-daughter .bg-horizon {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 10%;
  background: linear-gradient(0deg, #a5835a 0%, #c8a882 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.2);
  animation: pmd-horizon 20s ease-in-out infinite alternate;
}
.scn-pericles-memory-of-daughter .figure-king {
  position: absolute; bottom: 28%; left: 25%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #5a3e2b 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pmd-king 6s ease-in-out infinite;
}
.scn-pericles-memory-of-daughter .figure-child {
  position: absolute; bottom: 30%; right: 30%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pmd-child 6s ease-in-out infinite;
}
.scn-pericles-memory-of-daughter .ray-left {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 8px;
  background: linear-gradient(90deg, rgba(255,235,180,0.6) 0%, transparent 100%);
  transform: rotate(-20deg);
  filter: blur(4px);
  animation: pmd-ray 8s ease-in-out infinite alternate;
}
.scn-pericles-memory-of-daughter .ray-right {
  position: absolute; top: 15%; right: 10%; width: 45%; height: 6px;
  background: linear-gradient(270deg, rgba(255,235,180,0.4) 0%, transparent 100%);
  transform: rotate(15deg);
  filter: blur(3px);
  animation: pmd-ray 10s ease-in-out infinite alternate-reverse;
}
.scn-pericles-memory-of-daughter .dust {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 20% 30%, rgba(255,215,150,0.2) 0%, transparent 50%),
              radial-gradient(circle at 70% 20%, rgba(255,215,150,0.15) 0%, transparent 50%);
  filter: blur(2px);
  animation: pmd-dust 15s ease-in-out infinite alternate;
}
@keyframes pmd-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pmd-horizon { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pmd-king { 0% { transform: translate(0,0) rotate(-2deg); } 25% { transform: translate(2px,-1px) rotate(1deg); } 50% { transform: translate(4px,0) rotate(-1deg); } 75% { transform: translate(2px,-1px) rotate(2deg); } 100% { transform: translate(0,0) rotate(-2deg); } }
@keyframes pmd-child { 0% { transform: translate(0,0) rotate(2deg); } 25% { transform: translate(-2px,-1px) rotate(-1deg); } 50% { transform: translate(-4px,0) rotate(2deg); } 75% { transform: translate(-2px,-1px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(2deg); } }
@keyframes pmd-ray { 0% { opacity: 0.3; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes pmd-dust { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

/* Scene: pericles-recognizes-daughter (sunlit warm, embrace) */
.scn-pericles-recognizes-daughter {
  background:
    linear-gradient(180deg, #faeacc 0%, #e6cfaa 40%, #cfb28c 70%, #b8946a 100%),
    radial-gradient(ellipse at 50% 70%, #fff2d6 0%, transparent 60%);
}
.scn-pericles-recognizes-daughter .bg-warm {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 50%, rgba(255,220,150,0.15) 0%, transparent 70%);
  animation: prd-bg 20s ease-in-out infinite alternate;
}
.scn-pericles-recognizes-daughter .figure-embrace {
  position: absolute; bottom: 25%; left: 38%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #6a4e36 0%, #4a3422 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: prd-embrace 5s ease-in-out infinite;
}
.scn-pericles-recognizes-daughter .figure-marina {
  position: absolute; bottom: 25%; right: 38%; width: 32px; height: 52px;
  background: linear-gradient(180deg, #7a5e3e 0%, #5a3e2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: prd-marina 5s ease-in-out infinite;
}
.scn-pericles-recognizes-daughter .halo {
  position: absolute; top: 18%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,230,160,0.4) 0%, transparent 70%);
  transform: translateX(-50%);
  filter: blur(6px);
  animation: prd-halo 4s ease-in-out infinite alternate;
}
.scn-pericles-recognizes-daughter .petal {
  position: absolute; width: 10px; height: 4px;
  background: linear-gradient(90deg, #e8b88a, #d4a070);
  border-radius: 50% 50% 0 0;
  animation: prd-petal 10s linear infinite;
}
.scn-pericles-recognizes-daughter .petal-1 { top: 30%; left: 20%; animation-delay: 0s; }
.scn-pericles-recognizes-daughter .petal-2 { top: 40%; right: 15%; animation-delay: 3s; transform: rotate(45deg); }
.scn-pericles-recognizes-daughter .petal-3 { top: 50%; left: 60%; animation-delay: 6s; transform: rotate(-30deg); }
@keyframes prd-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes prd-embrace { 0% { transform: translate(0,0) rotate(-3deg); } 25% { transform: translate(-2px,-1px) rotate(1deg); } 50% { transform: translate(-4px,0) rotate(-2deg); } 75% { transform: translate(-2px,-1px) rotate(3deg); } 100% { transform: translate(0,0) rotate(-3deg); } }
@keyframes prd-marina { 0% { transform: translate(0,0) rotate(3deg); } 25% { transform: translate(2px,-1px) rotate(-1deg); } 50% { transform: translate(4px,0) rotate(2deg); } 75% { transform: translate(2px,-1px) rotate(-3deg); } 100% { transform: translate(0,0) rotate(3deg); } }
@keyframes prd-halo { 0% { opacity: 0.3; transform: translateX(-50%) scale(0.8); } 50% { opacity: 0.7; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.4; transform: translateX(-50%) scale(0.9); } }
@keyframes prd-petal { 0% { transform: translateY(0) rotate(0deg); opacity: 0.8; } 50% { transform: translateY(-60px) rotate(15deg); opacity: 0.5; } 100% { transform: translateY(-120px) rotate(30deg); opacity: 0; } }

/* Scene: celestial-music (sunlit warm, heavenly) */
.scn-celestial-music {
  background:
    linear-gradient(180deg, #1c2a3a 0%, #2a3a4a 30%, #3a4a5a 60%, #4a5a6a 100%),
    radial-gradient(ellipse at 50% 20%, #f0e6c8 0%, transparent 70%);
}
.scn-celestial-music .bg-night {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 10%, rgba(240,230,200,0.1) 0%, transparent 70%);
  animation: cmu-bg 15s ease-in-out infinite alternate;
}
.scn-celestial-music .figure-king {
  position: absolute; bottom: 30%; left: 20%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: cmu-king 8s ease-in-out infinite;
}
.scn-celestial-music .figure-marina {
  position: absolute; bottom: 32%; right: 22%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: cmu-marina 8s ease-in-out infinite;
}
.scn-celestial-music .music-note {
  position: absolute; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 60%, #f0d080 0%, #c0a060 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  filter: blur(1px);
  animation: cmu-note 6s ease-in-out infinite;
}
.scn-celestial-music .note-1 { top: 15%; left: 30%; animation-delay: 0s; }
.scn-celestial-music .note-2 { top: 25%; left: 50%; animation-delay: 2s; }
.scn-celestial-music .note-3 { top: 20%; right: 30%; animation-delay: 4s; }
.scn-celestial-music .light-ray {
  position: absolute; top: 5%; left: 50%; width: 6px; height: 40%;
  background: linear-gradient(180deg, rgba(255,230,160,0.6) 0%, transparent 100%);
  transform: translateX(-50%) rotate(-5deg);
  filter: blur(8px);
  animation: cmu-ray 10s ease-in-out infinite alternate;
}
@keyframes cmu-bg { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes cmu-king { 0% { transform: translate(0,0) rotate(-1deg); } 50% { transform: translate(3px,-2px) rotate(2deg); } 100% { transform: translate(0,0) rotate(-1deg); } }
@keyframes cmu-marina { 0% { transform: translate(0,0) rotate(2deg); } 50% { transform: translate(-3px,-2px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(2deg); } }
@keyframes cmu-note { 0% { transform: translateY(0) rotate(0deg); opacity: 0.8; } 50% { transform: translateY(-30px) rotate(15deg); opacity: 0.4; } 100% { transform: translateY(-60px) rotate(30deg); opacity: 0; } }
@keyframes cmu-ray { 0% { opacity: 0.2; transform: translateX(-50%) rotate(-5deg) scaleY(0.8); } 50% { opacity: 0.7; transform: translateX(-50%) rotate(0deg) scaleY(1); } 100% { opacity: 0.3; transform: translateX(-50%) rotate(5deg) scaleY(0.9); } }

/* Scene: diana-vision (dim interior warm, candlelight) */
.scn-diana-vision {
  background:
    linear-gradient(180deg, #1a1816 0%, #2a2420 30%, #3a302a 60%, #2a2420 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a30 0%, transparent 70%);
}
.scn-diana-vision .bg-temple {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 70%, rgba(200,160,120,0.15) 0%, transparent 60%);
  animation: dvi-bg 18s ease-in-out infinite alternate;
}
.scn-diana-vision .pillar {
  position: absolute; bottom: 20%; width: 16px; height: 55%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  border-radius: 4px;
  animation: dvi-pillar 12s ease-in-out infinite alternate;
}
.scn-diana-vision .pillar-left { left: 10%; }
.scn-diana-vision .pillar-right { right: 10%; }
.scn-diana-vision .figure-goddess {
  position: absolute; bottom: 25%; left: 50%; width: 36px; height: 60px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: dvi-goddess 8s ease-in-out infinite;
}
.scn-diana-vision .altar {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 14px;
  background: linear-gradient(0deg, #5a3a2a 0%, #7a5a3a 100%);
  transform: translateX(-50%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: dvi-altar 15s ease-in-out infinite alternate;
}
.scn-diana-vision .flame {
  position: absolute; bottom: 34%; left: 48%; width: 8px; height: 20px;
  background: radial-gradient(ellipse at 50% 20%, #ffc080 0%, #e08040 50%, transparent);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
  animation: dvi-flame 2s ease-in-out infinite alternate;
}
.scn-diana-vision .flame-1 { left: 47%; animation-delay: 0s; }
.scn-diana-vision .flame-2 { left: 53%; animation-delay: 0.5s; }
@keyframes dvi-bg { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes dvi-pillar { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dvi-goddess { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes dvi-altar { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes dvi-flame { 0% { transform: scaleY(1) rotate(-2deg); opacity: 0.6; } 50% { transform: scaleY(1.2) rotate(2deg); opacity: 1; } 100% { transform: scaleY(0.9) rotate(-1deg); opacity: 0.7; } }

.scn-pandar-bargain {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 30%, #3a2a20 70%, #1a1410 100%),
              radial-gradient(ellipse at 50% 80%, #4a3525 0%, transparent 70%);
}
.scn-pandar-bargain .floor  { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #2a1e18 0%, #3a2a20 100%); }
.scn-pandar-bargain .wall   { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1410 0%, #2a1e18 80%); }
.scn-pandar-bargain .table  { position:absolute; bottom:20%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #4a3525 0%, #2a1e18 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-pandar-bargain .candle { position:absolute; bottom:30%; left:48%; width:4px; height:18px; background: #c8a070; border-radius:2px; box-shadow: 0 0 20px 6px #f0a060, 0 0 40px 12px rgba(240,160,96,.4); animation: pb-candle 5s ease-in-out infinite alternate; }
.scn-pandar-bargain .pandar { position:absolute; bottom:20%; left:20%; width:24px; height:60px; background: linear-gradient(180deg, #4a3525 0%, #2a1e18 50%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pb-figure 6s ease-in-out infinite; }
.scn-pandar-bargain .coins  { position:absolute; bottom:25%; left:44%; width:12px; height:4px; background: #c8a070; border-radius:50%; box-shadow: 0 0 8px 2px #c8a070; animation: pb-coins 4s ease-in-out infinite; }
.scn-pandar-bargain .door   { position:absolute; bottom:20%; right:10%; width:20%; height:80%; background: linear-gradient(90deg, #2a1e18 0%, #1a1410 100%); border-radius:4px 0 0 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: pb-door 12s ease-in-out infinite alternate; }
@keyframes pb-candle  { 0% { transform: scaleY(1); opacity:.8; box-shadow: 0 0 20px 6px #f0a060, 0 0 40px 12px rgba(240,160,96,.3); } 50% { transform: scaleY(1.05); opacity:1; box-shadow: 0 0 30px 10px #f0a060, 0 0 60px 20px rgba(240,160,96,.5); } 100% { transform: scaleY(.95); opacity:.7; box-shadow: 0 0 15px 4px #f0a060, 0 0 30px 8px rgba(240,160,96,.2); } }
@keyframes pb-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-6px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes pb-coins  { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(-2px) scale(1.1); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:.6; } }
@keyframes pb-door   { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }

.scn-bawd-order-marks {
  background: linear-gradient(180deg, #1e1816 0%, #2a201c 30%, #3a2c26 70%, #1e1816 100%),
              radial-gradient(ellipse at 40% 50%, #4a3828 0%, transparent 80%);
}
.scn-bawd-order-marks .floor    { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(0deg, #2a201c 0%, #3a2c26 100%); }
.scn-bawd-order-marks .wall     { position:absolute; inset:0 0 18% 0; background: linear-gradient(180deg, #1e1816 0%, #2a201c 80%); }
.scn-bawd-order-marks .ledger   { position:absolute; bottom:25%; left:55%; width:40px; height:30px; background: linear-gradient(135deg, #5a4a3a 0%, #3a2c26 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: rotate(-10deg); animation: bom-ledger 8s ease-in-out infinite alternate; }
.scn-bawd-order-marks .chair    { position:absolute; bottom:20%; left:40%; width:30px; height:45px; background: linear-gradient(180deg, #4a3828 0%, #2a201c 100%); border-radius:4px 4px 2px 2px; }
.scn-bawd-order-marks .bawd     { position:absolute; bottom:20%; left:30%; width:22px; height:58px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2c26 50%, #1e1816 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bom-bawd 7s ease-in-out infinite; }
.scn-bawd-order-marks .boult    { position:absolute; bottom:20%; left:55%; width:20px; height:56px; background: linear-gradient(180deg, #4a3828 0%, #2a201c 50%, #1e1816 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bom-boult 7s ease-in-out infinite alternate; }
.scn-bawd-order-marks .window   { position:absolute; top:20%; left:10%; width:50px; height:60px; background: linear-gradient(180deg, rgba(100,80,60,.3) 0%, rgba(60,40,20,.5) 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: bom-window 15s ease-in-out infinite alternate; }
@keyframes bom-ledger { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes bom-bawd   { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes bom-boult  { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes bom-window { 0% { opacity:.5; box-shadow: inset 0 0 20px rgba(0,0,0,.3); } 50% { opacity:.8; box-shadow: inset 0 0 30px rgba(0,0,0,.6); } 100% { opacity:.5; box-shadow: inset 0 0 20px rgba(0,0,0,.3); } }

.scn-marina-laments {
  background: linear-gradient(180deg, #0a0c14 0%, #141a24 40%, #202838 70%, #0a0c14 100%),
              radial-gradient(ellipse at 30% 60%, #2a3450 0%, transparent 70%);
}
.scn-marina-laments .floor   { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(0deg, #141a24 0%, #202838 100%); }
.scn-marina-laments .wall    { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #0a0c14 0%, #141a24 80%); }
.scn-marina-laments .chains  { position:absolute; bottom:35%; left:50%; width:2px; height:30px; background: #4a4a5a; box-shadow: 0 4px 6px rgba(0,0,0,.5); animation: ml-chains 4s ease-in-out infinite alternate; }
.scn-marina-laments .marina  { position:absolute; bottom:20%; left:35%; width:20px; height:52px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ml-figure 6s ease-in-out infinite; }
.scn-marina-laments .pirate  { position:absolute; bottom:20%; right:20%; width:24px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ml-pirate 8s ease-in-out infinite; }
.scn-marina-laments .tears   { position:absolute; bottom:38%; left:38%; width:2px; height:6px; background: #404870; border-radius:50%; box-shadow: 0 0 4px 2px #404870; animation: ml-tears 3s ease-in-out infinite; }
.scn-marina-laments .shadow  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%); animation: ml-shadow 10s ease-in-out infinite alternate; }
@keyframes ml-chains { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ml-figure { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(2px) translateY(-3px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ml-pirate { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-4px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ml-tears  { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(8px) scale(.8); opacity:0; } 100% { transform: translateY(0) scale(1); opacity:.6; } }
@keyframes ml-shadow { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.6; } }

.scn-marina-scape {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 30%, #3a2a1a 70%, #1a1410 100%),
              radial-gradient(ellipse at 60% 50%, #4a3525 0%, transparent 80%);
}
.scn-marina-scape .floor   { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #2a2018 0%, #3a2a1a 100%); }
.scn-marina-scape .wall    { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1410 0%, #2a2018 80%); }
.scn-marina-scape .keeper  { position:absolute; bottom:20%; left:60%; width:24px; height:56px; background: linear-gradient(180deg, #4a3525 0%, #2a1e18 50%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-keeper 5s ease-in-out infinite; }
.scn-marina-scape .marina  { position:absolute; bottom:20%; left:30%; width:20px; height:52px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 50%, #0a0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-marina 3s ease-in-out infinite; }
.scn-marina-scape .hands   { position:absolute; bottom:40%; left:32%; width:8px; height:12px; background: #3a2a1a; border-radius:50%; box-shadow: 0 0 6px 2px rgba(0,0,0,.5); animation: ms-hands 2s ease-in-out infinite; }
.scn-marina-scape .door    { position:absolute; bottom:20%; left:10%; width:28%; height:80%; background: linear-gradient(90deg, #2a2018 0%, #1a1410 100%); border-radius:4px; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: ms-door 10s ease-in-out infinite alternate; }
.scn-marina-scape .lamp    { position:absolute; top:15%; left:55%; width:8px; height:12px; background: #c8a070; border-radius:2px; box-shadow: 0 0 20px 8px #f0a060, 0 0 40px 16px rgba(240,160,96,.4); animation: ms-lamp 4s ease-in-out infinite alternate; }
@keyframes ms-keeper { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-6px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes ms-marina { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-2px) translateY(-2px) rotate(-3deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ms-hands  { 0% { transform: translateY(0) scale(1); opacity:.8; } 50% { transform: translateY(-3px) scale(1.2); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:.8; } }
@keyframes ms-door   { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(0); } }
@keyframes ms-lamp   { 0% { transform: scaleY(1); opacity:.8; box-shadow: 0 0 20px 8px #f0a060, 0 0 40px 16px rgba(240,160,96,.3); } 50% { transform: scaleY(1.05); opacity:1; box-shadow: 0 0 30px 12px #f0a060, 0 0 60px 24px rgba(240,160,96,.5); } 100% { transform: scaleY(.95); opacity:.7; box-shadow: 0 0 15px 6px #f0a060, 0 0 30px 10px rgba(240,160,96,.2); } }

.scn-lysistratus-approves {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #3d2b22 40%, #1e1410 100%),
    radial-gradient(ellipse at 30% 50%, #4a3528 0%, transparent 70%);
}
.scn-lysistratus-approves .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a1f1a 0%, #3d2b22 100%); animation: la-wall 12s ease-in-out infinite alternate; }
.scn-lysistratus-approves .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1e1410 0%, #0f0a08 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-lysistratus-approves .window { position:absolute; top:12%; left:60%; width:60px; height:80px; border-radius:4px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%); box-shadow: inset 0 0 20px #000; animation: la-window 18s ease-in-out infinite; }
.scn-lysistratus-approves .lamp { position:absolute; top:20%; left:25%; width:20px; height:30px; background: radial-gradient(circle at 50% 70%, #c08040 0%, #7a4a20 60%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(192,128,64,.5), 0 0 60px 20px rgba(192,128,64,.2); animation: la-lamp 4s ease-in-out infinite alternate; }
.scn-lysistratus-approves .figure-lysistratus { position:absolute; bottom:25%; left:35%; width:24px; height:50px; background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: la-figure 6s ease-in-out infinite; }
.scn-lysistratus-approves .table { position:absolute; bottom:20%; left:45%; width:70px; height:14px; background: linear-gradient(180deg, #4a3528 0%, #2a1f1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-lysistratus-approves .scroll { position:absolute; bottom:28%; left:48%; width:12px; height:18px; background: #6a5a3a; border-radius: 2px; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: la-scroll 8s ease-in-out infinite alternate; }

@keyframes la-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes la-window { 0%,100% { background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%) } 50% { background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%) } }
@keyframes la-lamp { 0% { opacity:.8; box-shadow: 0 0 20px 8px rgba(192,128,64,.4) } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(192,128,64,.7) } 100% { opacity:.9; box-shadow: 0 0 25px 10px rgba(192,128,64,.5) } }
@keyframes la-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(8px) rotate(-2deg) } 60% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes la-scroll { 0% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }

.scn-marina-bound {
  background: 
    linear-gradient(180deg, #1a1412 0%, #2a1f1a 50%, #0d0a08 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a20 0%, transparent 70%);
}
.scn-marina-bound .bg-dark { position:absolute; inset:0; background: linear-gradient(90deg, #0d0a08 0%, #1a1412 100%); }
.scn-marina-bound .pillar-left { position:absolute; bottom:0; left:10%; width:20px; height:60%; background: linear-gradient(180deg, #3a2a20 0%, #1a1412 100%); border-radius: 6px; box-shadow: 0 0 20px rgba(0,0,0,.5); }
.scn-marina-bound .pillar-right { position:absolute; bottom:0; right:10%; width:20px; height:60%; background: linear-gradient(180deg, #3a2a20 0%, #1a1412 100%); border-radius: 6px; }
.scn-marina-bound .chain-left { position:absolute; bottom:40%; left:12%; width:4px; height:40px; background: #5a4a3a; border-radius: 2px; transform: rotate(15deg); animation: mb-chain 3s ease-in-out infinite alternate; }
.scn-marina-bound .chain-right { position:absolute; bottom:40%; right:12%; width:4px; height:40px; background: #5a4a3a; border-radius: 2px; transform: rotate(-15deg); animation: mb-chain 3s ease-in-out infinite alternate-reverse; }
.scn-marina-bound .figure-marina { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:20px; height:44px; background: linear-gradient(180deg, #2a1f1a 0%, #1a1412 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mb-marina 5s ease-in-out infinite; }
.scn-marina-bound .brazier { position:absolute; bottom:15%; left:45%; width:16px; height:24px; background: radial-gradient(circle at 50% 20%, #c08040 0%, #7a4a20 60%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 12px rgba(192,128,64,.5); animation: mb-brazier 4s ease-in-out infinite alternate; }
.scn-marina-bound .guard { position:absolute; bottom:20%; right:20%; width:22px; height:48px; background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-guard 8s ease-in-out infinite; }

@keyframes mb-chain { 0% { transform: rotate(15deg) translateY(0) } 100% { transform: rotate(15deg) translateY(4px) } }
@keyframes mb-marina { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes mb-brazier { 0% { opacity:.7; box-shadow: 0 0 20px 8px rgba(192,128,64,.3) } 100% { opacity:1; box-shadow: 0 0 50px 18px rgba(192,128,64,.7) } }
@keyframes mb-guard { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }

.scn-boult-pacing {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #1a1412 50%, #0d0a08 100%),
    radial-gradient(ellipse at 50% 30%, #3d2b22 0%, transparent 80%);
}
.scn-boult-pacing .bg-corridor { position:absolute; inset:0; background: linear-gradient(90deg, #1a1412 0%, #2a1f1a 100%); }
.scn-boult-pacing .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #0d0a08 0%, #1a1412 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-boult-pacing .torch-left { position:absolute; top:15%; left:10%; width:10px; height:20px; background: radial-gradient(circle at 50% 0%, #c08040 0%, #7a4a20 80%, transparent 100%); border-radius: 10px 10px 0 0; box-shadow: 0 0 30px 10px rgba(192,128,64,.4); animation: bp-torch 3s ease-in-out infinite alternate; }
.scn-boult-pacing .torch-right { position:absolute; top:15%; right:10%; width:10px; height:20px; background: radial-gradient(circle at 50% 0%, #c08040 0%, #7a4a20 80%, transparent 100%); border-radius: 10px 10px 0 0; box-shadow: 0 0 30px 10px rgba(192,128,64,.4); animation: bp-torch 3s ease-in-out infinite alternate-reverse; }
.scn-boult-pacing .figure-boult { position:absolute; bottom:20%; left:30%; width:20px; height:46px; background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bp-pace 6s ease-in-out infinite; }
.scn-boult-pacing .door-left { position:absolute; bottom:10%; left:2%; width:50px; height:70px; background: linear-gradient(180deg, #3a2a20 0%, #2a1f1a 100%); border-radius: 4px; border: 2px solid #4a3528; box-shadow: -6px 0 20px rgba(0,0,0,.7); }
.scn-boult-pacing .door-right { position:absolute; bottom:10%; right:2%; width:50px; height:70px; background: linear-gradient(180deg, #3a2a20 0%, #2a1f1a 100%); border-radius: 4px; border: 2px solid #4a3528; box-shadow: 6px 0 20px rgba(0,0,0,.7); }

@keyframes bp-torch { 0% { opacity:.6; box-shadow: 0 0 15px 5px rgba(192,128,64,.2) } 100% { opacity:1; box-shadow: 0 0 40px 15px rgba(192,128,64,.6) } }
@keyframes bp-pace { 0% { transform: translateX(0) } 25% { transform: translateX(40px) } 50% { transform: translateX(80px) } 75% { transform: translateX(40px) } 100% { transform: translateX(0) } }

.scn-marina-not-offend {
  background: 
    linear-gradient(180deg, #1a1412 0%, #2a1f1a 40%, #0d0a08 100%),
    radial-gradient(ellipse at 50% 60%, #3d2b22 0%, transparent 70%);
}
.scn-marina-not-offend .bg-room { position:absolute; inset:0; background: linear-gradient(90deg, #0d0a08 0%, #1a1412 100%); }
.scn-marina-not-offend .table-round { position:absolute; bottom:18%; left:50%; transform:translateX(-50%); width:80px; height:16px; background: linear-gradient(180deg, #4a3528 0%, #2a1f1a 100%); border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.6); }
.scn-marina-not-offend .candle { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:6px; height:20px; background: linear-gradient(180deg, #c08040 0%, #7a4a20 100%); border-radius: 3px; box-shadow: 0 0 40px 12px rgba(192,128,64,.6); animation: mn-candle 4s ease-in-out infinite alternate; }
.scn-marina-not-offend .figure-marina { position:absolute; bottom:18%; left:35%; width:20px; height:44px; background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mn-marina 7s ease-in-out infinite; }
.scn-marina-not-offend .figure-client { position:absolute; bottom:18%; right:35%; width:24px; height:48px; background: linear-gradient(180deg, #2a1f1a 0%, #1a1412 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mn-client 7s ease-in-out infinite reverse; }
.scn-marina-not-offend .cup { position:absolute; bottom:24%; left:50%; transform:translateX(-50%); width:12px; height:14px; background: #5a4a3a; border-radius: 4px 4px 6px 6px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-marina-not-offend .chair { position:absolute; bottom:10%; right:30%; width:30px; height:12px; background: linear-gradient(180deg, #3a2a20 0%, #2a1f1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }

@keyframes mn-candle { 0% { opacity:.7; box-shadow: 0 0 20px 6px rgba(192,128,64,.3) } 100% { opacity:1; box-shadow: 0 0 50px 18px rgba(192,128,64,.7) } }
@keyframes mn-marina { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mn-client { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* pericles-ship-arrival */
.scn-pericles-ship-arrival {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 30%, #F0E68C 70%, #FFD700 100%);
}
.scn-pericles-ship-arrival .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 100%);
  animation: psa-sky 12s ease-in-out infinite alternate;
}
.scn-pericles-ship-arrival .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4682B4 0%, #2E5090 50%, #1A3A6A 100%);
  border-radius: 20% 80% 0 0;
  animation: psa-sea 8s ease-in-out infinite alternate;
}
.scn-pericles-ship-arrival .ship {
  position: absolute; bottom: 25%; left: 30%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: psa-ship 6s ease-in-out infinite;
}
.scn-pericles-ship-arrival .sail-fore {
  position: absolute; bottom: 35%; left: 32%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #F5F5DC 0%, #EEDC82 100%);
  border-radius: 0 50% 50% 0;
  transform: rotate(-10deg);
  animation: psa-sail 8s ease-in-out infinite alternate;
}
.scn-pericles-ship-arrival .sail-aft {
  position: absolute; bottom: 35%; left: 48%; width: 45px; height: 55px;
  background: linear-gradient(180deg, #F5F5DC 0%, #EEDC82 100%);
  border-radius: 50% 0 0 50%;
  transform: rotate(5deg);
  animation: psa-sail 8s ease-in-out infinite alternate-reverse;
}
.scn-pericles-ship-arrival .flag {
  position: absolute; bottom: 42%; left: 28%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #CD853F 0%, #B8860B 100%);
  border-radius: 0 50% 50% 0;
  animation: psa-flag 4s ease-in-out infinite;
}
.scn-pericles-ship-arrival .figure {
  position: absolute; bottom: 30%; left: 38%; width: 14px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #F5DEB3 0%, #D2B48C 60%, #8B7355 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: psa-figure 5s ease-in-out infinite;
}
.scn-pericles-ship-arrival .barge {
  position: absolute; bottom: 20%; left: 65%; width: 80px; height: 35px;
  background: linear-gradient(180deg, #6B4226 0%, #4A2F1A 100%);
  border-radius: 30% 30% 10% 10%;
  animation: psa-barge 10s ease-in-out infinite;
}

@keyframes psa-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes psa-sea { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-4px); } }
@keyframes psa-ship { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(0.5deg); } }
@keyframes psa-sail { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(-15deg); } }
@keyframes psa-flag { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(0.9); } }
@keyframes psa-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes psa-barge { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }

/* helicanus-welcome */
.scn-helicanus-welcome {
  background: linear-gradient(180deg, #87CEEB 0%, #B0C4DE 40%, #D2B48C 70%, #DEB887 100%);
}
.scn-helicanus-welcome .deck {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #C4A882 0%, #A0845C 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-helicanus-welcome .rail {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 4px;
  background: #8B7355;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hew-rail 3s ease-in-out infinite;
}
.scn-helicanus-welcome .helmsman {
  position: absolute; bottom: 30%; left: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hew-helmsman 5s ease-in-out infinite;
}
.scn-helicanus-welcome .gentlemen {
  position: absolute; bottom: 28%; left: 45%; width: 60px; height: 30px;
  background: linear-gradient(90deg, #EEDC82 0%, #DAA520 50%, #B8860B 100%);
  border-radius: 30% 30% 10% 10%;
  animation: hew-gentlemen 7s ease-in-out infinite;
}
.scn-helicanus-welcome .gangplank {
  position: absolute; bottom: 22%; left: 70%; width: 60px; height: 6px;
  background: #6B4226;
  transform: rotate(-20deg);
  transform-origin: left bottom;
  animation: hew-gangplank 6s ease-in-out infinite alternate;
}
.scn-helicanus-welcome .barge-bow {
  position: absolute; bottom: 15%; left: 80%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: hew-barge 10s ease-in-out infinite;
}
.scn-helicanus-welcome .sun-ray {
  position: absolute; top: 0; left: 30%; width: 4px; height: 100%;
  background: linear-gradient(180deg, #FFD700 0%, transparent 100%);
  opacity: 0.3;
  animation: hew-ray 8s ease-in-out infinite alternate;
}

@keyframes hew-rail { 0%,100% { opacity: 1; } 50% { opacity: 0.8; } }
@keyframes hew-helmsman { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes hew-gentlemen { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(0.9); } }
@keyframes hew-gangplank { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-25deg); } }
@keyframes hew-barge { 0%,100% { transform: translateY(0); } 50% { transform: translateY(3px); } }
@keyframes hew-ray { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.1; } }

/* helicanus-resolve */
.scn-helicanus-resolve {
  background: linear-gradient(180deg, #4682B4 0%, #87CEEB 30%, #F0E68C 60%, #DEB887 100%);
}
.scn-helicanus-resolve .shore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #DEB887 0%, #C4A882 50%, #A0845C 100%);
  border-radius: 40% 60% 0 0;
}
.scn-helicanus-resolve .neptune-statue {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #B0C4DE 0%, #778899 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: hre-statue 10s ease-in-out infinite alternate;
}
.scn-helicanus-resolve .pedestal {
  position: absolute; bottom: 25%; left: 38%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #A0522D 0%, #8B4513 100%);
  border-radius: 10% 10% 0 0;
}
.scn-helicanus-resolve .pericles-figure {
  position: absolute; bottom: 20%; left: 55%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hre-pericles 6s ease-in-out infinite;
}
.scn-helicanus-resolve .wreath {
  position: absolute; bottom: 38%; left: 42%; width: 24px; height: 12px;
  background: radial-gradient(ellipse, #228B22 0%, #006400 100%);
  border-radius: 50%;
  animation: hre-wreath 5s ease-in-out infinite;
}
.scn-helicanus-resolve .wave {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #4682B4 0%, #2E5090 100%);
  border-radius: 50% 50% 0 0;
  animation: hre-wave 4s ease-in-out infinite alternate;
}
.scn-helicanus-resolve .cloud {
  position: absolute; top: 10%; left: 20%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: hre-cloud 35s linear infinite;
}

@keyframes hre-statue { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes hre-pericles { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes hre-wreath { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes hre-wave { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes hre-cloud { 0% { transform: translateX(-80px); } 100% { transform: translateX(120vw); } }

/* helicanus-place */
.scn-helicanus-place {
  background: linear-gradient(180deg, #87CEEB 0%, #B0C4DE 30%, #F5DEB3 60%, #D2B48C 100%);
}
.scn-helicanus-place .harbor-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 100%);
  animation: hpl-sky 15s ease-in-out infinite alternate;
}
.scn-helicanus-place .harbor-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4682B4 0%, #2E5090 50%, #1A3A6A 100%);
  border-radius: 30% 70% 0 0;
  animation: hpl-sea 10s ease-in-out infinite alternate;
}
.scn-helicanus-place .city-wall {
  position: absolute; bottom: 35%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #A0845C 0%, #8B7355 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.3);
}
.scn-helicanus-place .governor-tower {
  position: absolute; bottom: 45%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #DEB887 0%, #C4A882 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 5px 10px rgba(0,0,0,0.2);
  animation: hpl-tower 8s ease-in-out infinite alternate;
}
.scn-helicanus-place .gate {
  position: absolute; bottom: 42%; left: 43%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%);
  border-radius: 20% 20% 0 0;
  animation: hpl-gate 6s ease-in-out infinite;
}
.scn-helicanus-place .guard {
  position: absolute; bottom: 38%; left: 38%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #B8860B 0%, #A0522D 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hpl-guard 5s ease-in-out infinite;
}
.scn-helicanus-place .ship-mast {
  position: absolute; bottom: 15%; left: 20%; width: 4px; height: 60px;
  background: #8B4513;
  transform-origin: bottom center;
  animation: hpl-mast 12s ease-in-out infinite;
}
.scn-helicanus-place .seagull {
  position: absolute; top: 12%; left: 60%; width: 20px; height: 8px;
  background: radial-gradient(ellipse, #FFFFFF 0%, #D3D3D3 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: hpl-gull 20s linear infinite;
}

@keyframes hpl-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hpl-sea { 0% { transform: translateX(-5px); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes hpl-tower { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes hpl-gate { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } }
@keyframes hpl-guard { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-3px); } }
@keyframes hpl-mast { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes hpl-gull { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-bawd-abominable { background: linear-gradient(180deg, #2a1b0e 0%, #1a0f04 40%, #0d0700 100%), radial-gradient(ellipse at 20% 80%, #4a2a12 40%, transparent 80%); }
.scn-bawd-abominable .wall-back { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1b0e, #1e1208); }
.scn-bawd-abominable .floor { position:absolute; bottom:0; inset:65% 0 0 0; background: linear-gradient(0deg, #0d0700 0%, #1a0f04 40%, #2a1b0e 100%); }
.scn-bawd-abominable .brazier { position:absolute; bottom:30%; left:70%; width:30px; height:25px; background: radial-gradient(circle at 50% 30%, #d06020 20%, #402010 70%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(180,80,20,.6); }
.scn-bawd-abominable .brazier-glow { position:absolute; bottom:30%; left:65%; width:50px; height:50px; background: radial-gradient(circle, #f08030 0%, transparent 70%); border-radius:50%; filter: blur(12px); opacity:.6; animation: bawd-fire 3s ease-in-out infinite alternate; }
.scn-bawd-abominable .bawd-figure { position:absolute; bottom:35%; left:40%; width:20px; height:45px; background: linear-gradient(180deg, #1a0f04 0%, #0d0700 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-bawd-abominable .bawd-arm { position:absolute; bottom:55%; left:42%; width:4px; height:20px; background: #0d0700; border-radius:30% 30% 30% 30%; transform-origin: bottom center; animation: bawd-arm 1s ease-in-out infinite alternate; }
.scn-bawd-abominable .hanging-rope { position:absolute; top:5%; left:30%; width:2px; height:15%; background: #3a2a1a; border-radius:1px; box-shadow: 0 0 2px rgba(0,0,0,.5); animation: bawd-rope 6s ease-in-out infinite; }
.scn-bawd-abominable .shadow-patch { position:absolute; bottom:30%; left:35%; width:40px; height:35px; background: radial-gradient(ellipse at 50% 50%, #000 0%, transparent 70%); opacity:.4; filter: blur(8px); }
@keyframes bawd-fire { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.6; transform: scale(.95) } }
@keyframes bawd-arm { 0% { transform: rotate(-30deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-10deg) } }
@keyframes bawd-rope { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
/* 4 animations: bawd-fire, bawd-arm, bawd-rope, and additional on floor? but we have 4 declared. */

.scn-boult-plough { background: linear-gradient(180deg, #1f1210 0%, #110908 50%, #050303 100%), radial-gradient(ellipse at 60% 30%, #3a1a0a 30%, transparent 70%); }
.scn-boult-plough .wall-back { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1f1210, #150b0a); }
.scn-boult-plough .floor { position:absolute; bottom:0; inset:60% 0 0 0; background: linear-gradient(0deg, #050303 0%, #110908 50%, #1f1210 100%); }
.scn-boult-plough .table { position:absolute; bottom:30%; left:20%; width:60px; height:20px; background: linear-gradient(180deg, #3a2a1a, #1a0f08); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-boult-plough .candle { position:absolute; bottom:45%; left:22%; width:4px; height:12px; background: radial-gradient(circle at 50% 100%, #f0c060 20%, #2a1a0a 80%); border-radius:2px 2px 0 0; box-shadow: 0 0 10px 3px rgba(240,192,96,.4); animation: bplt-candle 4s ease-in-out infinite alternate; }
.scn-boult-plough .boult-figure { position:absolute; bottom:30%; left:50%; width:24px; height:40px; background: linear-gradient(180deg, #0d0700 0%, #050303 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); }
.scn-boult-plough .boult-arm-tool { position:absolute; bottom:35%; left:55%; width:4px; height:22px; background: #050303; border-radius:2px; transform-origin: bottom center; transform: rotate(20deg); animation: bplt-arm 2s ease-in-out infinite; }
.scn-boult-plough .marina-silhouette { position:absolute; bottom:30%; left:25%; width:16px; height:38px; background: linear-gradient(180deg, #1f1210 0%, #110908 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.9; }
.scn-boult-plough .damp-stain { position:absolute; bottom:25%; left:45%; width:25px; height:15px; background: radial-gradient(ellipse, #2a1a0a 0%, transparent 70%); opacity:.3; filter: blur(6px); animation: bplt-stain 8s ease-in-out infinite; }
@keyframes bplt-candle { 0% { opacity:.7; box-shadow: 0 0 6px 2px rgba(240,192,96,.3) } 50% { opacity:1; box-shadow: 0 0 14px 5px rgba(240,192,96,.6) } 100% { opacity:.8; box-shadow: 0 0 8px 3px rgba(240,192,96,.4) } }
@keyframes bplt-arm { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(-10deg) } }
@keyframes bplt-stain { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.4; transform: scale(1.2) } 100% { opacity:.3; transform: scale(.9) } }
/* animations: bplt-candle, bplt-arm, bplt-stain, also background? but we have 3. need 4. Add animation on boult-figure? */
.scn-boult-plough .boult-figure { animation: bplt-breathe 5s ease-in-out infinite; }
@keyframes bplt-breathe { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } }

.scn-boult-come-mistress { background: linear-gradient(180deg, #1b1215 0%, #0f080a 50%, #060304 100%), radial-gradient(ellipse at 30% 40%, #3a1a1a 20%, transparent 80%); }
.scn-boult-come-mistress .wall-back { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1b1215, #120a0c); }
.scn-boult-come-mistress .floor { position:absolute; bottom:0; inset:60% 0 0 0; background: linear-gradient(0deg, #060304, #0f080a, #1b1215); }
.scn-boult-come-mistress .door-frame { position:absolute; top:15%; right:15%; width:40px; height:60%; background: linear-gradient(180deg, #3a2a2a, #1a1010); border-radius:8px 8px 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.5); }
.scn-boult-come-mistress .door-opening { position:absolute; top:18%; right:19%; width:32px; height:54%; background: #0a0505; border-radius:4px 4px 0 0; }
.scn-boult-come-mistress .boult-leading { position:absolute; bottom:30%; left:35%; width:20px; height:42px; background: linear-gradient(180deg, #0d0700, #050303); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bocm-walk 3s ease-in-out infinite; }
.scn-boult-come-mistress .marina-trailing { position:absolute; bottom:30%; left:25%; width:16px; height:38px; background: linear-gradient(180deg, #1b1215, #0f080a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bocm-drag 3.5s ease-in-out infinite; }
.scn-boult-come-mistress .lantern-light { position:absolute; top:30%; left:20%; width:8px; height:8px; background: radial-gradient(circle, #f0c070 20%, rgba(240,192,112,.2) 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(240,192,112,.5); filter: blur(4px); animation: bocm-lantern 4s ease-in-out infinite alternate; }
.scn-boult-come-mistress .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 30% 35%, rgba(255,200,150,.05) 0%, transparent 60%); animation: bocm-dust 12s linear infinite; }
@keyframes bocm-walk { 0%,100% { transform: translateX(0) } 50% { transform: translateX(8px) } }
@keyframes bocm-drag { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-2px) translateY(1px) } }
@keyframes bocm-lantern { 0% { opacity:.4; transform: scale(.9) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.6; transform: scale(1) } }
@keyframes bocm-dust { 0% { transform: translateY(0) } 100% { transform: translateY(-20px) } }

.scn-marina-worse-than-thou { background: linear-gradient(180deg, #1a1a2e 0%, #12121c 50%, #0a0a0f 100%), radial-gradient(ellipse at 40% 50%, #2a2a4e 30%, transparent 70%); }
.scn-marina-worse-than-thou .wall-back { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1a2e, #141420); }
.scn-marina-worse-than-thou .floor { position:absolute; bottom:0; inset:55% 0 0 0; background: linear-gradient(0deg, #0a0a0f, #12121c, #1a1a2e); }
.scn-marina-worse-than-thou .door-arch { position:absolute; top:10%; right:10%; width:50px; height:65%; background: linear-gradient(180deg, #2a2a3e, #1a1a2e); border-radius:50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-marina-worse-than-thou .marina-standing { position:absolute; bottom:35%; left:40%; width:18px; height:40px; background: linear-gradient(180deg, #2a2a3e 0%, #12121c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mwt-stand 6s ease-in-out infinite; }
.scn-marina-worse-than-thou .marina-arm { position:absolute; bottom:55%; left:42%; width:3px; height:15px; background: #12121c; border-radius:30% 30% 20% 20%; transform-origin: bottom center; transform: rotate(-20deg); animation: mwt-arm 4s ease-in-out infinite alternate; }
.scn-marina-worse-than-thou .boult-cowering { position:absolute; bottom:30%; left:60%; width:22px; height:35px; background: linear-gradient(180deg, #0f0f14 0%, #08080a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: mwt-cower 8s ease-in-out infinite; }
.scn-marina-worse-than-thou .faint-glow { position:absolute; top:20%; left:30%; width:40px; height:40px; background: radial-gradient(circle, #406080 0%, transparent 70%); opacity:.15; filter: blur(10px); animation: mwt-glow 10s ease-in-out infinite alternate; }
.scn-marina-worse-than-thou .drift-particles { position:absolute; inset:0; background: radial-gradient(circle at 50% 50%, rgba(100,150,200,.02) 0%, transparent 60%); filter: blur(2px); animation: mwt-drift 30s linear infinite; }
@keyframes mwt-stand { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes mwt-arm { 0% { transform: rotate(-20deg) } 100% { transform: rotate(10deg) } }
@keyframes mwt-cower { 0%,100% { transform: scaleX(-1) translateY(0) } 50% { transform: scaleX(-1) translateY(2px) } }
@keyframes mwt-glow { 0% { opacity:.1; transform: scale(1) } 50% { opacity:.2; transform: scale(1.2) } 100% { opacity:.15; transform: scale(.9) } }
@keyframes mwt-drift { 0% { transform: translateY(0) } 100% { transform: translateY(-30px) } }

.scn-antioch-aside-threat {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 40%, #0a0a05 100%),
    radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 60%);
}
.scn-antioch-aside-threat .wall-back {
  position:absolute; inset:0 0 0 0;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  animation: aat-wall 20s ease-in-out infinite alternate;
}
.scn-antioch-aside-threat .the-column {
  position:absolute; bottom:20%; width:24px; height:60%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.7);
}
.scn-antioch-aside-threat .column-l { left:12%; }
.scn-antioch-aside-threat .column-r { right:12%; }
.scn-antioch-aside-threat .throne {
  position:absolute; bottom:20%; left:50%; width:80px; height:90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.8);
  animation: aat-throne 6s ease-in-out infinite;
}
.scn-antioch-aside-threat .figure-king {
  position:absolute; bottom:30%; left:50%; width:28px; height:70px;
  transform: translateX(-56%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: aat-king 4s ease-in-out infinite;
}
.scn-antioch-aside-threat .figure-aside {
  position:absolute; bottom:28%; left:62%; width:24px; height:60px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform: rotate(-8deg);
  animation: aat-aside 3s ease-in-out infinite alternate;
}
.scn-antioch-aside-threat .torch {
  position:absolute; bottom:38%; left:45%; width:8px; height:12px;
  background: radial-gradient(circle, #ffcc80 0%, #b08040 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 12px rgba(255,160,64,0.5);
  animation: aat-torch 2s ease-in-out infinite alternate;
}
.scn-antioch-aside-threat .shadow-floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(0deg, #000000 0%, transparent 100%);
  opacity:0.6;
  animation: aat-shadow 8s linear infinite;
}
@keyframes aat-wall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes aat-throne { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes aat-king { 0% { transform: translateX(-56%) rotate(-2deg) } 50% { transform: translateX(-54%) rotate(2deg) } 100% { transform: translateX(-56%) rotate(-1deg) } }
@keyframes aat-aside { 0% { transform: rotate(-10deg) translateX(0) } 100% { transform: rotate(-6deg) translateX(4px) } }
@keyframes aat-torch { 0% { box-shadow: 0 0 15px 4px #ffa040, 0 0 30px 8px rgba(255,160,64,0.4); opacity:0.8 } 50% { box-shadow: 0 0 30px 10px #ffcc80, 0 0 60px 18px rgba(255,204,128,0.6); opacity:1 } 100% { box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 12px rgba(255,160,64,0.5); opacity:0.9 } }
@keyframes aat-shadow { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

.scn-antioch-false-mercy {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 40%, #7a5a3a 0%, transparent 70%);
}
.scn-antioch-false-mercy .wall-back {
  position:absolute; inset:0 0 0 0;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  animation: afm-wall 25s ease-in-out infinite alternate;
}
.scn-antioch-false-mercy .table {
  position:absolute; bottom:18%; left:20%; right:20%; height:10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-antioch-false-mercy .goblet {
  position:absolute; bottom:22%; left:40%; width:16px; height:22px;
  background: linear-gradient(180deg, #b09070 0%, #6a5040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px 2px rgba(180,140,100,0.4);
  animation: afm-goblet 5s ease-in-out infinite alternate;
}
.scn-antioch-false-mercy .figure-antiochus {
  position:absolute; bottom:22%; left:50%; width:30px; height:80px;
  transform: translateX(-60%);
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: afm-antiochus 4s ease-in-out infinite;
}
.scn-antioch-false-mercy .figure-pericles {
  position:absolute; bottom:22%; right:30%; width:26px; height:74px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform: rotate(5deg);
  animation: afm-pericles 6s ease-in-out infinite alternate;
}
.scn-antioch-false-mercy .plate-cover {
  position:absolute; bottom:24%; left:55%; width:30px; height:8px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: afm-cover 3s ease-in-out infinite;
}
.scn-antioch-false-mercy .candle {
  position:absolute; bottom:28%; left:35%; width:6px; height:16px;
  background: linear-gradient(180deg, #ffd080 0%, #a08050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 3px #ffc060;
  animation: afm-candle 2s ease-in-out infinite alternate;
}
@keyframes afm-wall { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes afm-goblet { 0% { transform: translateY(0) rotate(0) } 100% { transform: translateY(-2px) rotate(2deg) } }
@keyframes afm-antiochus { 0% { transform: translateX(-60%) rotate(-1deg) } 50% { transform: translateX(-58%) rotate(1deg) } 100% { transform: translateX(-60%) rotate(-1deg) } }
@keyframes afm-pericles { 0% { transform: rotate(3deg) translateX(0) } 100% { transform: rotate(7deg) translateX(-3px) } }
@keyframes afm-cover { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } }
@keyframes afm-candle { 0% { box-shadow: 0 0 8px 2px #ffc060; opacity:0.8 } 50% { box-shadow: 0 0 18px 6px #ffd080; opacity:1 } 100% { box-shadow: 0 0 10px 3px #ffc060; opacity:0.9 } }

.scn-pericles-flight-plan {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%, #050200 100%),
    radial-gradient(ellipse at 50% 20%, #5a3a1a 0%, transparent 70%);
}
.scn-pericles-flight-plan .wall-back {
  position:absolute; inset:0 0 0 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 0 0 10% 10% / 0 0 30% 30%;
  animation: pfp-wall 30s ease-in-out infinite alternate;
}
.scn-pericles-flight-plan .desk {
  position:absolute; bottom:20%; left:25%; right:25%; height:12%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.8);
}
.scn-pericles-flight-plan .scroll {
  position:absolute; bottom:28%; left:40%; width:24px; height:30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 0 0 20% 20%;
  transform: rotate(-5deg);
  animation: pfp-scroll 4s ease-in-out infinite alternate;
}
.scn-pericles-flight-plan .lamp {
  position:absolute; bottom:30%; left:30%; width:8px; height:14px;
  background: radial-gradient(circle, #ffd080 0%, #a08050 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 18px 5px #ffc060, 0 0 36px 10px rgba(255,192,96,0.4);
  animation: pfp-lamp 3s ease-in-out infinite alternate;
}
.scn-pericles-flight-plan .figure-pericles {
  position:absolute; bottom:22%; left:50%; width:28px; height:70px;
  transform: translateX(-52%);
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation: pfp-pericles 5s ease-in-out infinite;
}
.scn-pericles-flight-plan .door {
  position:absolute; bottom:18%; right:10%; width:30px; height:60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.6);
  animation: pfp-door 8s ease-in-out infinite alternate;
}
.scn-pericles-flight-plan .shadow-shape {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(0deg, #000000 0%, transparent 100%);
  opacity:0.7;
  animation: pfp-shadow 10s linear infinite;
}
@keyframes pfp-wall { 0% { opacity:0.5 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes pfp-scroll { 0% { transform: rotate(-3deg) translateY(0) } 100% { transform: rotate(-7deg) translateY(-2px) } }
@keyframes pfp-lamp { 0% { box-shadow: 0 0 12px 3px #ffc060, 0 0 24px 6px rgba(255,192,96,0.3); opacity:0.8 } 50% { box-shadow: 0 0 24px 8px #ffd080, 0 0 48px 16px rgba(255,208,128,0.5); opacity:1 } 100% { box-shadow: 0 0 15px 4px #ffc060, 0 0 30px 8px rgba(255,192,96,0.4); opacity:0.9 } }
@keyframes pfp-pericles { 0% { transform: translateX(-52%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-52%) rotate(-2deg) } }
@keyframes pfp-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } 100% { transform: scaleX(1) } }
@keyframes pfp-shadow { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

.scn-antioch-farewell {
  background: 
    linear-gradient(180deg, #3a1a0a 0%, #1a0a00 40%, #050000 100%),
    radial-gradient(ellipse at 50% 30%, #6a2a0a 0%, transparent 60%);
}
.scn-antioch-farewell .wall-back {
  position:absolute; inset:0 0 0 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%);
  border-radius: 0 0 10% 10% / 0 0 20% 20%;
  animation: afw-wall 20s ease-in-out infinite alternate;
}
.scn-antioch-farewell .arch {
  position:absolute; bottom:10%; left:20%; right:20%; height:80%;
  border: 4px solid #5a3a2a;
  border-top: none;
  background: transparent;
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: afw-arch 15s ease-in-out infinite;
}
.scn-antioch-farewell .figure-antiochus {
  position:absolute; bottom:20%; left:50%; width:34px; height:90px;
  transform: translateX(-55%);
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: afw-antiochus 4s ease-in-out infinite alternate;
}
.scn-antioch-farewell .sword {
  position:absolute; bottom:35%; left:40%; width:6px; height:50px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-30deg);
  box-shadow: 0 0 8px 2px rgba(100,80,60,0.5);
  animation: afw-sword 3s ease-in-out infinite alternate;
}
.scn-antioch-farewell .shadow-hand {
  position:absolute; bottom:28%; left:45%; width:20px; height:20px;
  background: radial-gradient(circle, #000 0%, transparent 100%);
  opacity:0.6;
  border-radius: 50%;
  filter: blur(4px);
  animation: afw-hand 5s ease-in-out infinite;
}
.scn-antioch-farewell .blood-drip {
  position:absolute; bottom:22%; left:38%; width:2px; height:16px;
  background: linear-gradient(180deg, #5e1a1d 0%, transparent 100%);
  border-radius: 50%;
  animation: afw-drip 2s ease-in-out infinite;
}
.scn-antioch-farewell .curtain {
  position:absolute; top:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 100%);
  opacity:0.5;
  animation: afw-curtain 10s linear infinite;
}
@keyframes afw-wall { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.6 } }
@keyframes afw-arch { 0% { border-color: #5a3a2a } 50% { border-color: #7a4a2a } 100% { border-color: #5a3a2a } }
@keyframes afw-antiochus { 0% { transform: translateX(-55%) rotate(-1deg) } 100% { transform: translateX(-53%) rotate(1deg) } }
@keyframes afw-sword { 0% { transform: rotate(-25deg) } 100% { transform: rotate(-35deg) } }
@keyframes afw-hand { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(1) } }
@keyframes afw-drip { 0% { height:12px; opacity:0.7 } 50% { height:20px; opacity:1 } 100% { height:12px; opacity:0.7 } }
@keyframes afw-curtain { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

.scn-pericles-honoured { background: linear-gradient(180deg, #d4c9a8 0%, #b8a880 40%, #8a7a5a 100%), radial-gradient(ellipse at 50% 100%, #d4c9a8 0%, transparent 70%); }
.scn-pericles-honoured .floor    { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-pericles-honoured .throne   { position:absolute; bottom:30%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #b89860 0%, #8a7040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: ph-throne 8s ease-in-out infinite; }
.scn-pericles-honoured .throne-back   { position:absolute; bottom:30%; left:50%; width:80px; height:40px; transform:translateX(-50%) translateY(-20px); background: linear-gradient(180deg, #c8a870 0%, #a08050 100%); border-radius: 30% 30% 0 0; box-shadow: 0 0 8px rgba(0,0,0,.2); }
.scn-pericles-honoured .throne-cushion{ position:absolute; bottom:30%; left:50%; width:40px; height:10px; transform:translateX(-50%) translateY(-10px); background: #7a3070; border-radius: 30%; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-pericles-honoured .column-left  { position:absolute; bottom:30%; left:15%; width:18px; height:70%; background: linear-gradient(180deg, #c8b888 0%, #a89868 100%); border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,.2); animation: ph-columns 12s ease-in-out infinite; }
.scn-pericles-honoured .column-right { position:absolute; bottom:30%; right:15%; width:18px; height:70%; background: linear-gradient(180deg, #c8b888 0%, #a89868 100%); border-radius: 4px; box-shadow: -2px 0 6px rgba(0,0,0,.2); animation: ph-columns 12s ease-in-out infinite reverse; }
.scn-pericles-honoured .curtain-left { position:absolute; top:0; left:0; width:20%; height:70%; background: linear-gradient(180deg, #803040 0%, #501a30 100%); border-radius: 0 30% 30% 0 / 0 20% 20% 0; filter: blur(2px); animation: ph-curtain 15s ease-in-out infinite alternate; }
.scn-pericles-honoured .curtain-right{ position:absolute; top:0; right:0; width:20%; height:70%; background: linear-gradient(180deg, #803040 0%, #501a30 100%); border-radius: 30% 0 0 30% / 20% 0 0 20%; filter: blur(2px); animation: ph-curtain 15s ease-in-out infinite alternate-reverse; }
.scn-pericles-honoured .light-ray   { position:absolute; top:10%; left:30%; width:40%; height:20%; background: linear-gradient(90deg, rgba(255,240,200,.3) 0%, transparent 100%); filter: blur(8px); animation: ph-light 6s ease-in-out infinite alternate; }
@keyframes ph-throne   { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ph-columns  { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ph-curtain  { 0% { transform: translateX(0) } 50% { transform: translateX(5%) } 100% { transform: translateX(0) } }
@keyframes ph-light    { 0% { opacity:.3; transform: scaleX(.8) } 50% { opacity:.6; transform: scaleX(1.1) } 100% { opacity:.4; transform: scaleX(.9) } }

.scn-simonides-test { background: linear-gradient(180deg, #d0c090 0%, #b0a070 40%, #807050 100%), radial-gradient(ellipse at 50% 0, #e0d0a0 0%, transparent 60%); }
.scn-simonides-test .chamber-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #807050 0%, #504030 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-simonides-test .chamber-wall  { position:absolute; bottom:35%; left:0; right:0; height:65%; background: linear-gradient(180deg, #c8b080 0%, #a09060 100%); }
.scn-simonides-test .princess      { position:absolute; bottom:35%; left:38%; width:20px; height:50px; background: linear-gradient(180deg, #ccb080 0%, #a08050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 12px rgba(0,0,0,.2); animation: st-figures 6s ease-in-out infinite; }
.scn-simonides-test .king          { position:absolute; bottom:35%; left:52%; width:24px; height:58px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: st-figures 6s ease-in-out infinite reverse; }
.scn-simonides-test .suitors        { position:absolute; bottom:35%; left:46%; width:16px; height:46px; background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: st-suitors 8s ease-in-out infinite; }
.scn-simonides-test .window-warm   { position:absolute; top:15%; left:40%; width:30px; height:40px; background: linear-gradient(180deg, #ffe0a0 0%, #d0b070 100%); border-radius: 6px; box-shadow: 0 0 30px 10px rgba(255,224,160,.4); animation: st-window 10s ease-in-out infinite alternate; }
.scn-simonides-test .tapestry      { position:absolute; top:20%; left:20%; width:25%; height:50%; background: linear-gradient(180deg, #703040 0%, #401820 100%); border-radius: 4px; filter: blur(1px); animation: st-tapestry 20s ease-in-out infinite; }
.scn-simonides-test .candle-stand  { position:absolute; bottom:40%; left:30%; width:6px; height:30px; background: #5a4a3a; border-radius: 2px; box-shadow: 0 0 20px 6px rgba(255,200,100,.5); animation: st-candle 4s ease-in-out infinite alternate; }
@keyframes st-figures  { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes st-suitors  { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes st-window   { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(.98) } }
@keyframes st-tapestry { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes st-candle   { 0% { transform: scaleY(.95); box-shadow: 0 0 15px 4px rgba(255,200,100,.4) } 50% { transform: scaleY(1.05); box-shadow: 0 0 25px 8px rgba(255,200,100,.6) } 100% { transform: scaleY(.98); box-shadow: 0 0 18px 5px rgba(255,200,100,.45) } }

.scn-pericles-suspicion { background: linear-gradient(180deg, #3a3048 0%, #2a2040 40%, #1a1030 100%), radial-gradient(ellipse at 50% 100%, #2a2040 0%, transparent 70%); }
.scn-pericles-suspicion .stone-floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0 / 5% 5% 0 0; }
.scn-pericles-suspicion .shadow-arch   { position:absolute; top:0; left:25%; width:50%; height:70%; background: radial-gradient(ellipse at 50% 0, #1a1030 0%, transparent 70%); filter: blur(6px); animation: ps-arch 12s ease-in-out infinite alternate; }
.scn-pericles-suspicion .letter-hand   { position:absolute; bottom:35%; left:45%; width:14px; height:10px; background: #d0c090; border-radius: 20% 20% 0 0; transform: rotate(-15deg); animation: ps-letter 5s ease-in-out infinite; }
.scn-pericles-suspicion .figure-reading{ position:absolute; bottom:30%; left:40%; width:22px; height:56px; background: linear-gradient(180deg, #2a2040 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ps-figure 8s ease-in-out infinite; }
.scn-pericles-suspicion .candle-glow   { position:absolute; bottom:38%; left:48%; width:8px; height:8px; background: radial-gradient(circle, #ffd090 0%, #b07030 60%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,208,144,.5); animation: ps-flicker 3s ease-in-out infinite alternate; }
.scn-pericles-suspicion .candle-drip   { position:absolute; bottom:38%; left:48%; width:4px; height:24px; background: linear-gradient(180deg, #ffd090 0%, #b07030 100%); border-radius: 2px; animation: ps-drip 6s ease-in-out infinite; }
.scn-pericles-suspicion .column-thick  { position:absolute; bottom:30%; left:32%; width:12px; height:70%; background: linear-gradient(180deg, #4a4060 0%, #2a2040 100%); border-radius: 4px; animation: ps-column 15s ease-in-out infinite; }
.scn-pericles-suspicion .spy-shadow   { position:absolute; bottom:30%; right:35%; width:18px; height:50px; background: #0a0a1a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; filter: blur(8px); opacity:.6; animation: ps-shadow 10s ease-in-out infinite alternate; }
@keyframes ps-arch     { 0% { transform: scaleY(1); opacity:.5 } 50% { transform: scaleY(1.05); opacity:.7 } 100% { transform: scaleY(.95); opacity:.4 } }
@keyframes ps-letter   { 0% { transform: rotate(-15deg) translateY(0) scale(1) } 50% { transform: rotate(-10deg) translateY(-3px) scale(1.05) } 100% { transform: rotate(-18deg) translateY(0) scale(.98) } }
@keyframes ps-figure   { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ps-flicker  { 0% { transform: scale(.95); box-shadow: 0 0 25px 8px rgba(255,208,144,.45) } 50% { transform: scale(1.1); box-shadow: 0 0 35px 12px rgba(255,208,144,.6) } 100% { transform: scale(1); box-shadow: 0 0 28px 9px rgba(255,208,144,.5) } }
@keyframes ps-drip     { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(8px) scaleY(.8) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ps-column   { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) } }
@keyframes ps-shadow   { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(5px) } }

.scn-pericles-defiance { background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 80%, #6a5a40 0%, transparent 60%); }
.scn-pericles-defiance .hall-floor         { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 15% 15% 0 0 / 8% 8% 0 0; }
.scn-pericles-defiance .king-figure       { position:absolute; bottom:35%; left:40%; width:28px; height:64px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-king 4s ease-in-out infinite; }
.scn-pericles-defiance .knight-figure     { position:absolute; bottom:35%; left:50%; width:26px; height:60px; background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-knight 4s ease-in-out infinite reverse; }
.scn-pericles-defiance .confrontation-light{ position:absolute; top:20%; left:35%; width:30%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,120,.4) 0%, transparent 70%); filter: blur(10px); animation: pd-light 5s ease-in-out infinite alternate; }
.scn-pericles-defiance .halberd-left      { position:absolute; bottom:35%; left:36%; width:4px; height:34px; background: #5a4a3a; border-radius: 2px; transform: rotate(-15deg); transform-origin: bottom center; animation: pd-halberd 6s ease-in-out infinite; }
.scn-pericles-defiance .halberd-right     { position:absolute; bottom:35%; right:36%; width:4px; height:34px; background: #5a4a3a; border-radius: 2px; transform: rotate(15deg); transform-origin: bottom center; animation: pd-halberd 6s ease-in-out infinite reverse; }
.scn-pericles-defiance .dust-mote         { position:absolute; top:30%; left:45%; width:4px; height:4px; background: #d0c0a0; border-radius: 50%; filter: blur(1px); animation: pd-dust 8s linear infinite; }
@keyframes pd-king     { 0% { transform: translateY(0) rotate(-3deg) scaleX(1) } 25% { transform: translateY(-2px) rotate(1deg) scaleX(1.02) } 50% { transform: translateY(0) rotate(3deg) scaleX(1) } 75% { transform: translateY(-2px) rotate(-1deg) scaleX(.98) } 100% { transform: translateY(0) rotate(-3deg) scaleX(1) } }
@keyframes pd-knight   { 0% { transform: translateY(0) rotate(3deg) scaleX(1) } 25% { transform: translateY(-2px) rotate(-1deg) scaleX(.98) } 50% { transform: translateY(0) rotate(-3deg) scaleX(1) } 75% { transform: translateY(-2px) rotate(1deg) scaleX(1.02) } 100% { transform: translateY(0) rotate(3deg) scaleX(1) } }
@keyframes pd-light    { 0% { opacity:.4; transform: scaleX(.8) } 50% { opacity:.7; transform: scaleX(1.2) } 100% { opacity:.5; transform: scaleX(.9) } }
@keyframes pd-halberd  { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-20deg) } }
@keyframes pd-dust     { 0% { transform: translate(0, 0) scale(1); opacity:.8 } 50% { transform: translate(10px, -20px) scale(1.5); opacity:.3 } 100% { transform: translate(20px, -40px) scale(2); opacity:0 } }

/* --- pericles-yields-to-custom --- */
.scn-pericles-yields-to-custom {
  background: linear-gradient(180deg, #0b0e1a 0%, #141c2e 40%, #1a2a3e 70%, #16202c 100%), radial-gradient(ellipse at 30% 100%, #1a2a3e 0%, transparent 60%);
}
.scn-pericles-yields-to-custom .storm-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #10162a 0%, #1a2240 40%, #2c3856 70%, #36456a 100%);
  animation: pc-sky 15s ease-in-out infinite alternate;
}
.scn-pericles-yields-to-custom .sea-dark {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #1a283a 0%, #0f1a2a 50%, #08101a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
  animation: pc-sea 12s ease-in-out infinite alternate;
}
.scn-pericles-yields-to-custom .cliff {
  position:absolute; bottom:40%; left:10%; width:30%; height:25%;
  background: linear-gradient(135deg, #2a343c 0%, #1a222a 60%, #0f141a 100%);
  border-radius: 20% 80% 0 0 / 60% 100% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,.5);
}
.scn-pericles-yields-to-custom .figure-king {
  position:absolute; bottom:42%; left:18%; width:22px; height:50px;
  background: linear-gradient(180deg, #1a1e2a 0%, #0e121a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-figure 6s ease-in-out infinite;
}
.scn-pericles-yields-to-custom .baby-swaddled {
  position:absolute; bottom:38%; left:22%; width:12px; height:16px;
  background: linear-gradient(135deg, #3a404a 0%, #2a3038 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: center bottom;
  animation: pc-baby 4s ease-in-out infinite alternate;
}
.scn-pericles-yields-to-custom .rain-line {
  position:absolute; width:2px; background: rgba(180,200,255,.2);
  filter: blur(1px);
}
.scn-pericles-yields-to-custom .rain-a {
  top:10%; left:30%; height:60%;
  animation: pc-rain 0.8s linear infinite;
}
.scn-pericles-yields-to-custom .rain-b {
  top:0; left:60%; height:70%;
  animation: pc-rain 0.6s linear infinite 0.3s;
}
@keyframes pc-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pc-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes pc-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-2px) rotate(-1deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes pc-baby { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(2deg) scale(1.03) } 100% { transform: rotate(-3deg) scale(1) } }
@keyframes pc-rain { 0% { transform: translateY(-30px) } 100% { transform: translateY(100vh) } }

/* --- pericles-orders-rite --- */
.scn-pericles-orders-rite {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a16 40%, #1a1210 100%), radial-gradient(ellipse at 50% 80%, #3a281c 0%, transparent 70%);
}
.scn-pericles-orders-rite .chamber-wall {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #2a1e1a 0%, #1a1410 50%, #12100e 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.6);
}
.scn-pericles-orders-rite .candle-glow {
  position:absolute; top:20%; left:50%; width:40px; height:80px;
  background: radial-gradient(ellipse 40px 60px at 50% 100%, #ffb860 0%, #e08020 30%, transparent 70%);
  border-radius: 0 0 50% 50%;
  filter: blur(3px);
  animation: po-glow 3s ease-in-out infinite alternate;
}
.scn-pericles-orders-rite .casket {
  position:absolute; bottom:20%; left:35%; width:100px; height:60px;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a12 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,.7), inset 0 -2px 6px rgba(100,60,20,.3);
  animation: po-casket 10s ease-in-out infinite;
}
.scn-pericles-orders-rite .satchel {
  position:absolute; bottom:22%; right:30%; width:30px; height:24px;
  background: linear-gradient(135deg, #3a2820 0%, #221814 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-pericles-orders-rite .figure-priest {
  position:absolute; bottom:25%; left:45%; width:28px; height:70px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1414 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: po-priest 8s ease-in-out infinite;
}
.scn-pericles-orders-rite .inkwell {
  position:absolute; bottom:18%; left:42%; width:16px; height:14px;
  background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a1210 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
}
.scn-pericles-orders-rite .scroll {
  position:absolute; bottom:16%; left:46%; width:24px; height:4px;
  background: linear-gradient(90deg, #c0a070 0%, #a08050 100%);
  border-radius: 40%;
  box-shadow: 0 1px 2px rgba(0,0,0,.4);
  animation: po-scroll 5s ease-in-out infinite alternate;
}
@keyframes po-glow { 0% { opacity:.6; transform: scale(1) translateX(-50%); } 50% { opacity:1; transform: scale(1.1) translateX(-45%); } 100% { opacity:.7; transform: scale(1) translateX(-50%); } }
@keyframes po-casket { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes po-priest { 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 po-scroll { 0% { transform: translateX(0) scaleX(1); } 100% { transform: translateX(4px) scaleX(1.2); } }

/* --- cerimon-charity --- */
.scn-cerimon-charity {
  background: linear-gradient(180deg, #2e1c14 0%, #442622 40%, #2e1c14 100%), radial-gradient(ellipse at 50% 60%, #5a342a 0%, transparent 70%);
}
.scn-cerimon-charity .room-back {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #3a2420 0%, #2a1a16 50%, #1a1210 100%);
  box-shadow: inset 0 0 120px rgba(0,0,0,.5);
}
.scn-cerimon-charity .hearth {
  position:absolute; bottom:10%; left:20%; width:60%; height:30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a12 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
}
.scn-cerimon-charity .fire-glow {
  position:absolute; bottom:20%; left:35%; width:120px; height:100px;
  background: radial-gradient(ellipse at 50% 100%, #ff9040 0%, #ff6020 30%, #902010 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(6px);
  animation: cc-fire 2s ease-in-out infinite alternate;
}
.scn-cerimon-charity .cauldron {
  position:absolute; bottom:15%; left:40%; width:50px; height:40px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a1210 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: cc-cauldron 6s ease-in-out infinite;
}
.scn-cerimon-charity .figure-giver {
  position:absolute; bottom:22%; left:32%; width:30px; height:60px;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a16 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cc-giver 7s ease-in-out infinite;
}
.scn-cerimon-charity .figure-receiver {
  position:absolute; bottom:20%; right:30%; width:25px; height:50px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1412 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cc-receiver 8s ease-in-out infinite 0.5s;
}
.scn-cerimon-charity .table {
  position:absolute; bottom:12%; left:25%; width:50%; height:8%;
  background: linear-gradient(180deg, #4a3228 0%, #2a1e16 100%);
  border-radius: 8%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: cc-table 10s ease-in-out infinite;
}
@keyframes cc-fire { 0% { transform: scale(1) rotate(-2deg); opacity:.7 } 50% { transform: scale(1.05) rotate(1deg); opacity:1 } 100% { transform: scale(0.98) rotate(0deg); opacity:.8 } }
@keyframes cc-cauldron { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cc-giver { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(2px) translateY(-3px); } 50% { transform: translateX(0) translateY(0); } 75% { transform: translateX(-2px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes cc-receiver { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(-3px) translateY(0) rotate(3deg); } 60% { transform: translateX(0) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes cc-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

/* --- early-morning-guests --- */
.scn-early-morning-guests {
  background: linear-gradient(180deg, #4a6a7a 0%, #8aaabc 40%, #b8d0d8 70%, #e0e8e0 100%), radial-gradient(ellipse at 50% 0%, #b8d0d8 0%, transparent 60%);
}
.scn-early-morning-guests .dawn-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #6080a0 0%, #90b0c8 40%, #c8d8e0 70%, #f0e8d8 100%);
  animation: em-sky 20s ease-in-out infinite alternate;
}
.scn-early-morning-guests .morning-sea {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #8aaabc 0%, #5a7a8a 50%, #3a5a6a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  animation: em-sea 10s ease-in-out infinite alternate;
}
.scn-early-morning-guests .lodging-house {
  position:absolute; bottom:40%; left:20%; width:40%; height:30%;
  background: linear-gradient(180deg, #c8b898 0%, #a09078 100%);
  border-radius: 12% 12% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,.4);
  transform: perspective(300px) rotateX(5deg);
}
.scn-early-morning-guests .figure-guest1 {
  position:absolute; bottom:42%; left:28%; width:20px; height:50px;
  background: linear-gradient(180deg, #6a6a72 0%, #3a3a40 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: em-guest1 6s ease-in-out infinite;
}
.scn-early-morning-guests .figure-guest2 {
  position:absolute; bottom:42%; left:36%; width:20px; height:50px;
  background: linear-gradient(180deg, #787068 0%, #484038 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: em-guest2 7s ease-in-out infinite 0.5s;
}
.scn-early-morning-guests .porch-rail {
  position:absolute; bottom:45%; left:20%; width:40%; height:4%;
  background: linear-gradient(90deg, #8a7a6a 0%, #a09080 50%, #8a7a6a 100%);
  border-radius: 6%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.scn-early-morning-guests .light-beam {
  position:absolute; top:20%; left:0; width:100%; height:20%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  pointer-events: none;
  animation: em-beam 25s linear infinite alternate;
}
@keyframes em-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes em-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes em-guest1 { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes em-guest2 { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-1px) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(0deg); } 75% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes em-beam { 0% { opacity:0.1; } 50% { opacity:0.4; } 100% { opacity:0.2; } }

/* marina-know-this-house */
.scn-marina-know-this-house {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2820 100%),
    radial-gradient(ellipse at 50% 80%, #4a3228 0%, transparent 70%);
}
.scn-marina-know-this-house .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
}
.scn-marina-know-this-house .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1210 0%, #2a1e18 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-marina-know-this-house .window-arch {
  position: absolute; top: 8%; left: 50%; width: 100px; height: 140px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #4a4038 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
  animation: mkth-window 12s ease-in-out infinite alternate;
}
.scn-marina-know-this-house .table {
  position: absolute; bottom: 25%; left: 40%; width: 120px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-marina-know-this-house .candle {
  position: absolute; bottom: 50%; left: 48%; width: 8px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0a050 0%, #806030 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 8px rgba(208,160,80,0.4);
  animation: mkth-candle 3s ease-in-out infinite alternate;
}
.scn-marina-know-this-house .chair {
  position: absolute; bottom: 22%; left: 65%; width: 50px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2820 0%, #1a1410 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-marina-know-this-house .shadow-figure {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mkth-figure 8s ease-in-out infinite;
}
.scn-marina-know-this-house .dust-particles {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(255,230,200,0.1) 0%, transparent 50%),
              radial-gradient(circle at 70% 20%, rgba(255,230,200,0.08) 0%, transparent 40%),
              radial-gradient(circle at 20% 70%, rgba(255,230,200,0.05) 0%, transparent 30%);
  animation: mkth-dust 20s ease-in-out infinite alternate;
}
@keyframes mkth-window { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes mkth-candle { 0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 15px 5px rgba(208,160,80,0.3); } 50% { transform: translateX(-50%) scaleY(1.05); box-shadow: 0 0 25px 10px rgba(208,160,80,0.5); } 100% { transform: translateX(-50%) scaleY(0.95); box-shadow: 0 0 12px 4px rgba(208,160,80,0.2); } }
@keyframes mkth-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-45%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-55%) translateY(0) rotate(0deg); } }
@keyframes mkth-dust { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

/* lysistratus-herb-woman */
.scn-lysistratus-herb-woman {
  background:
    linear-gradient(180deg, #1e1a12 0%, #2a2218 40%, #3a2e20 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-lysistratus-herb-woman .wall-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2218 0%, #1e1a12 100%);
  box-shadow: inset 0 -15px 30px rgba(0,0,0,0.5);
}
.scn-lysistratus-herb-woman .shelf {
  position: absolute; top: 30%; left: 10%; right: 10%; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2e20 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-lysistratus-herb-woman .jar-large {
  position: absolute; top: 10%; left: 20%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 60%, #605040 0%, #3a2e20 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
  animation: lhw-jar 6s ease-in-out infinite alternate;
}
.scn-lysistratus-herb-woman .jar-small {
  position: absolute; top: 18%; left: 50%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, #3a2e20 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: inset -3px 0 6px rgba(0,0,0,0.3);
  animation: lhw-jar 8s ease-in-out infinite alternate;
}
.scn-lysistratus-herb-woman .herb-bundle {
  position: absolute; top: 20%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: lhw-herb 4s ease-in-out infinite alternate;
}
.scn-lysistratus-herb-woman .herb-woman-figure {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: lhw-figure 10s ease-in-out infinite;
}
.scn-lysistratus-herb-woman .pestle {
  position: absolute; bottom: 35%; left: 40%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 8px 8px;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: lhw-pestle 3s ease-in-out infinite alternate;
}
.scn-lysistratus-herb-woman .smoke {
  position: absolute; top: 10%; left: 45%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,150,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: lhw-smoke 15s ease-in-out infinite alternate;
}
@keyframes lhw-jar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes lhw-herb { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-2px); } 100% { transform: rotate(-18deg) translateY(0); } }
@keyframes lhw-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-45%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-55%) translateY(0) rotate(-1deg); } }
@keyframes lhw-pestle { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(8deg) scaleY(1.05); } 100% { transform: rotate(12deg) scaleY(0.95); } }
@keyframes lhw-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-10px) scale(1.2); opacity: 0.6; } 100% { transform: translateY(-20px) scale(0.8); opacity: 0.2; } }

/* marina-honour-now */
.scn-marina-honour-now {
  background:
    linear-gradient(180deg, #0c0808 0%, #180e0c 40%, #2a1a16 100%),
    radial-gradient(ellipse at 50% 20%, #3a221a 0%, transparent 70%);
}
.scn-marina-honour-now .dungeon-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #180e0c 0%, #0c0808 100%);
  box-shadow: inset 0 -30px 60px rgba(0,0,0,0.7);
}
.scn-marina-honour-now .dungeon-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #0a0606 0%, #180e0c 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-marina-honour-now .iron-bars {
  position: absolute; top: 15%; left: 30%; right: 30%; height: 60%;
  background: repeating-linear-gradient(90deg,
    transparent, transparent 12px,
    #2a201a 12px, #2a201a 14px,
    transparent 14px, transparent 30px);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: mhn-bars 4s ease-in-out infinite alternate;
}
.scn-marina-honour-now .torch-left {
  position: absolute; bottom: 50%; left: 12%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #806030 0%, #402818 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(224,160,80,0.3);
  animation: mhn-torch 2s ease-in-out infinite alternate;
}
.scn-marina-honour-now .torch-right {
  position: absolute; bottom: 50%; right: 12%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #806030 0%, #402818 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(224,160,80,0.3);
  animation: mhn-torch 2s ease-in-out infinite alternate;
  animation-delay: -1s;
}
.scn-marina-honour-now .maid-figure {
  position: absolute; bottom: 25%; left: 50%; width: 45px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a16 0%, #140a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: mhn-maid 6s ease-in-out infinite;
}
.scn-marina-honour-now .chain {
  position: absolute; bottom: 30%; left: 48%; width: 4px; height: 80px;
  background: repeating-linear-gradient(180deg, #5a4a3a 0%, #5a4a3a 8px, transparent 8px, transparent 12px);
  animation: mhn-chain 3s ease-in-out infinite;
}
.scn-marina-honour-now .flicker-light {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 12% 40%, rgba(224,160,80,0.1) 0%, transparent 40%),
              radial-gradient(circle at 88% 40%, rgba(224,160,80,0.1) 0%, transparent 40%);
  animation: mhn-flicker 0.8s linear infinite alternate;
}
@keyframes mhn-bars { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes mhn-torch { 0% { transform: scaleY(1); box-shadow: 0 0 30px 15px rgba(224,160,80,0.2); } 50% { transform: scaleY(1.1); box-shadow: 0 0 50px 25px rgba(224,160,80,0.4); } 100% { transform: scaleY(0.9); box-shadow: 0 0 20px 10px rgba(224,160,80,0.1); } }
@keyframes mhn-maid { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-48%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-52%) translateY(0) rotate(-1deg); } }
@keyframes mhn-chain { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mhn-flicker { 0% { opacity: 0.4; } 100% { opacity: 0.7; } }

/* marina-maid-plea */
.scn-marina-maid-plea {
  background:
    linear-gradient(180deg, #0a0808 0%, #140e0c 40%, #1a1410 100%),
    radial-gradient(ellipse at 50% 30%, #2a1a14 0%, transparent 70%);
}
.scn-marina-maid-plea .dark-cell {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #140e0c 0%, #0a0808 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.8);
}
.scn-marina-maid-plea .window-slit {
  position: absolute; top: 12%; left: 50%; width: 40px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: mmp-window 15s ease-in-out infinite alternate;
}
.scn-marina-maid-plea .maid-kneeling {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1410 0%, #0c0808 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: mmp-maid 8s ease-in-out infinite;
}
.scn-marina-maid-plea .bird-shadow {
  position: absolute; top: 15%; left: 40%; width: 30px; height: 20px;
  background: #1a1410;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: mmp-bird 12s linear infinite;
}
.scn-marina-maid-plea .tears-drop {
  position: absolute; bottom: 28%; left: 52%; width: 4px; height: 8px;
  background: rgba(180,200,220,0.2);
  border-radius: 50%;
  animation: mmp-tears 3s ease-in-out infinite;
}
.scn-marina-maid-plea .faint-glow {
  position: absolute; top: 12%; left: 50%; width: 40px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(150,180,220,0.15) 0%, transparent 70%);
  animation: mmp-glow 8s ease-in-out infinite alternate;
}
.scn-marina-maid-plea .rat {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: mmp-rat 5s ease-in-out infinite;
}
@keyframes mmp-window { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }
@keyframes mmp-maid { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-48%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-52%) translateY(0) rotate(0deg); } }
@keyframes mmp-bird { 0% { transform: translateX(0) translateY(0) rotate(-20deg); } 50% { transform: translateX(20px) translateY(-5px) rotate(-15deg); } 100% { transform: translateX(40px) translateY(0) rotate(-25deg); } }
@keyframes mmp-tears { 0% { transform: translateY(0); opacity: 0; } 50% { opacity: 0.4; } 100% { transform: translateY(15px); opacity: 0; } }
@keyframes mmp-glow { 0% { opacity: 0.1; } 50% { opacity: 0.3; } 100% { opacity: 0.05; } }
@keyframes mmp-rat { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(5px) translateY(-3px); } 100% { transform: translateX(10px) translateY(0); } }

.scn-murder-plot-oath {
  background: linear-gradient(180deg, #c8b89a 0%, #a08060 40%, #806040 100%),
              radial-gradient(ellipse at 30% 20%, #ffffff80 0%, transparent 60%);
}
.scn-murder-plot-oath .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #d4c4a8 0%, #b09878 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.3);
}
.scn-murder-plot-oath .sunbeam {
  position: absolute; top: 0; left: 20%; width: 30%; height: 80%;
  background: linear-gradient(180deg, rgba(255,240,200,0.6) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 10% 100%);
  animation: mpo-beam 8s ease-in-out infinite alternate;
}
.scn-murder-plot-oath .table {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(10deg);
}
.scn-murder-plot-oath .figure-kneel {
  position: absolute; bottom: 22%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mpo-kneel 4s ease-in-out infinite alternate;
}
.scn-murder-plot-oath .figure-stand {
  position: absolute; bottom: 22%; left: 48%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mpo-stand 5s ease-in-out infinite alternate;
}
.scn-murder-plot-oath .blade {
  position: absolute; bottom: 30%; left: 42%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 2px 2px 40% 40%;
  box-shadow: 0 0 6px rgba(200,176,144,0.5);
  transform: rotate(-20deg);
  animation: mpo-blade 3s ease-in-out infinite alternate;
}
.scn-murder-plot-oath .shadow {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: mpo-shadow 6s ease-in-out infinite alternate;
}
@keyframes mpo-beam { 0% { opacity: 0.7; transform: skewX(-2deg); } 50% { opacity: 1; transform: skewX(2deg); } 100% { opacity: 0.6; transform: skewX(-1deg); } }
@keyframes mpo-kneel { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mpo-stand { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes mpo-blade { 0% { transform: rotate(-20deg) scaleY(0.9); } 50% { transform: rotate(-15deg) scaleY(1.1); } 100% { transform: rotate(-22deg) scaleY(0.95); } }
@keyframes mpo-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.05); } 100% { opacity: 0.35; transform: scaleX(0.95); } }

.scn-marina-weeping-flowers {
  background: linear-gradient(180deg, #8fa8a0 0%, #6a8a7a 40%, #4a6a5a 100%),
              radial-gradient(ellipse at 50% 30%, #c0d8c0 0%, transparent 60%);
}
.scn-marina-weeping-flowers .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0c8b8 0%, #90a898 100%);
  animation: mwf-sky 15s ease-in-out infinite alternate;
}
.scn-marina-weeping-flowers .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
}
.scn-marina-weeping-flowers .grave-mound {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 15%;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.3);
}
.scn-marina-weeping-flowers .figure-weep {
  position: absolute; bottom: 22%; left: 48%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mwf-weep 6s ease-in-out infinite;
}
.scn-marina-weeping-flowers .flowers {
  position: absolute; width: 10px; height: 10px;
  background: radial-gradient(circle, #b87878 0%, #8a5a5a 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(184,120,120,0.4);
}
.scn-marina-weeping-flowers .f1 {
  bottom: 15%; left: 35%; animation: mwf-flower1 8s linear infinite;
}
.scn-marina-weeping-flowers .f2 {
  bottom: 18%; left: 52%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8a068 0%, #a08048 70%);
  animation: mwf-flower2 7s linear infinite reverse;
}
.scn-marina-weeping-flowers .f3 {
  bottom: 12%; left: 44%; width: 12px; height: 12px;
  background: radial-gradient(circle, #80a080 0%, #5a7a5a 70%);
  animation: mwf-flower3 9s linear infinite;
}
.scn-marina-weeping-flowers .tears {
  position: absolute; bottom: 32%; left: 49%; width: 4px; height: 6px;
  background: radial-gradient(circle, #c0d8e0 0%, transparent 100%);
  border-radius: 50%;
  animation: mwf-tears 3s ease-in-out infinite alternate;
}
@keyframes mwf-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mwf-weep { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mwf-flower1 { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(5px,-5px) scale(1.1); } 100% { transform: translate(10px,0) scale(1); } }
@keyframes mwf-flower2 { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(-4px,3px) scale(0.9); } 100% { transform: translate(0,0) scale(1); } }
@keyframes mwf-flower3 { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px,-3px) rotate(15deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes mwf-tears { 0% { opacity: 0.3; transform: translateY(0); } 100% { opacity: 0.9; transform: translateY(6px); } }

.scn-brothel-dionyza-scolds {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 80%, #5a3a2a 0%, transparent 70%);
}
.scn-brothel-dionyza-scolds .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-brothel-dionyza-scolds .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
}
.scn-brothel-dionyza-scolds .candle {
  position: absolute; bottom: 50%; left: 50%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #c8a068 0%, #a08048 100%);
  border-radius: 2px;
  transform: translateX(-50%);
}
.scn-brothel-dionyza-scolds .candle-glow {
  position: absolute; bottom: 48%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,160,80,0.6) 0%, transparent 70%);
  transform: translate(-50%, 50%);
  animation: bds-glow 2s ease-in-out infinite alternate;
}
.scn-brothel-dionyza-scolds .figure-older {
  position: absolute; bottom: 20%; left: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bds-older 3s ease-in-out infinite alternate;
}
.scn-brothel-dionyza-scolds .figure-younger {
  position: absolute; bottom: 20%; left: 50%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bds-younger 4s ease-in-out infinite alternate-reverse;
}
.scn-brothel-dionyza-scolds .table-small {
  position: absolute; bottom: 12%; left: 45%; width: 10%; height: 6%;
  background: linear-gradient(180deg, #4a2a0a 0%, #2a1a00 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-brothel-dionyza-scolds .shadow-older {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: bds-shadow-older 3s ease-in-out infinite alternate;
}
.scn-brothel-dionyza-scolds .shadow-younger {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 25px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: bds-shadow-younger 4s ease-in-out infinite alternate-reverse;
}
@keyframes bds-glow { 0% { opacity: 0.5; transform: translate(-50%, 50%) scale(0.9); } 50% { opacity: 0.9; transform: translate(-50%, 50%) scale(1.1); } 100% { opacity: 0.6; transform: translate(-50%, 50%) scale(1); } }
@keyframes bds-older { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes bds-younger { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes bds-shadow-older { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.5; transform: scaleX(0.9); } }
@keyframes bds-shadow-younger { 0% { opacity: 0.3; transform: scaleX(0.9); } 50% { opacity: 0.5; transform: scaleX(1.1); } 100% { opacity: 0.4; transform: scaleX(1); } }

.scn-brothel-marina-protest {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 30% 60%, #6a5a4a 0%, transparent 70%);
}
.scn-brothel-marina-protest .wall-soft {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.4);
}
.scn-brothel-marina-protest .floor-soft {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-brothel-marina-protest .lamp {
  position: absolute; bottom: 55%; left: 20%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #b09070 0%, #806050 100%);
  border-radius: 2px;
  transform: rotate(10deg);
}
.scn-brothel-marina-protest .lamp-glow {
  position: absolute; bottom: 50%; left: 18%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 70%);
  animation: bmp-glow 6s ease-in-out infinite alternate;
}
.scn-brothel-marina-protest .figure-marina {
  position: absolute; bottom: 20%; left: 40%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bmp-marina 8s ease-in-out infinite;
}
.scn-brothel-marina-protest .figure-servant {
  position: absolute; bottom: 18%; left: 52%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bmp-servant 9s ease-in-out infinite reverse;
}
.scn-brothel-marina-protest .chair {
  position: absolute; bottom: 14%; left: 38%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #4a2a0a 0%, #2a1a00 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(5deg);
}
.scn-brothel-marina-protest .shadow-marina {
  position: absolute; bottom: 10%; left: 38%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: bmp-shadow 8s ease-in-out infinite;
}
@keyframes bmp-glow { 0% { opacity: 0.2; transform: scale(0.95); } 50% { opacity: 0.5; transform: scale(1.05); } 100% { opacity: 0.3; transform: scale(1); } }
@keyframes bmp-marina { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes bmp-servant { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes bmp-shadow { 0% { opacity: 0.2; transform: scaleX(1); } 50% { opacity: 0.4; transform: scaleX(1.1); } 100% { opacity: 0.3; transform: scaleX(0.95); } }

.scn-lysistratus-courtesy {
  background: linear-gradient(180deg, #b8d4e8 0%, #f9e3c4 70%, #c9a96e 100%),
              radial-gradient(ellipse at 30% 20%, #fceabb 0%, transparent 60%);
}
.scn-lysistratus-courtesy .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c4dff0 0%, #e6f0fa 100%); animation: lsco-sky 20s ease-in-out infinite alternate; }
.scn-lysistratus-courtesy .sun { position:absolute; top:8%; left:60%; width:60px; height:60px; background: radial-gradient(circle, #fff4c4 0%, #fceabb 40%, transparent 70%); border-radius:50%; animation: lsco-sun 12s ease-in-out infinite alternate; }
.scn-lysistratus-courtesy .wall { position:absolute; bottom:40%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #dac292 0%, #b3855a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.2); }
.scn-lysistratus-courtesy .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a1c181 0%, #7a9a5e 100%); }
.scn-lysistratus-courtesy .tree { position:absolute; bottom:40%; left:20%; width:40px; height:90px; background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: lsco-tree 8s ease-in-out infinite; }
.scn-lysistratus-courtesy .bench { position:absolute; bottom:32%; left:50%; width:70px; height:20px; transform:translateX(-50%); background: linear-gradient(90deg, #8b6a4a 0%, #a07a56 50%, #8b6a4a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-lysistratus-courtesy .figure-stand { position:absolute; bottom:30%; left:60%; width:18px; height:45px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lsco-stand 6s ease-in-out infinite; }
.scn-lysistratus-courtesy .figure-sit { position:absolute; bottom:30%; left:45%; width:20px; height:35px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: lsco-sit 4s ease-in-out infinite; }
.scn-lysistratus-courtesy .sunbeam { position:absolute; top:0; left:55%; width:8px; height:100%; background: linear-gradient(180deg, rgba(255,235,180,.3) 0%, transparent 100%); transform: skewX(-20deg); animation: lsco-beam 10s ease-in-out infinite alternate; }
@keyframes lsco-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes lsco-sun { 0% { transform: scale(1) translate(0,0); opacity:.9 } 50% { transform: scale(1.1) translate(5px,-5px); opacity:1 } 100% { transform: scale(1) translate(0,0); opacity:.9 } }
@keyframes lsco-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes lsco-stand { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes lsco-sit { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes lsco-beam { 0% { opacity:.3; transform: skewX(-20deg) scaleY(1) } 50% { opacity:.6; transform: skewX(-18deg) scaleY(1.1) } 100% { opacity:.3; transform: skewX(-20deg) scaleY(1) } }

.scn-lysistratus-lady-arrives {
  background: linear-gradient(180deg, #b8d4e8 0%, #e6d5b8 50%, #c9a96e 100%),
              radial-gradient(ellipse at 50% 30%, #fceabb 0%, transparent 50%);
}
.scn-lysistratus-lady-arrives .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c4dff0 0%, #e0ecf8 100%); animation: lslad-sky 18s ease-in-out infinite alternate; }
.scn-lysistratus-lady-arrives .arch { position:absolute; bottom:30%; left:25%; right:25%; height:45%; background: linear-gradient(180deg, #dac292 0%, #b3855a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-lysistratus-lady-arrives .path { position:absolute; bottom:0; left:35%; right:35%; height:35%; background: linear-gradient(180deg, #a1c181 0%, #7a9a5e 100%); border-radius: 20% 20% 0 0; }
.scn-lysistratus-lady-arrives .foliage-left { position:absolute; bottom:30%; left:5%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 100%, #5a8a4a 0%, #3a5a2a 100%); border-radius: 50%; filter: blur(4px); animation: lslad-foliage 14s ease-in-out infinite alternate; }
.scn-lysistratus-lady-arrives .foliage-right { position:absolute; bottom:30%; right:5%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 100%, #5a8a4a 0%, #3a5a2a 100%); border-radius: 50%; filter: blur(4px); animation: lslad-foliage 14s ease-in-out infinite alternate-reverse; }
.scn-lysistratus-lady-arrives .lady { position:absolute; bottom:20%; left:45%; width:16px; height:50px; background: linear-gradient(180deg, #b0855a 0%, #704a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lslad-walk 7s ease-in-out infinite; }
.scn-lysistratus-lady-arrives .sun-ray { position:absolute; top:5%; left:35%; width:6px; height:60%; background: linear-gradient(180deg, rgba(255,235,180,.4) 0%, transparent 100%); transform: skewX(-15deg); animation: lslad-ray 12s ease-in-out infinite alternate; }
@keyframes lslad-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes lslad-foliage { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes lslad-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(0deg) } }
@keyframes lslad-ray { 0% { opacity:.2; transform: skewX(-15deg) scaleY(1) } 50% { opacity:.5; transform: skewX(-12deg) scaleY(1.2) } 100% { opacity:.2; transform: skewX(-15deg) scaleY(1) } }

.scn-lysistratus-wife-choice {
  background: linear-gradient(180deg, #b8d4e8 0%, #e6d5b8 60%, #c9a96e 100%),
              radial-gradient(ellipse at 40% 40%, #fceabb 0%, transparent 60%);
}
.scn-lysistratus-wife-choice .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c4dff0 0%, #e0ecf8 100%); animation: lswch-sky 22s ease-in-out infinite alternate; }
.scn-lysistratus-wife-choice .wall { position:absolute; bottom:40%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #dac292 0%, #b3855a 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; }
.scn-lysistratus-wife-choice .garden-bed { position:absolute; bottom:20%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #7a9a5e 0%, #5a7a3e 100%); border-radius: 30% 30% 0 0; }
.scn-lysistratus-wife-choice .man { position:absolute; bottom:28%; left:35%; width:22px; height:48px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lswch-man 5s ease-in-out infinite; }
.scn-lysistratus-wife-choice .woman { position:absolute; bottom:28%; left:55%; width:20px; height:46px; background: linear-gradient(180deg, #b0855a 0%, #704a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lswch-woman 5s ease-in-out infinite; }
.scn-lysistratus-wife-choice .ring-glow { position:absolute; bottom:35%; left:47%; width:12px; height:12px; background: radial-gradient(circle, #ffe080 0%, #d4a040 60%, transparent 100%); border-radius:50%; animation: lswch-ring 3s ease-in-out infinite alternate; }
.scn-lysistratus-wife-choice .flower { position:absolute; bottom:30%; left:45%; width:8px; height:8px; background: #c8553d; border-radius:50%; box-shadow: 0 0 6px 2px rgba(200,85,61,.5); animation: lswch-flower 6s ease-in-out infinite; }
@keyframes lswch-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes lswch-man { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lswch-woman { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lswch-ring { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.5); opacity:1 } 100% { transform: scale(1); opacity:.7 } }
@keyframes lswch-flower { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(10deg) } 100% { transform: translateY(0) rotate(0deg) } }

.scn-marina-skill {
  background: linear-gradient(180deg, #b8c8d8 0%, #d4c4a8 50%, #a8946a 100%),
              radial-gradient(ellipse at 20% 60%, #fceabb 0%, transparent 50%);
}
.scn-marina-skill .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c8b898 0%, #a88868 100%); }
.scn-marina-skill .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #988868 0%, #786848 100%); }
.scn-marina-skill .window { position:absolute; top:15%; left:10%; width:100px; height:80px; background: linear-gradient(180deg, #b8d4e8 0%, #d0e0f0 100%); border: 4px solid #6a5a4a; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,235,180,.4); animation: maski-window 14s ease-in-out infinite alternate; }
.scn-marina-skill .bed { position:absolute; bottom:20%; left:20%; right:20%; height:60px; background: linear-gradient(180deg, #b08a6a 0%, #8a6a4a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; }
.scn-marina-skill .king { position:absolute; bottom:22%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: maski-king 8s ease-in-out infinite; }
.scn-marina-skill .marina { position:absolute; bottom:25%; left:60%; width:18px; height:48px; background: linear-gradient(180deg, #b0855a 0%, #704a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: maski-marina 6s ease-in-out infinite; }
.scn-marina-skill .music-notes { position:absolute; top:20%; left:55%; width:12px; height:12px; background: radial-gradient(circle, #f0c060 0%, transparent 100%); border-radius:50%; animation: maski-notes 4s ease-in-out infinite; filter: blur(1px); }
.scn-marina-skill .halo { position:absolute; top:25%; left:58%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,235,180,.3) 0%, transparent 70%); border-radius:50%; animation: maski-halo 7s ease-in-out infinite alternate; }
@keyframes maski-window { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes maski-king { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes maski-marina { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes maski-notes { 0% { transform: translateY(0) scale(1); opacity:.8 } 25% { transform: translateY(-10px) scale(1.2); opacity:1 } 50% { transform: translateY(-20px) scale(1.5); opacity:.6 } 75% { transform: translateY(-30px) scale(1.2); opacity:.3 } 100% { transform: translateY(0) scale(1); opacity:.8 } }
@keyframes maski-halo { 0% { transform: scale(1); opacity:.3 } 50% { transform: scale(1.3); opacity:.6 } 100% { transform: scale(1); opacity:.3 } }

/* thaliard-false-message */
.scn-thaliard-false-message {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d9c8a8 40%, #b89a7a 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e7 0%, transparent 70%);
}
.scn-thaliard-false-message .interior-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8dcc8 0%, #cbb89a 100%); opacity: 0.6;
}
.scn-thaliard-false-message .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b5940 0%, #4a3d2c 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-thaliard-false-message .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(135deg, #d9c8a8 0%, #b89a7a 50%, #a08060 100%);
}
.scn-thaliard-false-message .window {
  position: absolute; top: 20%; left: 60%; width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 30%, #fff8e0 0%, #c8b898 70%, #8a7a5a 100%);
  border: 4px solid #4a3d2c; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,248,224,0.3);
  animation: tfm-glow 5s ease-in-out infinite alternate;
}
.scn-thaliard-false-message .table {
  position: absolute; bottom: 25%; left: 35%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #5a4a34 0%, #3a2e1e 100%);
  border-radius: 4px; transform: skewX(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-thaliard-false-message .scroll {
  position: absolute; bottom: 30%; left: 42%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 2px; transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tfm-scroll 8s ease-in-out infinite;
}
.scn-thaliard-false-message .messenger {
  position: absolute; bottom: 28%; left: 25%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3725 70%, #4a1e14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tfm-stand 4s ease-in-out infinite alternate;
}
.scn-thaliard-false-message .shadow {
  position: absolute; bottom: 29%; left: 20%; width: 50px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: tfm-shadow 4s ease-in-out infinite alternate;
}
@keyframes tfm-glow {
  0% { box-shadow: inset 0 0 10px rgba(255,248,224,0.2); opacity: 0.8; }
  50% { box-shadow: inset 0 0 30px rgba(255,248,224,0.6); opacity: 1; }
  100% { box-shadow: inset 0 0 15px rgba(255,248,224,0.3); opacity: 0.85; }
}
@keyframes tfm-scroll {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-1px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes tfm-stand {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes tfm-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(0.9); opacity: 0.3; }
  100% { transform: scaleX(1); opacity: 0.4; }
}

/* tarsus-famine */
.scn-tarsus-famine {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 20%, #3a3a5a 0%, transparent 70%);
}
.scn-tarsus-famine .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #202030 0%, #111122 100%); opacity: 0.7;
}
.scn-tarsus-famine .window-overcast {
  position: absolute; top: 15%; left: 65%; width: 50px; height: 70px;
  background: radial-gradient(circle at 50% 40%, #5a5a7a 0%, #3a3a5a 70%, #1a1a3a 100%);
  border: 3px solid #2a2a3a; border-radius: 3px;
  box-shadow: inset 0 0 30px rgba(90,90,122,0.3);
  animation: tsf-glow 20s ease-in-out infinite alternate;
}
.scn-tarsus-famine .figure-cleon {
  position: absolute; bottom: 30%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 40%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsf-figure 12s ease-in-out infinite;
}
.scn-tarsus-famine .figure-dionyza {
  position: absolute; bottom: 30%; left: 45%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsf-figure 14s ease-in-out infinite reverse;
}
.scn-tarsus-famine .table {
  position: absolute; bottom: 28%; left: 35%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #3a3030 0%, #1a1515 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-tarsus-famine .bowl {
  position: absolute; bottom: 32%; left: 42%; width: 20px; height: 10px;
  background: radial-gradient(ellipse, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 20% 20%;
  transform: scale(0.95);
  box-shadow: inset 0 0 4px rgba(255,255,255,0.05);
}
.scn-tarsus-famine .shadow {
  position: absolute; bottom: 29%; left: 20%; width: 60px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: tsf-shadow 12s ease-in-out infinite;
}
@keyframes tsf-glow {
  0% { box-shadow: inset 0 0 20px rgba(90,90,122,0.1); opacity: 0.6; }
  50% { box-shadow: inset 0 0 40px rgba(90,90,122,0.3); opacity: 0.8; }
  100% { box-shadow: inset 0 0 25px rgba(90,90,122,0.15); opacity: 0.7; }
}
@keyframes tsf-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes tsf-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(0.9); opacity: 0.3; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

/* tarsus-hunger-pangs */
.scn-tarsus-hunger-pangs {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 60%, #050510 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a3a 0%, transparent 70%);
}
.scn-tarsus-hunger-pangs .wall-close {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, #12121e 0%, #0a0a14 50%, #06060e 100%);
}
.scn-tarsus-hunger-pangs .figure.slumped {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #1a1a28 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: rotate(15deg);
  animation: tsh-slump 8s ease-in-out infinite;
}
.scn-tarsus-hunger-pangs .empty-hand {
  position: absolute; bottom: 32%; left: 42%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #1a1a28 0%, #0a0a14 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-20deg);
  animation: tsh-hand 6s ease-in-out infinite alternate;
}
.scn-tarsus-hunger-pangs .bowl-empty {
  position: absolute; bottom: 30%; left: 44%; width: 18px; height: 8px;
  background: radial-gradient(ellipse, #111122 0%, #050510 100%);
  border-radius: 50% 50% 20% 20%;
  transform: scale(0.9);
  box-shadow: inset 0 0 4px rgba(0,0,0,0.8);
}
.scn-tarsus-hunger-pangs .shadow-deep {
  position: absolute; bottom: 24%; left: 28%; width: 70px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  animation: tsh-shadow 8s ease-in-out infinite;
}
@keyframes tsh-slump {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(13deg) translateY(2px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes tsh-hand {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-22deg) translateY(1px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes tsh-shadow {
  0% { transform: scaleX(1); opacity: 0.7; }
  50% { transform: scaleX(0.8); opacity: 0.5; }
  100% { transform: scaleX(1); opacity: 0.7; }
}

/* tarsus-past-prosperity */
.scn-tarsus-past-prosperity {
  background:
    linear-gradient(180deg, #c0c8d0 0%, #a0a8b8 50%, #8088a0 100%),
    radial-gradient(ellipse at 50% 50%, #d0d8e0 0%, transparent 70%);
}
.scn-tarsus-past-prosperity .sky-overcast {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #b0b8c8 0%, #9098a8 100%);
  opacity: 0.7;
}
.scn-tarsus-past-prosperity .clouds {
  position: absolute; top: 10%; left: 0; width: 100%; height: 20%;
  background: radial-gradient(ellipse at 20% 50%, #d0d8e0 0%, transparent 60%),
              radial-gradient(ellipse at 70% 30%, #c0c8d8 0%, transparent 50%);
  filter: blur(8px);
  animation: tsp-clouds 40s linear infinite;
}
.scn-tarsus-past-prosperity .tower-left {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 100%);
  border-radius: 4px 4px 0 0;
  transform: scaleY(0.9);
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
}
.scn-tarsus-past-prosperity .tower-right {
  position: absolute; bottom: 30%; right: 20%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #9a9aaa 0%, #7a7a8a 100%);
  border-radius: 4px 4px 0 0;
  transform: scaleY(0.9);
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.2);
}
.scn-tarsus-past-prosperity .street {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a6a7a 0%, #5a5a6a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
.scn-tarsus-past-prosperity .figure-memory {
  position: absolute; bottom: 28%; left: 48%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsp-figure 10s ease-in-out infinite;
}
.scn-tarsus-past-prosperity .flag {
  position: absolute; top: 20%; left: 30%; width: 12px; height: 18px;
  background: #b87878;
  border-radius: 2px;
  transform-origin: left bottom;
  animation: tsp-flag 6s ease-in-out infinite alternate;
}
@keyframes tsp-clouds {
  0% { transform: translateX(0); opacity: 0.6; }
  50% { transform: translateX(-20px); opacity: 0.8; }
  100% { transform: translateX(0); opacity: 0.6; }
}
@keyframes tsp-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tsp-flag {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(0deg); }
}

.scn-tyre-council {
  background: linear-gradient(180deg, #1e1612 0%, #2c1f18 40%, #3d2a20 100%),
              radial-gradient(ellipse at 50% 70%, #4d3328 0%, transparent 70%);
}
.scn-tyre-council .throne { position:absolute; bottom:15%; left:33%; width:30%; height:40%; background: linear-gradient(180deg, #5c3d2b 0%, #2a1810 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,.6); }
.scn-tyre-council .king { position:absolute; bottom:28%; left:38%; width:20%; height:34%; background: radial-gradient(ellipse 70% 80% at 50% 100%, #1f120c 0%, #0a0402 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc-king 5s ease-in-out infinite; }
.scn-tyre-council .table { position:absolute; bottom:10%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #4d3020 0%, #2a1810 100%); border-radius: 6%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-tyre-council .candle-1 { position:absolute; bottom:18%; left:25%; width:1.5%; height:8%; background: linear-gradient(180deg, #f5d090 0%, #b07a40 100%); border-radius: 20%; box-shadow: 0 0 12px 4px #ffd080, 0 0 24px 8px rgba(255,208,128,.3); animation: tc-candle 3s ease-in-out infinite alternate; }
.scn-tyre-council .candle-2 { position:absolute; bottom:18%; left:40%; width:1.5%; height:6%; background: linear-gradient(180deg, #f5d090 0%, #b07a40 100%); border-radius: 20%; box-shadow: 0 0 10px 3px #ffd080, 0 0 20px 6px rgba(255,208,128,.2); animation: tc-candle 2.5s ease-in-out infinite alternate-reverse; }
.scn-tyre-council .shadow { position:absolute; bottom:5%; left:10%; width:80%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.8) 0%, transparent 70%); filter: blur(8px); }
.scn-tyre-council .scepter { position:absolute; bottom:30%; left:55%; width:2%; height:25%; background: linear-gradient(180deg, #b88a50 0%, #5c3a20 100%); border-radius: 4px; transform: rotate(15deg); transform-origin: bottom; box-shadow: inset 0 2px 4px #e0b070; animation: tc-scepter 6s ease-in-out infinite; }
@keyframes tc-king { 0% { transform: rotate(0); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(0); } }
@keyframes tc-candle { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.85; transform: scaleY(0.95); } }
@keyframes tc-scepter { 0% { transform: rotate(10deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(10deg); } }

.scn-antiochus-death-tidings {
  background: linear-gradient(180deg, #100b0a 0%, #1a1210 30%, #2d1f1a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2620 0%, transparent 60%);
}
.scn-antiochus-death-tidings .window { position:absolute; inset: 15% 25% 45% 25%; background: linear-gradient(135deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 8%; border: 4px solid #0a0806; box-shadow: inset 0 0 30px rgba(0,0,0,.7); overflow:hidden; }
.scn-antiochus-death-tidings .figure { position:absolute; bottom:18%; left:30%; width:20%; height:45%; background: linear-gradient(180deg, #0f0a08 0%, #050202 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ad-figure 8s ease-in-out infinite; }
.scn-antiochus-death-tidings .scroll { position:absolute; bottom:25%; left:35%; width:12%; height:4%; background: linear-gradient(180deg, #e8d0a0 0%, #c0a070 100%); border-radius: 4px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: ad-scroll 6s ease-in-out infinite alternate; }
.scn-antiochus-death-tidings .candle { position:absolute; bottom:22%; left:55%; width:2%; height:10%; background: linear-gradient(180deg, #f5d090 0%, #b07a40 100%); border-radius: 20%; box-shadow: 0 0 16px 6px #ffd080, 0 0 32px 12px rgba(255,208,128,.4); animation: ad-candle 2s ease-in-out infinite alternate; }
.scn-antiochus-death-tidings .shadow { position:absolute; bottom:5%; left:10%; width:80%; height:25%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.9) 0%, transparent 70%); filter: blur(6px); }
.scn-antiochus-death-tidings .beam { position:absolute; inset: 0 30% 50% 30%; background: linear-gradient(180deg, rgba(200,190,160,0.15) 0%, transparent 100%); clip-path: polygon(40% 0, 60% 0, 70% 100%, 30% 100%); animation: ad-beam 12s ease-in-out infinite alternate; }
@keyframes ad-figure { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-8px) rotate(-4deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ad-scroll { 0% { transform: rotate(-8deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-8deg); } }
@keyframes ad-candle { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.08); } 100% { opacity: 0.85; transform: scaleY(0.95); } }
@keyframes ad-beam { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(0.9); } 100% { opacity: 0.3; transform: scaleX(1); } }

.scn-lords-grievance {
  background: linear-gradient(180deg, #1a1210 0%, #2c1f18 50%, #3d2a20 100%),
              radial-gradient(ellipse at 30% 60%, #4d3328 0%, transparent 60%);
}
.scn-lords-grievance .lord-1 { position:absolute; bottom:10%; left:12%; width:16%; height:35%; background: linear-gradient(180deg, #1a0e0a 0%, #0a0504 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom; animation: lg-lord 5s ease-in-out infinite; }
.scn-lords-grievance .lord-2 { position:absolute; bottom:10%; left:35%; width:16%; height:40%; background: linear-gradient(180deg, #1f120c 0%, #0a0504 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom; animation: lg-lord 6s ease-in-out infinite 1s; }
.scn-lords-grievance .lord-3 { position:absolute; bottom:10%; left:58%; width:16%; height:38%; background: linear-gradient(180deg, #1a0e0a 0%, #0a0504 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom; animation: lg-lord 5.5s ease-in-out infinite 2s; }
.scn-lords-grievance .table { position:absolute; bottom:8%; left:18%; width:64%; height:6%; background: linear-gradient(180deg, #4d3020 0%, #2a1810 100%); border-radius: 4%; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-lords-grievance .goblet { position:absolute; bottom:14%; left:46%; width:4%; height:8%; background: linear-gradient(180deg, #b88a50 0%, #5c3a20 100%); border-radius: 4px 4px 30% 30%; box-shadow: 0 0 8px 2px rgba(180,140,80,.3); animation: lg-goblet 4s ease-in-out infinite; }
.scn-lords-grievance .basin { position:absolute; bottom:7%; left:40%; width:20%; height:4%; background: linear-gradient(180deg, #2a1c14 0%, #1a0e0a 100%); border-radius: 50%; box-shadow: inset 0 2px 6px rgba(0,0,0,.7); overflow:hidden; }
@keyframes lg-lord { 0% { transform: rotate(0); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0); } }
@keyframes lg-goblet { 0% { transform: rotate(0); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0); } }

.scn-succession-doubt {
  background: linear-gradient(180deg, #0c0807 0%, #1a1210 40%, #2d1f1a 100%),
              radial-gradient(ellipse at 50% 60%, #3a2620 0%, transparent 70%);
}
.scn-succession-doubt .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #050202 100%); }
.scn-succession-doubt .bg-mid { position:absolute; inset: 10% 10% 30% 10%; background: radial-gradient(ellipse at 50% 0%, #2a1c14 0%, transparent 70%); }
.scn-succession-doubt .crown { position:absolute; top:10%; left:45%; width:10%; height:8%; background: linear-gradient(180deg, #b88a50 0%, #5c3a20 100%); border-radius: 50% 50% 4px 4px; clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); box-shadow: 0 0 20px 4px #f0c060; animation: sd-crown 4s ease-in-out infinite alternate; }
.scn-succession-doubt .beam { position:absolute; inset: 0 40% 0 40%; background: linear-gradient(180deg, rgba(200,180,140,0.2) 0%, transparent 100%); clip-path: polygon(30% 0, 70% 0, 60% 100%, 40% 100%); animation: sd-beam 8s ease-in-out infinite alternate; }
.scn-succession-doubt .rubble { position:absolute; width:8%; height:6%; background: linear-gradient(180deg, #3d2a20 0%, #1a1010 100%); border-radius: 10%; box-shadow: 0 2px 6px rgba(0,0,0,.6); }
.scn-succession-doubt .r1 { bottom:20%; left:25%; transform: rotate(30deg); animation: sd-rubble 10s linear infinite; }
.scn-succession-doubt .r2 { bottom:15%; left:60%; width:12%; height:4%; transform: rotate(-20deg); animation: sd-rubble 12s linear infinite 3s; }
.scn-succession-doubt .shadow { position:absolute; bottom:0; left:0; width:100%; height:30%; background: linear-gradient(0deg, rgba(0,0,0,.8) 0%, transparent 100%); }
@keyframes sd-crown { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(20px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes sd-beam { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes sd-rubble { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(40px) rotate(360deg); } }

/* marina-honest */
.scn-marina-honest {
  background: linear-gradient(180deg, #2c1b12 0%, #1f110c 40%, #3a281e 70%, #1a0e08 100%),
              radial-gradient(ellipse at 30% 60%, #4a3425 0%, transparent 60%);
}
.scn-marina-honest .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a251a 0%, #2c1b12 70%, #1f110c 100%);
  animation: mh-wall 15s ease-in-out infinite alternate;
}
.scn-marina-honest .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a0e08 0%, #2c1b12 60%, #3a251a 100%);
  border-radius: 20% 80% 0 0 / 10% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-marina-honest .table {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5e3f2e 0%, #3a251a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-marina-honest .candle {
  position: absolute; bottom: 28%; left: 44%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d0a0 0%, #d4a06a 60%, #8a5a3a 100%);
  border-radius: 4px 4px 2px 2px;
  animation: mh-candle-body 4s ease-in-out infinite alternate;
}
.scn-marina-honest .candle-glow {
  position: absolute; bottom: 43%; left: 44%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #e8a050 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mh-glow 3s ease-in-out infinite alternate, mh-flicker 0.4s infinite;
}
.scn-marina-honest .figure-woman {
  position: absolute; bottom: 22%; left: 38%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3020 0%, #2c1b12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh-figure 6s ease-in-out infinite;
}
.scn-marina-honest .shadow-chair {
  position: absolute; bottom: 20%; left: 58%; width: 40px; height: 50px;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.3) 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  filter: blur(3px);
  animation: mh-chair 12s ease-in-out infinite;
}
@keyframes mh-wall { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes mh-candle-body { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(0.98) translateY(1px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes mh-glow { 0% { opacity: 0.6; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(1) } }
@keyframes mh-flicker { 0%,100% { opacity: 0.9 } 50% { opacity: 0.7 } }
@keyframes mh-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(0) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-2px) rotate(0) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes mh-chair { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.5; transform: scale(1.02) } 100% { opacity: 0.3; transform: scale(1) } }

/* boult-reports */
.scn-boult-reports {
  background: linear-gradient(180deg, #1f1410 0%, #2c1f18 40%, #3a2a20 100%),
              radial-gradient(ellipse at 70% 40%, #4a3425 0%, transparent 60%);
}
.scn-boult-reports .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a0e08 0%, #2c1b12 100%);
  animation: br-wall 10s ease-in-out infinite;
}
.scn-boult-reports .wood-counter {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 60px;
  background: linear-gradient(180deg, #5e3f2e 0%, #3a251a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-boult-reports .boult-figure {
  position: absolute; bottom: 30%; left: 20%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a3020 0%, #2c1b12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-figure 3s ease-in-out infinite;
}
.scn-boult-reports .boult-arm {
  position: absolute; bottom: 55%; left: 18%; width: 40px; height: 8px;
  background: linear-gradient(180deg, #3a251a 0%, #2c1b12 100%);
  border-radius: 4px;
  transform-origin: right center;
  animation: br-arm 0.8s ease-in-out infinite alternate;
}
.scn-boult-reports .listener-shadow {
  position: absolute; bottom: 28%; right: 15%; width: 50px; height: 80px;
  background: rgba(0,0,0,0.4);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  filter: blur(4px);
  animation: br-shadow 5s ease-in-out infinite;
}
.scn-boult-reports .lantern {
  position: absolute; bottom: 55%; left: 70%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #a08040 0%, #6a5020 100%);
  border-radius: 4px;
  animation: br-lantern 4s ease-in-out infinite;
}
.scn-boult-reports .lantern-glow {
  position: absolute; bottom: 58%; left: 67%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0c060 0%, #d08030 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: br-glow 2s ease-in-out infinite alternate;
}
.scn-boult-reports .drapes {
  position: absolute; top: 5%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2c1b12 0%, transparent 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
@keyframes br-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes br-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(0) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(0) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes br-arm { 0% { transform: rotate(-30deg) } 100% { transform: rotate(20deg) } }
@keyframes br-shadow { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.5; transform: scale(1.05) } 100% { opacity: 0.3; transform: scale(1) } }
@keyframes br-lantern { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }
@keyframes br-glow { 0% { opacity: 0.5; transform: scale(0.8) } 100% { opacity: 1; transform: scale(1.2) } }

/* boult-listened */
.scn-boult-listened {
  background: linear-gradient(180deg, #1f1812 0%, #2c2218 40%, #3a2e22 100%),
              radial-gradient(ellipse at 40% 50%, #4a3a2a 0%, transparent 60%);
}
.scn-boult-listened .wall-panel {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2c1f18 0%, #1f1410 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: bl-wall 12s ease-in-out infinite;
}
.scn-boult-listened .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a0e08 0%, #2c1b12 100%);
  border-top: 2px solid #3a251a;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-boult-listened .listener-figure {
  position: absolute; bottom: 25%; left: 30%; width: 32px; height: 75px;
  background: linear-gradient(180deg, #4a3425 0%, #2c1f18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bl-figure 4s ease-in-out infinite;
}
.scn-boult-listened .listener-head {
  position: absolute; bottom: 70%; left: 28%; width: 20px; height: 20px;
  background: radial-gradient(circle at 40% 40%, #5e4432 0%, #3a251a 100%);
  border-radius: 50%;
  animation: bl-head 3s ease-in-out infinite alternate;
}
.scn-boult-listened .cup {
  position: absolute; bottom: 30%; left: 55%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 4px 4px 8px 8px;
  animation: bl-cup 5s ease-in-out infinite;
}
.scn-boult-listened .cup-shadow {
  position: absolute; bottom: 28%; left: 53%; width: 24px; height: 6px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-boult-listened .doorway {
  position: absolute; top: 10%; right: 5%; width: 80px; height: 60%;
  background: linear-gradient(180deg, #1a0e08 0%, #0f0704 100%);
  border: 2px solid #2c1b12;
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: bl-door 20s ease-in-out infinite;
}
@keyframes bl-wall { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes bl-figure { 0% { transform: translateX(0) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) } }
@keyframes bl-head { 0% { transform: rotate(-5deg); opacity: 0.8 } 50% { transform: rotate(5deg); opacity: 1 } 100% { transform: rotate(-5deg); opacity: 0.8 } }
@keyframes bl-cup { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes bl-door { 0% { opacity: 0.6; transform: scaleX(1) } 50% { opacity: 0.9; transform: scaleX(1.02) } 100% { opacity: 0.6; transform: scaleX(1) } }

/* bawd-veroles */
.scn-bawd-veroles {
  background: linear-gradient(180deg, #1a1814 0%, #2c2620 40%, #3a3228 100%),
              radial-gradient(ellipse at 60% 70%, #4a4035 0%, transparent 60%);
}
.scn-bawd-veroles .wall-sick {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2c2218 0%, #1f1812 100%);
  animation: bv-wall 18s ease-in-out infinite;
}
.scn-bawd-veroles .bed-frame {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 55%;
  background: linear-gradient(180deg, #5e4432 0%, #3a251a 100%);
  border-radius: 8px 8px 12px 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
}
.scn-bawd-veroles .blanket {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 40%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%);
  border-radius: 12px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: bv-blanket 10s ease-in-out infinite;
}
.scn-bawd-veroles .sick-figure {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a30 0%, #2c2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: bv-figure 7s ease-in-out infinite;
}
.scn-bawd-veroles .pillow {
  position: absolute; bottom: 45%; left: 25%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #8a7060 0%, #6a5040 100%);
  border-radius: 30%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.3);
  animation: bv-pillow 9s ease-in-out infinite;
}
.scn-bawd-veroles .medicine-bottle {
  position: absolute; bottom: 15%; left: 65%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 4px 4px 2px 2px;
  animation: bv-bottle 5s ease-in-out infinite;
}
.scn-bawd-veroles .candle-flicker {
  position: absolute; bottom: 50%; left: 50%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e8b080 0%, #a06030 100%);
  border-radius: 2px 2px 0 0;
  animation: bv-candle 3s ease-in-out infinite alternate;
}
.scn-bawd-veroles .shadow-veroles {
  position: absolute; bottom: 5%; right: 5%; width: 60px; height: 80px;
  background: rgba(0,0,0,0.4);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  filter: blur(5px);
  animation: bv-shadow 8s ease-in-out infinite;
}
@keyframes bv-wall { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes bv-blanket { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes bv-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(2px) rotate(0) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes bv-pillow { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes bv-bottle { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes bv-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) translateY(1px) } 100% { transform: scaleY(1) } }
@keyframes bv-shadow { 0% { opacity: 0.2; transform: translateX(0) } 50% { opacity: 0.4; transform: translateX(3px) } 100% { opacity: 0.2; transform: translateX(0) } }

/* Scene: thaisa-vestal-decision — calm bright interior, Diana's temple */
.scn-thaisa-vestal-decision { background: linear-gradient(135deg, #f4e4c1 0%, #d6b78e 40%, #b88a5e 100%), radial-gradient(ellipse at 30% 20%, #ffe6b0 0%, transparent 60%); }
.scn-thaisa-vestal-decision .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #ffe5c4 0%, #e6c8a0 50%, #c9a77a 100%); mix-blend-mode: overlay; animation: thaisa-warm 12s ease-in-out infinite alternate; }
.scn-thaisa-vestal-decision .column { position:absolute; bottom:0; width:18px; height:70%; background: linear-gradient(180deg, #b5956e 0%, #8a6b48 100%); box-shadow: 6px 0 12px rgba(0,0,0,.2); border-radius: 4px; }
.scn-thaisa-vestal-decision .column.left { left:15%; animation: thaisa-column 8s ease-in-out infinite; }
.scn-thaisa-vestal-decision .column.right { right:15%; animation: thaisa-column 8s ease-in-out infinite reverse; }
.scn-thaisa-vestal-decision .altar { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:80px; height:30px; background: linear-gradient(180deg, #b8916a 0%, #7a5e3e 100%); border-radius: 8% 8% 2% 2%; box-shadow: 0 -4px 20px rgba(255,200,100,.3), inset 0 4px 6px rgba(0,0,0,.3); animation: thaisa-altar 14s ease-in-out infinite; }
.scn-thaisa-vestal-decision .figure { position:absolute; bottom:28%; left:44%; width:20px; height:44px; background: linear-gradient(180deg, #f0e0c6 0%, #c8b090 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: thaisa-figure 6s ease-in-out infinite; }
.scn-thaisa-vestal-decision .window-light { position:absolute; top:20%; left:30%; width:50px; height:40px; background: radial-gradient(ellipse, #ffeaa0 0%, transparent 70%); border-radius: 20%; box-shadow: 0 0 40px 20px rgba(255,234,160,.4); animation: thaisa-light 4s ease-in-out infinite alternate; }
.scn-thaisa-vestal-decision .incense { position:absolute; top:10%; left:42%; width:8px; height:30px; background: linear-gradient(180deg, rgba(200,180,160,.4) 0%, transparent 100%); filter: blur(4px); border-radius: 50%; animation: thaisa-incense 7s ease-in-out infinite; }
@keyframes thaisa-warm  { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.5; } }
@keyframes thaisa-column { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes thaisa-altar  { 0% { filter: brightness(1); } 50% { filter: brightness(1.15); } 100% { filter: brightness(1); } }
@keyframes thaisa-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg); } 75% { transform: translateX(-3px) rotate(2deg); } }
@keyframes thaisa-light { 0% { opacity:.6; transform: scale(1); } 100% { opacity:1; transform: scale(1.1); } }
@keyframes thaisa-incense{ 0% { transform: translateY(0) scaleY(1); opacity:.3; } 50% { transform: translateY(-10px) scaleY(1.5); opacity:.6; } 100% { transform: translateY(0) scaleY(1); opacity:.3; } }

/* Scene: gower-narrative-time — calm dark night, ship at sea */
.scn-gower-narrative-time { background: linear-gradient(180deg, #0b1428 0%, #1a2744 50%, #2a3a5e 100%), radial-gradient(ellipse at 50% 20%, #2a3a5e 0%, transparent 70%); }
.scn-gower-narrative-time .sky-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0b1428 0%, #141f3a 60%, #1e2e4e 100%); animation: gower-sky 20s ease-in-out infinite alternate; }
.scn-gower-narrative-time .sea { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a4a 0%, #0e1a2e 100%); border-radius: 80% 70% 0 0 / 60% 50% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.5); animation: gower-sea 15s ease-in-out infinite; }
.scn-gower-narrative-time .ship { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:80px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 20% 20% 60% 60% / 20% 20% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: gower-ship 10s ease-in-out infinite; }
.scn-gower-narrative-time .moon { position:absolute; top:10%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #e8e0c0 0%, #c8b090 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(200,176,144,.3); animation: gower-moon 12s ease-in-out infinite alternate; }
.scn-gower-narrative-time .star { position:absolute; width:4px; height:4px; background: radial-gradient(circle, #ffffff 0%, transparent 100%); border-radius: 50%; }
.scn-gower-narrative-time .star-1 { top:15%; left:10%; animation: gower-star 6s ease-in-out infinite; }
.scn-gower-narrative-time .star-2 { top:25%; left:40%; animation: gower-star 8s ease-in-out infinite 3s; }
.scn-gower-narrative-time .city-glow { position:absolute; bottom:25%; left:20%; width:40px; height:20px; background: radial-gradient(ellipse, #4a6a8a 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: gower-glow 18s ease-in-out infinite; }
@keyframes gower-sky  { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes gower-sea  { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes gower-ship { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg); } 75% { transform: translateX(-52%) rotate(-2deg); } }
@keyframes gower-moon { 0% { filter: brightness(.8); } 50% { filter: brightness(1.1); } 100% { filter: brightness(.9); } }
@keyframes gower-star { 0%,100% { opacity:.3; transform: scale(1); } 50% { opacity:1; transform: scale(1.5); } }
@keyframes gower-glow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.2); } 100% { opacity:.3; transform: scale(1); } }

/* Scene: philoten-envy — tense dark interior, envy and shadow */
.scn-philoten-envy { background: linear-gradient(180deg, #1a0e1a 0%, #2a142a 50%, #3a1e2a 100%), radial-gradient(ellipse at 80% 40%, #3a1e2a 0%, transparent 60%); }
.scn-philoten-envy .bg-tense { position:absolute; inset:0; background: linear-gradient(135deg, #2a142a 0%, #3a1e2a 40%, #1a0e1a 100%); mix-blend-mode: multiply; animation: philoten-bg 4s ease-in-out infinite alternate; }
.scn-philoten-envy .figure-shadow { position:absolute; bottom:20%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #0a0a1a 0%, #000000 100%); border-radius: 40% 60% 30% 50% / 60% 50% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,.8); transform-origin: bottom center; animation: philoten-shadow 2s ease-in-out infinite; }
.scn-philoten-envy .figure-loom { position:absolute; bottom:25%; right:25%; width:50px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1414 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: philoten-loom 5s ease-in-out infinite; }
.scn-philoten-envy .envy-glow { position:absolute; top:40%; left:50%; transform:translateX(-50%); width:25px; height:25px; background: radial-gradient(circle, #8a3a2a 0%, transparent 60%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(138,58,42,.5); animation: philoten-glow 1.5s ease-in-out infinite; }
.scn-philoten-envy .blade { position:absolute; bottom:30%; left:45%; width:4px; height:30px; background: linear-gradient(180deg, #b0a0a0 0%, #706060 100%); border-radius: 10% 10% 50% 50%; transform: rotate(15deg); animation: philoten-blade 3s ease-in-out infinite; }
.scn-philoten-envy .shard { position:absolute; width:6px; height:6px; background: #4a2a2a; border-radius: 2px; }
.scn-philoten-envy .shard-1 { top:20%; left:10%; transform: rotate(30deg); animation: philoten-shard 7s linear infinite; }
.scn-philoten-envy .shard-2 { top:30%; left:70%; transform: rotate(-20deg); animation: philoten-shard 9s linear infinite 2s; }
@keyframes philoten-bg    { 0% { opacity:.4; } 50% { opacity:.8; } 100% { opacity:.4; } }
@keyframes philoten-shadow { 0%,100% { transform: rotate(-3deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.05); } }
@keyframes philoten-loom  { 0% { transform: translateY(0); } 25% { transform: translateY(2px); } 75% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes philoten-glow  { 0% { opacity:.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:.5; transform: scale(1); } }
@keyframes philoten-blade { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(20deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes philoten-shard { 0% { transform: rotate(var(--rot,30deg)) translateY(0); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform: rotate(var(--rot,30deg)) translateY(-100px); opacity:0; } }

/* Scene: marina-excels — calm dark, serene figure with book */
.scn-marina-excels { background: linear-gradient(180deg, #0a1420 0%, #142238 50%, #1e3050 100%), radial-gradient(ellipse at 50% 60%, #1e3050 0%, transparent 70%); }
.scn-marina-excels .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0a1420 0%, #182c40 40%, #0e1e2e 100%); mix-blend-mode: overlay; animation: marina-bg 20s ease-in-out infinite alternate; }
.scn-marina-excels .halo { position:absolute; top:20%; left:50%; transform:translateX(-50%); width:60px; height:60px; background: radial-gradient(circle, #c8b8a0 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 50px 20px rgba(200,184,160,.2); animation: marina-halo 10s ease-in-out infinite alternate; }
.scn-marina-excels .figure-seated { position:absolute; bottom:20%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: marina-figure 8s ease-in-out infinite; }
.scn-marina-excels .book { position:absolute; bottom:22%; left:48%; width:18px; height:14px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 2px; transform: rotate(-5deg); animation: marina-book 12s ease-in-out infinite; }
.scn-marina-excels .candle { position:absolute; bottom:30%; left:30%; width:6px; height:20px; background: linear-gradient(180deg, #f0d0a0 0%, #b08050 100%); border-radius: 2px; box-shadow: 0 0 12px 6px rgba(240,208,160,.4); animation: marina-candle 4s ease-in-out infinite alternate; }
.scn-marina-excels .rays { position:absolute; top:0; left:30%; width:100px; height:100%; background: linear-gradient(90deg, transparent 0%, rgba(200,184,160,.05) 30%, transparent 70%); filter: blur(8px); animation: marina-rays 15s ease-in-out infinite; }
@keyframes marina-bg      { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.3; } }
@keyframes marina-halo    { 0% { opacity:.4; transform: scale(1) translateX(-50%); } 100% { opacity:.7; transform: scale(1.1) translateX(-45%); } }
@keyframes marina-figure  { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-1px); } 75% { transform: rotate(-2deg) translateY(-1px); } }
@keyframes marina-book    { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes marina-candle  { 0% { filter: brightness(.8); box-shadow: 0 0 10px 4px rgba(240,208,160,.3); } 100% { filter: brightness(1.2); box-shadow: 0 0 18px 8px rgba(240,208,160,.5); } }
@keyframes marina-rays    { 0% { opacity:.2; transform: translateX(0); } 50% { opacity:.4; transform: translateX(10px); } 100% { opacity:.2; transform: translateX(0); } }

/* Scene: helicanus-plea — dim interior, patient plea */
.scn-helicanus-plea {
  background: 
    radial-gradient(ellipse at 30% 60%, #2a1f1a 0%, transparent 50%),
    linear-gradient(180deg, #1a1220 0%, #2d1f30 30%, #1e1625 70%, #14101a 100%);
}
.scn-helicanus-plea .wall-deep {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1f28 0%, #1e1620 100%);
}
.scn-helicanus-plea .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1015 0%, #0e0a10 100%);
}
.scn-helicanus-plea .window-night {
  position: absolute; top: 15%; right: 12%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%);
  border: 3px solid #3a2a30; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,140,180,.15), 0 0 8px rgba(100,140,180,.08);
  animation: hp-window 12s ease-in-out infinite alternate;
}
.scn-helicanus-plea .figure-plea {
  position: absolute; bottom: 24%; left: 28%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a2028 0%, #1a1218 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hp-figure 6s ease-in-out infinite;
}
.scn-helicanus-plea .table-low {
  position: absolute; bottom: 18%; left: 24%; width: 70px; height: 10px;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1a12 100%);
  border-radius: 2px; transform: perspective(200px) rotateX(10deg);
}
.scn-helicanus-plea .candle-glow {
  position: absolute; bottom: 30%; left: 34%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 60%, #602010 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(255,180,80,.35), 0 0 60px 20px rgba(255,160,60,.12);
  animation: hp-candle 4s ease-in-out infinite alternate;
}
.scn-helicanus-plea .shadow-pool {
  position: absolute; bottom: 12%; left: 18%; width: 100px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: hp-shadow 8s ease-in-out infinite;
}
@keyframes hp-window {
  0% { opacity: .7; box-shadow: inset 0 0 20px rgba(100,140,180,.15), 0 0 8px rgba(100,140,180,.08); }
  50% { opacity: .85; box-shadow: inset 0 0 30px rgba(120,160,200,.2), 0 0 12px rgba(100,140,180,.12); }
  100% { opacity: .75; box-shadow: inset 0 0 20px rgba(100,140,180,.15), 0 0 8px rgba(100,140,180,.08); }
}
@keyframes hp-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-1px) rotate(.5deg); }
  60% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes hp-candle {
  0% { opacity: .85; box-shadow: 0 0 18px 6px rgba(255,180,80,.3), 0 0 50px 16px rgba(255,160,60,.1); }
  50% { opacity: 1; box-shadow: 0 0 28px 12px rgba(255,200,100,.4), 0 0 70px 24px rgba(255,180,80,.15); }
  100% { opacity: .9; box-shadow: 0 0 22px 8px rgba(255,180,80,.35), 0 0 55px 18px rgba(255,160,60,.12); }
}
@keyframes hp-shadow {
  0% { opacity: .6; transform: scaleX(1); }
  50% { opacity: .8; transform: scaleX(1.05); }
  100% { opacity: .6; transform: scaleX(1); }
}

/* Scene: lords-consent — dim chamber, unity */
.scn-lords-consent {
  background:
    radial-gradient(ellipse at 50% 40%, #2a2025 0%, #1a1218 40%, #0e0a10 100%),
    linear-gradient(180deg, #1a1420 0%, #221a28 30%, #1a1220 70%, #100c14 100%);
}
.scn-lords-consent .chamber-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1e1622 0%, #16101a 60%, #100c14 100%);
}
.scn-lords-consent .table-round {
  position: absolute; bottom: 22%; left: 50%; width: 120px; height: 14px;
  transform: translateX(-50%) perspective(300px) rotateX(15deg);
  background: linear-gradient(180deg, #3a2a28 0%, #2a1a18 100%);
  border-radius: 50% / 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-lords-consent .lord-left {
  position: absolute; bottom: 24%; left: 28%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #2a2228 0%, #1a1218 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lc-lord 7s ease-in-out infinite;
}
.scn-lords-consent .lord-right {
  position: absolute; bottom: 24%; right: 28%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #28202a 0%, #181018 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lc-lord 7s ease-in-out infinite 1.5s;
}
.scn-lords-consent .hands-clasp {
  position: absolute; bottom: 34%; left: 50%; width: 22px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2830 0%, #281820 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: lc-hands 4s ease-in-out infinite;
}
.scn-lords-consent .candle-center {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ffd080 0%, #c08040 50%, #602010 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 0 30px 12px rgba(255,180,80,.3), 0 0 80px 30px rgba(255,160,60,.1);
  animation: lc-candle 5s ease-in-out infinite alternate;
}
.scn-lords-consent .light-halo {
  position: absolute; bottom: 28%; left: 50%; width: 160px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, rgba(255,180,80,.08) 0%, transparent 60%);
  pointer-events: none;
  animation: lc-halo 6s ease-in-out infinite alternate;
}
@keyframes lc-lord {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-1px) rotate(.5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-.5deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes lc-hands {
  0% { transform: translateX(-50%) scaleY(1); opacity: .8; }
  30% { transform: translateX(-50%) scaleY(1.1); opacity: 1; }
  60% { transform: translateX(-50%) scaleY(.95); opacity: .9; }
  100% { transform: translateX(-50%) scaleY(1); opacity: .8; }
}
@keyframes lc-candle {
  0% { opacity: .8; box-shadow: 0 0 25px 10px rgba(255,180,80,.25), 0 0 70px 25px rgba(255,160,60,.08); }
  50% { opacity: 1; box-shadow: 0 0 35px 15px rgba(255,200,100,.35), 0 0 90px 35px rgba(255,180,80,.12); }
  100% { opacity: .85; box-shadow: 0 0 28px 12px rgba(255,180,80,.28), 0 0 75px 28px rgba(255,160,60,.1); }
}
@keyframes lc-halo {
  0% { opacity: .6; }
  50% { opacity: .9; }
  100% { opacity: .7; }
}

/* Scene: simonides-letter — bright interior, morning */
.scn-simonides-letter {
  background:
    radial-gradient(ellipse at 50% 30%, #fff8e8 0%, #f0e0c0 40%, #d0c0a0 100%),
    linear-gradient(180deg, #fff4e0 0%, #f8e8c8 40%, #e0d0b0 100%);
}
.scn-simonides-letter .wall-bright {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #fff4e0 0%, #f0e0c0 80%, #e0d0b0 100%);
}
.scn-simonides-letter .window-sun {
  position: absolute; top: 12%; right: 15%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #fff8e0 0%, #f0e8c0 100%);
  border: 4px solid #c8b898; border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(255,220,120,.3), 0 0 20px rgba(255,200,80,.15);
  animation: sl-window 10s ease-in-out infinite alternate;
}
.scn-simonides-letter .chair-back {
  position: absolute; bottom: 20%; left: 32%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform: perspective(200px) rotateY(5deg);
}
.scn-simonides-letter .figure-simon {
  position: absolute; bottom: 22%; left: 36%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #403830 0%, #282018 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sl-figure 6s ease-in-out infinite;
}
.scn-simonides-letter .letter-page {
  position: absolute; bottom: 32%; left: 42%; width: 24px; height: 30px;
  background: linear-gradient(135deg, #fff8e8 0%, #f0e0c0 100%);
  border-radius: 2px; transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.1);
  animation: sl-letter 5s ease-in-out infinite alternate;
}
.scn-simonides-letter .desk-wood {
  position: absolute; bottom: 16%; left: 28%; width: 100px; height: 12px;
  background: linear-gradient(180deg, #b09070 0%, #907050 100%);
  border-radius: 4px; transform: perspective(200px) rotateX(10deg);
  box-shadow: 0 3px 8px rgba(0,0,0,.15);
}
.scn-simonides-letter .sunbeam {
  position: absolute; top: 0; right: 10%; width: 30px; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,180,.12) 0%, rgba(255,240,180,.04) 100%);
  transform: skewX(-8deg); pointer-events: none;
  animation: sl-sunbeam 9s ease-in-out infinite alternate;
}
@keyframes sl-window {
  0% { box-shadow: inset 0 0 30px rgba(255,220,120,.3), 0 0 20px rgba(255,200,80,.15); }
  50% { box-shadow: inset 0 0 40px rgba(255,230,140,.4), 0 0 30px rgba(255,210,90,.2); }
  100% { box-shadow: inset 0 0 30px rgba(255,220,120,.3), 0 0 20px rgba(255,200,80,.15); }
}
@keyframes sl-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-1px) rotate(.5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-.5deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes sl-letter {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes sl-sunbeam {
  0% { opacity: .4; transform: skewX(-8deg) translateX(0); }
  50% { opacity: .7; transform: skewX(-8deg) translateX(5px); }
  100% { opacity: .5; transform: skewX(-8deg) translateX(0); }
}

/* Scene: knights-dismissed — bright hall, departure */
.scn-knights-dismissed {
  background:
    radial-gradient(ellipse at 50% 20%, #fff8e8 0%, #e8dcc8 40%, #c8bca8 100%),
    linear-gradient(180deg, #fff4e0 0%, #f0e4d0 30%, #e0d4c0 70%, #d0c4b0 100%);
}
.scn-knights-dismissed .hall-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #f0e4d0 0%, #e0d4c0 60%, #d0c4b0 100%);
}
.scn-knights-dismissed .column-left {
  position: absolute; bottom: 10%; left: 12%; width: 18px; height: 75%;
  background: linear-gradient(90deg, #d0c0a8 0%, #e0d0b8 30%, #c8b8a0 70%, #b8a890 100%);
  border-radius: 8px;
  box-shadow: -4px 0 12px rgba(0,0,0,.08);
}
.scn-knights-dismissed .column-right {
  position: absolute; bottom: 10%; right: 12%; width: 18px; height: 75%;
  background: linear-gradient(90deg, #d0c0a8 0%, #e0d0b8 30%, #c8b8a0 70%, #b8a890 100%);
  border-radius: 8px;
  box-shadow: 4px 0 12px rgba(0,0,0,.08);
}
.scn-knights-dismissed .figure-king {
  position: absolute; bottom: 14%; left: 46%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #a08068 0%, #806050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kd-king 7s ease-in-out infinite;
}
.scn-knights-dismissed .knight-leaving {
  position: absolute; bottom: 16%; right: 22%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kd-knight 8s ease-in-out infinite;
}
.scn-knights-dismissed .letter-roll {
  position: absolute; bottom: 28%; left: 52%; width: 18px; height: 8px;
  background: linear-gradient(180deg, #fff0d0 0%, #e0d0b0 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  transform: rotate(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  animation: kd-roll 6s ease-in-out infinite alternate;
}
.scn-knights-dismissed .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(135deg, #c8bca8 0%, #b8ac98 25%, #c0b4a0 50%, #b0a490 75%, #c8bca8 100%);
  background-size: 40px 40px;
  animation: kd-floor 20s linear infinite;
}
.scn-knights-dismissed .light-shaft {
  position: absolute; top: 0; left: 38%; width: 80px; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,180,.08) 0%, rgba(255,240,180,.02) 70%, transparent 100%);
  transform: skewX(-10deg); pointer-events: none;
  animation: kd-shaft 12s ease-in-out infinite alternate;
}
@keyframes kd-king {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(.5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes kd-knight {
  0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: .8; }
  20% { transform: translateX(-4px) translateY(-1px) rotate(1deg); opacity: .9; }
  40% { transform: translateX(-8px) translateY(0) rotate(0deg); opacity: .85; }
  60% { transform: translateX(-12px) translateY(-1px) rotate(-1deg); opacity: .9; }
  80% { transform: translateX(-16px) translateY(0) rotate(0deg); opacity: .85; }
  100% { transform: translateX(-20px) translateY(0) rotate(0deg); opacity: .7; }
}
@keyframes kd-roll {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-1px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes kd-floor {
  0% { background-position: 0 0; }
  100% { background-position: 40px 0; }
}
@keyframes kd-shaft {
  0% { opacity: .3; transform: skewX(-10deg) translateX(0); }
  50% { opacity: .6; transform: skewX(-10deg) translateX(6px); }
  100% { opacity: .4; transform: skewX(-10deg) translateX(0); }
}

.scn-pericles-asks-advice {
  background: linear-gradient(180deg, #c4a87a 0%, #9e7e5a 60%, #6b4e32 100%),
              radial-gradient(ellipse at 20% 10%, #e4c8a0 0%, transparent 60%);
}
.scn-pericles-asks-advice .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #8a7050 0%, #a08060 50%, #6b4e32 100%);
  animation: pa-wall 12s ease-in-out infinite alternate;
}
.scn-pericles-asks-advice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #4d3624 0%, #6b4e32 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.4);
}
.scn-pericles-asks-advice .window {
  position: absolute; top: 15%; left: 60%; width: 80px; height: 100px;
  background: radial-gradient(circle at 50% 40%, #d4c0a0 0%, #b09878 70%, #a08060 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(200,180,140,0.3);
  animation: pa-window 8s ease-in-out infinite;
}
.scn-pericles-asks-advice .lamp {
  position: absolute; top: 20%; left: 15%; width: 20px; height: 30px;
  background: radial-gradient(circle, #f0d090 0%, #c09850 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 60px 15px rgba(240,208,144,0.5);
  animation: pa-lamp 4s ease-in-out infinite alternate;
}
.scn-pericles-asks-advice .throne {
  position: absolute; bottom: 35%; left: 45%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #7a5c3c 0%, #4d3624 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(5deg);
}
.scn-pericles-asks-advice .figure {
  position: absolute; bottom: 36%; left: 48%; width: 22px; 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: pa-figure 6s ease-in-out infinite;
}
.scn-pericles-asks-advice .shadow {
  position: absolute; bottom: 35%; left: 38%; width: 120px; height: 40px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: pa-shadow 8s ease-in-out infinite alternate;
}
.scn-pericles-asks-advice .scroll {
  position: absolute; bottom: 40%; left: 52%; width: 16px; height: 4px;
  background: #b09060;
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(15deg);
  animation: pa-scroll 5s ease-in-out infinite;
}
@keyframes pa-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pa-window {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(1); }
}
@keyframes pa-lamp {
  0% { box-shadow: 0 0 40px 10px rgba(240,208,144,0.4); }
  50% { box-shadow: 0 0 80px 25px rgba(240,208,144,0.7); }
  100% { box-shadow: 0 0 50px 12px rgba(240,208,144,0.5); }
}
@keyframes pa-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-0.5deg); }
}
@keyframes pa-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.1); }
  100% { opacity: 0.35; transform: scaleX(1); }
}
@keyframes pa-scroll {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(15deg) translateY(0); }
}

.scn-pericles-reveal-incest {
  background: linear-gradient(180deg, #3a2a2a 0%, #5a3a3a 40%, #4a2a2a 100%),
              radial-gradient(ellipse at 30% 70%, #7a4a4a 0%, transparent 60%);
}
.scn-pericles-reveal-incest .room {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #4a2a2a 60%);
  animation: ri-room 10s ease-in-out infinite alternate;
}
.scn-pericles-reveal-incest .bed {
  position: absolute; bottom: 20%; left: 30%; width: 140px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.6);
  transform: perspective(300px) rotateX(-5deg);
}
.scn-pericles-reveal-incest .figure-left {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ri-figure-left 5s ease-in-out infinite;
}
.scn-pericles-reveal-incest .figure-right {
  position: absolute; bottom: 25%; right: 30%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ri-figure-right 5s ease-in-out infinite reverse;
}
.scn-pericles-reveal-incest .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 20px;
  background: radial-gradient(circle at 50% 0%, #f0c080 0%, #c08050 70%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(240,192,128,0.6);
  animation: ri-candle 3s ease-in-out infinite alternate;
}
.scn-pericles-reveal-incest .curtain {
  position: absolute; top: 0; left: 80%; width: 50px; height: 80%;
  background: linear-gradient(180deg, #6a3a3a 0%, #4a2020 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.5);
  animation: ri-curtain 12s ease-in-out infinite;
}
.scn-pericles-reveal-incest .throne-shadow {
  position: absolute; bottom: 20%; left: 45%; width: 70px; height: 90px;
  background: rgba(0,0,0,0.4);
  border-radius: 10%;
  filter: blur(10px);
  animation: ri-shadow 7s ease-in-out infinite alternate;
}
@keyframes ri-room {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ri-figure-left {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(3px); }
  100% { transform: rotate(-1deg) translateX(0); }
}
@keyframes ri-figure-right {
  0% { transform: rotate(2deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(-3px); }
  100% { transform: rotate(1deg) translateX(0); }
}
@keyframes ri-candle {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(-3px); opacity: 1; }
  100% { transform: translateY(0); opacity: 0.9; }
}
@keyframes ri-curtain {
  0% { width: 50px; }
  50% { width: 55px; }
  100% { width: 50px; }
}
@keyframes ri-shadow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.35; transform: scale(1); }
}

.scn-pericles-fears-war {
  background: linear-gradient(180deg, #6a5a4a 0%, #8a7a5a 40%, #5a4a3a 100%),
              radial-gradient(ellipse at 80% 20%, #b09870 0%, transparent 70%);
}
.scn-pericles-fears-war .chamber-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a4a 50%, #4a3a2a 100%);
  box-shadow: inset 0 4px 30px rgba(0,0,0,0.3);
}
.scn-pericles-fears-war .chamber-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%);
}
.scn-pericles-fears-war .table {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 100px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-pericles-fears-war .map {
  position: absolute; bottom: 32%; left: 48%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #b09060 0%, #8a7050 50%, #6a5030 100%);
  border-radius: 10%;
  transform: perspective(200px) rotateX(20deg);
  animation: fw-map 8s ease-in-out infinite;
}
.scn-pericles-fears-war .banner {
  position: absolute; top: 10%; left: 10%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #a06040 0%, #7a4020 100%);
  border-radius: 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: fw-banner 6s ease-in-out infinite alternate;
}
.scn-pericles-fears-war .figure-king {
  position: absolute; bottom: 32%; left: 40%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fw-king 5s ease-in-out infinite;
}
.scn-pericles-fears-war .figure-counselor {
  position: absolute; bottom: 32%; right: 38%; width: 18px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fw-counselor 6s ease-in-out infinite;
}
.scn-pericles-fears-war .torch {
  position: absolute; top: 15%; left: 80%; width: 12px; height: 30px;
  background: radial-gradient(circle at 50% 0%, #f0a040 0%, #c08020 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 40px 12px rgba(240,160,64,0.5);
  animation: fw-torch 3s ease-in-out infinite alternate;
}
.scn-pericles-fears-war .spear {
  position: absolute; bottom: 30%; left: 60%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  transform: rotate(15deg);
  animation: fw-spear 7s ease-in-out infinite;
}
@keyframes fw-map {
  0% { transform: perspective(200px) rotateX(20deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(22deg) translateY(-2px); }
  100% { transform: perspective(200px) rotateX(20deg) translateY(0); }
}
@keyframes fw-banner {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(3deg); }
  100% { transform: skewX(0deg); }
}
@keyframes fw-king {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fw-counselor {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0.5deg); }
}
@keyframes fw-torch {
  0% { box-shadow: 0 0 30px 8px rgba(240,160,64,0.4); }
  50% { box-shadow: 0 0 60px 20px rgba(240,160,64,0.8); }
  100% { box-shadow: 0 0 35px 10px rgba(240,160,64,0.5); }
}
@keyframes fw-spear {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(17deg) translateY(-3px); }
  100% { transform: rotate(15deg) translateY(0); }
}

.scn-helicanus-counsel-flight {
  background: linear-gradient(180deg, #b8a888 0%, #a09078 50%, #8a7a6a 100%),
              radial-gradient(ellipse at 50% 30%, #d8c8b0 0%, transparent 70%);
}
.scn-helicanus-counsel-flight .study-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #9a8a72 0%, #b8a888 60%, #8a7a6a 100%);
  animation: hc-wall 14s ease-in-out infinite alternate;
}
.scn-helicanus-counsel-flight .study-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #6a5a4a 0%, #8a7a6a 100%);
}
.scn-helicanus-counsel-flight .table-round {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%); width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 40%, #a08060 0%, #7a6030 100%);
  border-radius: 50%/50% 50% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-helicanus-counsel-flight .figure-standing {
  position: absolute; bottom: 32%; left: 36%; width: 20px; height: 68px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc-standing 8s ease-in-out infinite;
}
.scn-helicanus-counsel-flight .figure-seated {
  position: absolute; bottom: 32%; right: 36%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc-seated 9s ease-in-out infinite reverse;
}
.scn-helicanus-counsel-flight .lamp-glow {
  position: absolute; top: 15%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0e0c0 0%, #d0b880 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(240,224,192,0.4);
  animation: hc-lamp 6s ease-in-out infinite alternate;
}
.scn-helicanus-counsel-flight .window-arch {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 90px;
  background: radial-gradient(ellipse at 50% 30%, #d8c8b0 0%, #b8a888 80%);
  border-radius: 50% 50% 5% 5%;
  box-shadow: inset 0 0 30px rgba(200,180,160,0.3);
  animation: hc-window 12s ease-in-out infinite;
}
.scn-helicanus-counsel-flight .book {
  position: absolute; bottom: 36%; left: 46%; width: 14px; height: 10px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a0a 100%);
  border-radius: 10%;
  transform: rotate(-10deg);
  animation: hc-book 5s ease-in-out infinite;
}
.scn-helicanus-counsel-flight .quill {
  position: absolute; bottom: 38%; left: 48%; width: 2px; height: 18px;
  background: linear-gradient(180deg, #d0b090 0%, #a08060 100%);
  transform: rotate(20deg);
  animation: hc-quill 4s ease-in-out infinite alternate;
}
@keyframes hc-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes hc-standing {
  0% { transform: rotate(-1deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(2px); }
  100% { transform: rotate(-0.5deg) translateX(0); }
}
@keyframes hc-seated {
  0% { transform: rotate(1deg) translateX(0); }
  50% { transform: rotate(-1deg) translateX(-2px); }
  100% { transform: rotate(0.5deg) translateX(0); }
}
@keyframes hc-lamp {
  0% { box-shadow: 0 0 60px 20px rgba(240,224,192,0.3); }
  50% { box-shadow: 0 0 100px 40px rgba(240,224,192,0.6); }
  100% { box-shadow: 0 0 70px 25px rgba(240,224,192,0.35); }
}
@keyframes hc-window {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(1); }
}
@keyframes hc-book {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-1px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes hc-quill {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(22deg) translateY(-2px); }
  100% { transform: rotate(20deg) translateY(0); }
}

/* dionyza-wrens – tense, bright-interior */
.scn-dionyza-wrens {
  background:
    linear-gradient(180deg, #c8b89a 0%, #a08a6e 40%, #7a664a 100%),
    radial-gradient(ellipse at 30% 60%, #e0d4c0 0%, transparent 70%);
}
.scn-dionyza-wrens .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #c8b89a 0%, #b8a88a 50%, #a09070 100%);
}
.scn-dionyza-wrens .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-dionyza-wrens .window-frame {
  position: absolute; top: 15%; left: 50%; width: 120px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-dionyza-wrens .window-pane {
  position: absolute; top: 18%; left: calc(50% - 50px); width: 100px; height: 140px;
  background: linear-gradient(180deg, #d0e8f0 0%, #b0c8d8 100%);
  opacity: 0.5;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
}
.scn-dionyza-wrens .candle {
  position: absolute; bottom: 28%; right: 25%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a880 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 8px rgba(255,200,100,0.5);
  animation: dw-candle 6s ease-in-out infinite alternate;
}
.scn-dionyza-wrens .candle-glow {
  position: absolute; bottom: 32%; right: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(30px, 10px);
  animation: dw-candle-glow 6s ease-in-out infinite alternate;
}
.scn-dionyza-wrens .figure-dionyza {
  position: absolute; bottom: 30%; left: 28%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: dw-figure 10s ease-in-out infinite;
}
.scn-dionyza-wrens .wren {
  position: absolute; width: 14px; height: 10px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-dionyza-wrens .wren-1 {
  top: 20%; left: 20%;
  animation: dw-wren1 8s ease-in-out infinite;
}
.scn-dionyza-wrens .wren-2 {
  top: 28%; left: 60%;
  animation: dw-wren2 12s ease-in-out infinite;
}
@keyframes dw-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.05) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: 0.85; }
}
@keyframes dw-candle-glow {
  0% { transform: translate(30px, 10px) scale(0.9); opacity: 0.4; }
  50% { transform: translate(30px, 8px) scale(1.1); opacity: 0.6; }
  100% { transform: translate(30px, 12px) scale(0.95); opacity: 0.5; }
}
@keyframes dw-figure {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg) translateX(2px); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(1deg) translateX(-3px); }
  100% { transform: rotate(0deg); }
}
@keyframes dw-wren1 {
  0% { transform: translate(0,0) rotate(0deg); }
  20% { transform: translate(30px,-20px) rotate(10deg); }
  40% { transform: translate(60px,10px) rotate(-5deg); }
  60% { transform: translate(40px,-30px) rotate(15deg); }
  80% { transform: translate(80px,0) rotate(0deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes dw-wren2 {
  0% { transform: translate(0,0); }
  30% { transform: translate(-40px,-15px) rotate(-10deg); }
  60% { transform: translate(-20px,20px) rotate(8deg); }
  100% { transform: translate(0,0); }
}

/* dionyza-justifies – tense, bright-interior */
.scn-dionyza-justifies {
  background:
    linear-gradient(180deg, #b8a88a 0%, #9a8a6a 40%, #7a6a4a 100%),
    radial-gradient(ellipse at 50% 30%, #e0d4c0 0%, transparent 60%);
}
.scn-dionyza-justifies .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #b8a88a 0%, #a09070 100%);
}
.scn-dionyza-justifies .table {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(180deg, #7a664a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-dionyza-justifies .mirror {
  position: absolute; top: 18%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a09888 0%, #888070 100%);
  border-radius: 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-dionyza-justifies .mirror-reflection {
  position: absolute; top: 21%; left: calc(50% - 32px); width: 64px; height: 100px;
  background: linear-gradient(180deg, rgba(180,170,150,0.6) 0%, rgba(140,130,110,0.4) 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.2);
  animation: dj-reflection 12s ease-in-out infinite alternate;
}
.scn-dionyza-justifies .figure-dionyza-2 {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 10px rgba(0,0,0,0.3);
  animation: dj-figure 8s ease-in-out infinite;
}
.scn-dionyza-justifies .figure-marina-silhouette {
  position: absolute; bottom: 22%; left: 55%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  opacity: 0.7;
  animation: dj-marina 14s ease-in-out infinite;
}
.scn-dionyza-justifies .shadow-stripe {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 60%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: dj-stripe 8s ease-in-out infinite alternate;
}
@keyframes dj-reflection {
  0% { opacity: 0.3; transform: scaleY(0.95); }
  50% { opacity: 0.6; transform: scaleY(1); }
  100% { opacity: 0.4; transform: scaleY(0.97); }
}
@keyframes dj-figure {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(3deg) translateX(-2px); }
  60% { transform: rotate(-2deg) translateX(3px); }
  100% { transform: rotate(0deg); }
}
@keyframes dj-marina {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-5px) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  75% { transform: translateX(-8px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dj-stripe {
  0% { transform: skewX(-10deg) scaleY(1); opacity: 0.3; }
  50% { transform: skewX(-8deg) scaleY(1.2); opacity: 0.5; }
  100% { transform: skewX(-12deg) scaleY(0.9); opacity: 0.2; }
}

/* dionyza-pericles-mourn – calm, bright-interior */
.scn-dionyza-pericles-mourn {
  background:
    linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 40%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 60%, #b8a898 0%, transparent 60%);
}
.scn-dionyza-pericles-mourn .chapel-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #a09080 0%, #8a7a6a 100%);
}
.scn-dionyza-pericles-mourn .tomb {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}
.scn-dionyza-pericles-mourn .tomb-glow {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,200,150,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: dp-tombglow 10s ease-in-out infinite alternate;
}
.scn-dionyza-pericles-mourn .drape-top {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 60% 60% / 0 0 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: dp-drape 20s ease-in-out infinite alternate;
}
.scn-dionyza-pericles-mourn .figure-weeping {
  position: absolute; bottom: 22%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -2px 0 6px rgba(0,0,0,0.2);
  animation: dp-weep 15s ease-in-out infinite;
}
.scn-dionyza-pericles-mourn .candle-row {
  position: absolute; bottom: 28%; left: 30%; right: 30%; height: 6px;
  background: linear-gradient(90deg, transparent 0%, #c8a880 20%, #c8a880 80%, transparent 100%);
  border-radius: 2px;
  animation: dp-candles 8s ease-in-out infinite alternate;
}
.scn-dionyza-pericles-mourn .candle-flame {
  position: absolute; bottom: 34%; left: 50%; width: 8px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #c88040 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 16px 4px rgba(255,200,100,0.6);
  animation: dp-flame 5s ease-in-out infinite alternate;
}
@keyframes dp-tombglow {
  0% { opacity: 0.3; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 0.5; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.35; transform: translateX(-50%) scale(0.98); }
}
@keyframes dp-drape {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(2px); }
}
@keyframes dp-weep {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-3deg) translateY(-2px); }
  50% { transform: rotate(2deg) translateY(-5px); }
  75% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes dp-candles {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes dp-flame {
  0% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
  25% { transform: translateX(-50%) scaleY(1.1) rotate(5deg); }
  50% { transform: translateX(-50%) scaleY(0.95) rotate(-5deg); }
  75% { transform: translateX(-50%) scaleY(1.05) rotate(3deg); }
  100% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
}

/* dionyza-fly – calm, bright-interior */
.scn-dionyza-fly {
  background:
    linear-gradient(180deg, #c8b8a0 0%, #a89880 40%, #8a7a64 100%),
    radial-gradient(ellipse at 60% 40%, #d8c8b0 0%, transparent 60%);
}
.scn-dionyza-fly .winter-window {
  position: absolute; top: 10%; left: 50%; width: 140px; height: 180px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0c8d8 0%, #8098a8 100%);
  border-radius: 8px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  opacity: 0.5;
}
.scn-dionyza-fly .sill {
  position: absolute; bottom: 18%; left: 50%; width: 160px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-dionyza-fly .interior-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8b8a0 0%, #b8a890 100%);
}
.scn-dionyza-fly .dead-fly {
  position: absolute; bottom: 22%; left: 35%; width: 6px; height: 8px;
  background: #2a1a0a;
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-30deg);
  opacity: 0.4;
}
.scn-dionyza-fly .fly {
  position: absolute; width: 8px; height: 6px;
  background: #2a1a0a;
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.2);
}
.scn-dionyza-fly .fly-1 {
  top: 30%; left: 20%;
  animation: df-fly1 18s ease-in-out infinite, df-flybuzz 0.5s ease-in-out infinite;
}
.scn-dionyza-fly .fly-2 {
  top: 45%; left: 60%;
  animation: df-fly2 22s ease-in-out infinite, df-flybuzz 0.6s ease-in-out infinite;
  animation-delay: -9s;
}
.scn-dionyza-fly .figure-dionyza-3 {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: df-figure 20s ease-in-out infinite;
}
@keyframes df-fly1 {
  0% { transform: translate(0,0) rotate(0deg); }
  10% { transform: translate(20px,-30px) rotate(30deg); }
  30% { transform: translate(60px,10px) rotate(-20deg); }
  50% { transform: translate(80px,-40px) rotate(45deg); }
  70% { transform: translate(40px,20px) rotate(-10deg); }
  90% { transform: translate(100px,-10px) rotate(15deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes df-fly2 {
  0% { transform: translate(0,0) rotate(0deg); }
  20% { transform: translate(-40px,20px) rotate(-25deg); }
  40% { transform: translate(-80px,-10px) rotate(15deg); }
  60% { transform: translate(-30px,40px) rotate(-35deg); }
  80% { transform: translate(-90px,0) rotate(10deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes df-flybuzz {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.8) rotate(5deg); }
  100% { transform: scaleY(1); }
}
@keyframes df-figure {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-2deg) translateY(-2px); }
  50% { transform: rotate(1deg) translateY(1px); }
  75% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}

.scn-gower-visor {
  background: linear-gradient(180deg, #1d1d33 0%, #2a2a45 30%, #3a3a5c 70%, #2d2d48 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a45 0%, transparent 60%);
}
.scn-gower-visor .bg-overcast { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,.06) 0%, transparent 40%, rgba(0,0,10,.2) 100%); }
.scn-gower-visor .sky-mist   { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a4a5e 0%, #5a6a7e 50%, transparent 100%); opacity:.25; animation: gv-mist 15s ease-in-out infinite alternate; }
.scn-gower-visor .visor-figure { position:absolute; bottom:10%; left:50%; width:80px; height:120px; transform:translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #14141e 70%, #0a0a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: gv-sway 7s ease-in-out infinite;
}
.scn-gower-visor .visor-mask { position:absolute; bottom:42%; left:50%; width:44px; height:26px; transform:translateX(-50%);
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px 2px rgba(100,100,140,.3);
  animation: gv-glint 4s ease-in-out infinite alternate;
}
.scn-gower-visor .visor-hand { position:absolute; bottom:28%; left:38%; width:10px; height:16px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-15deg);
  animation: gv-hand 6s ease-in-out infinite;
}
.scn-gower-visor .visor-sash { position:absolute; bottom:20%; left:50%; width:6px; height:30px; transform:translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 3px;
  animation: gv-sash 5s ease-in-out infinite alternate;
}
.scn-gower-visor .visor-drape { position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, transparent 0%, #1a1a2a 100%);
  animation: gv-drape 9s ease-in-out infinite;
}
@keyframes gv-mist   { 0% { opacity:0.2; } 50% { opacity:0.35; } 100% { opacity:0.2; } }
@keyframes gv-sway   { 0% { transform:translateX(-50%) rotate(0deg); } 25% { transform:translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform:translateX(-50%) rotate(0deg); } 75% { transform:translateX(-50%) translateY(1px) rotate(-1deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes gv-glint  { 0% { box-shadow: 0 0 6px 1px rgba(100,100,140,.2); } 50% { box-shadow: 0 0 14px 4px rgba(140,140,180,.5); } 100% { box-shadow: 0 0 6px 1px rgba(100,100,140,.2); } }
@keyframes gv-hand   { 0% { transform:rotate(-15deg) translateX(0); } 50% { transform:rotate(-10deg) translateX(2px); } 100% { transform:rotate(-15deg) translateX(0); } }
@keyframes gv-sash   { 0% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(1.05); } 100% { transform:translateX(-50%) scaleY(1); } }
@keyframes gv-drape  { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.7; } }

.scn-street-gentlemen-talks {
  background: linear-gradient(180deg, #6a7a7a 0%, #7a8a8a 30%, #8a9a9a 70%, #7a8a8a 100%),
              radial-gradient(ellipse at 50% 0%, #aabbcc 0%, transparent 70%);
}
.scn-street-gentlemen-talks .street-bg { position:absolute; inset:0; background: linear-gradient(180deg, #d0d8d8 0%, #b0b8b8 100%); opacity:0.3; }
.scn-street-gentlemen-talks .building-left { position:absolute; bottom:20%; left:5%; width:30%; height:60%;
  background: linear-gradient(180deg, #8a8a7a 0%, #7a7a6a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: sg-breathe 10s ease-in-out infinite alternate;
}
.scn-street-gentlemen-talks .building-right { position:absolute; bottom:20%; right:5%; width:25%; height:55%;
  background: linear-gradient(180deg, #8a8a7a 0%, #7a7a6a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: sg-breathe 12s ease-in-out infinite alternate-reverse;
}
.scn-street-gentlemen-talks .gentleman-a { position:absolute; bottom:14%; left:35%; width:22px; height:50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: sg-gent-a 4s ease-in-out infinite;
}
.scn-street-gentlemen-talks .gentleman-b { position:absolute; bottom:16%; left:50%; width:20px; height:48px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a2a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: sg-gent-b 5s ease-in-out infinite;
}
.scn-street-gentlemen-talks .street-lamp { position:absolute; bottom:40%; left:45%; width:8px; height:40px;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 4px;
}
.scn-street-gentlemen-talks .doorway { position:absolute; bottom:12%; left:20%; width:30px; height:40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: sg-door 8s ease-in-out infinite alternate;
}
.scn-street-gentlemen-talks .cobbles { position:absolute; bottom:0; left:0; right:0; height:15%;
  background: repeating-linear-gradient(90deg, #7a8a8a 0px, #6a7a7a 6px, #8a9a9a 12px);
  opacity:0.3;
  animation: sg-cobbles 20s linear infinite;
}
@keyframes sg-breathe  { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.01); } 100% { transform:scaleY(1); } }
@keyframes sg-gent-a   { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(2px) rotate(2deg); } 70% { transform:translateX(-1px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes sg-gent-b   { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-3px) rotate(-2deg); } 50% { transform:translateX(1px) rotate(1deg); } 75% { transform:translateX(-2px) rotate(0deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes sg-door     { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes sg-cobbles  { 0% { background-position:0 0; } 100% { background-position:20px 0; } }

.scn-gentleman-rutting {
  background: linear-gradient(180deg, #5a5a5a 0%, #6a6a5a 30%, #7a7a6a 70%, #6a6a5a 100%),
              radial-gradient(ellipse at 50% 0%, #8a8a7a 0%, transparent 60%);
}
.scn-gentleman-rutting .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #b0b0a0 0%, #9a9a8a 100%); opacity:0.15; }
.scn-gentleman-rutting .floor { position:absolute; bottom:0; left:0; right:0; height:25%;
  background: repeating-linear-gradient(90deg, #6a5a4a 0px, #5a4a3a 8px, #7a6a5a 16px);
  animation: gr-floor 12s linear infinite;
}
.scn-gentleman-rutting .gentleman-body { position:absolute; bottom:22%; left:50%; width:40px; height:60px; transform:translateX(-50%);
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: gr-body 3s ease-in-out infinite;
}
.scn-gentleman-rutting .gentleman-head { position:absolute; bottom:60%; left:50%; width:22px; height:22px; transform:translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a2a 100%);
  border-radius: 50%;
  animation: gr-head 3.5s ease-in-out infinite alternate;
}
.scn-gentleman-rutting .gentleman-arm-l { position:absolute; bottom:35%; left:38%; width:8px; height:25px;
  background: #3a3a2a;
  border-radius: 4px;
  transform-origin: bottom center;
  animation: gr-arm-l 1.8s ease-in-out infinite;
}
.scn-gentleman-rutting .gentleman-arm-r { position:absolute; bottom:35%; right:38%; width:8px; height:25px;
  background: #3a3a2a;
  border-radius: 4px;
  transform-origin: bottom center;
  animation: gr-arm-r 2.2s ease-in-out infinite;
}
.scn-gentleman-rutting .hat { position:absolute; bottom:68%; left:50%; width:30px; height:12px; transform:translateX(-50%);
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 0 0;
  animation: gr-hat 4s ease-in-out infinite;
}
.scn-gentleman-rutting .shadow-humor { position:absolute; bottom:18%; left:50%; width:50px; height:8px; transform:translateX(-50%);
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  animation: gr-shadow 3s ease-in-out infinite;
}
@keyframes gr-floor  { 0% { background-position:0 0; } 100% { background-position:16px 0; } }
@keyframes gr-body   { 0% { transform:translateX(-50%) rotate(0deg); } 25% { transform:translateX(-50%) rotate(3deg); } 50% { transform:translateX(-50%) rotate(-2deg); } 75% { transform:translateX(-50%) rotate(4deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes gr-head   { 0% { transform:translateX(-50%) rotate(0deg) scaleY(1); } 50% { transform:translateX(-50%) rotate(5deg) scaleY(1.1); } 100% { transform:translateX(-50%) rotate(0deg) scaleY(1); } }
@keyframes gr-arm-l  { 0% { transform:rotate(20deg); } 50% { transform:rotate(-20deg); } 100% { transform:rotate(20deg); } }
@keyframes gr-arm-r  { 0% { transform:rotate(-15deg); } 50% { transform:rotate(25deg); } 100% { transform:rotate(-15deg); } }
@keyframes gr-hat    { 0% { transform:translateX(-50%) rotate(0deg) translateY(0); } 50% { transform:translateX(-50%) rotate(10deg) translateY(-2px); } 100% { transform:translateX(-50%) rotate(0deg) translateY(0); } }
@keyframes gr-shadow { 0% { transform:translateX(-50%) scaleX(1); } 50% { transform:translateX(-50%) scaleX(1.1); } 100% { transform:translateX(-50%) scaleX(1); } }

.scn-bawd-freeze {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 30%, #3a2a2a 60%, #2a1a1a 100%),
              radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-bawd-freeze .interior-dark { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 50%, rgba(0,0,0,0.6) 100%); }
.scn-bawd-freeze .candle-glow { position:absolute; bottom:45%; left:60%; width:30px; height:30px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 40%, transparent 70%);
  border-radius: 50%;
  animation: bf-flicker 2s ease-in-out infinite alternate;
}
.scn-bawd-freeze .bawd-figure { position:absolute; bottom:15%; left:35%; width:50px; height:90px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: bd-bawd 4s ease-in-out infinite;
}
.scn-bawd-freeze .bawd-hair { position:absolute; bottom:65%; left:35%; width:60px; height:30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-10deg);
  animation: bf-hair 3s ease-in-out infinite alternate;
}
.scn-bawd-freeze .priapus-statue { position:absolute; bottom:10%; right:25%; width:20px; height:50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: bf-statue 6s ease-in-out infinite;
}
.scn-bawd-freeze .bawd-arm { position:absolute; bottom:35%; left:25%; width:8px; height:30px;
  background: #2a1a1a;
  border-radius: 4px;
  transform-origin: bottom center;
  animation: bf-arm 2.5s ease-in-out infinite alternate;
}
.scn-bawd-freeze .table { position:absolute; bottom:0; left:30%; width:40%; height:8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  animation: bf-table 7s ease-in-out infinite alternate;
}
.scn-bawd-freeze .chair { position:absolute; bottom:5%; right:15%; width:20px; height:15%;
  background: #3a2a1a;
  border-radius: 4px;
  animation: bf-chair 8s ease-in-out infinite alternate-reverse;
}
@keyframes bf-flicker { 0% { opacity:0.5; transform:scale(0.8); } 50% { opacity:0.9; transform:scale(1.1); } 100% { opacity:0.6; transform:scale(0.85); } }
@keyframes bd-bawd   { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-2px) rotate(1deg); } 50% { transform:translateX(2px) rotate(-1deg); } 75% { transform:translateX(-1px) rotate(2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes bf-hair   { 0% { transform:rotate(-10deg) scaleY(1); } 50% { transform:rotate(-15deg) scaleY(1.1); } 100% { transform:rotate(-10deg) scaleY(1); } }
@keyframes bf-statue { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes bf-arm    { 0% { transform:rotate(10deg); } 100% { transform:rotate(-20deg); } }
@keyframes bf-table  { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes bf-chair  { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }

/* pentapolis-identification - calm sunlit shoreline */
.scn-pentapolis-identification {
  background: linear-gradient(180deg, #b8d4e3 0%, #e3f0f7 40%, #f5e6c4 70%, #d4a76a 100%),
              radial-gradient(ellipse at 50% 30%, #fff9e6 0%, transparent 60%);
}
.scn-pentapolis-identification .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7bb3d0 0%, #b8d4e3 100%);
  animation: pei-sky 30s ease-in-out infinite alternate;
}
.scn-pentapolis-identification .sea {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3f7a9a 0%, #2b5c7a 100%);
  border-radius: 20% 20% 0 0;
  animation: pei-sea 25s ease-in-out infinite alternate;
}
.scn-pentapolis-identification .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #e3c9a0 0%, #c9a87a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-pentapolis-identification .net {
  position: absolute; bottom: 18%; left: 20%; width: 150px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, transparent 30%, rgba(0,0,0,0.15) 30%, rgba(0,0,0,0.15) 32%, transparent 32%);
  border: 1px solid rgba(0,0,0,0.1);
  animation: pei-net 18s ease-in-out infinite;
}
.scn-pentapolis-identification .fisherman-a {
  position: absolute; bottom: 14%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #6b5240 0%, #3d2b1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pei-fish 4s ease-in-out infinite;
}
.scn-pentapolis-identification .fisherman-b {
  position: absolute; bottom: 16%; left: 50%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #5a4030 0%, #2e1e0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pei-fish 4s ease-in-out infinite reverse;
  animation-delay: -2s;
}
.scn-pentapolis-identification .sun-glow {
  position: absolute; top: 8%; right: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle at 50% 50%, #fff9e6 0%, #f5d88a 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(245,216,138,0.3);
  animation: pei-glow 8s ease-in-out infinite alternate;
}
@keyframes pei-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes pei-sea { 0% { transform: translateY(0) skewX(0deg) } 50% { transform: translateY(-2px) skewX(3deg) } 100% { transform: translateY(0) skewX(0deg) } }
@keyframes pei-net { 0% { transform: rotate(-2deg) translateX(0) } 25% { transform: rotate(2deg) translateX(5px) } 50% { transform: rotate(-1deg) translateX(10px) } 75% { transform: rotate(1deg) translateX(5px) } 100% { transform: rotate(-2deg) translateX(0) } }
@keyframes pei-fish { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(-2deg) } 50% { transform: translateX(16px) rotate(1deg) } 75% { transform: translateX(8px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pei-glow { 0% { opacity: 0.7; transform: scale(0.95) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.8; transform: scale(0.98) } }

/* pericles-wishes-joust - warm sunlit tournament */
.scn-pericles-wishes-joust {
  background: linear-gradient(180deg, #87ceeb 0%, #cce5ff 30%, #e8d5b0 70%, #c9a96e 100%),
              radial-gradient(ellipse at 50% 10%, #fff5cc 0%, transparent 50%);
}
.scn-pericles-wishes-joust .sky-joust {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5ba3d9 0%, #a3cce8 100%);
}
.scn-pericles-wishes-joust .ground-joust {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #cba37a 0%, #a67c4e 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-pericles-wishes-joust .tent-l {
  position: absolute; bottom: 28%; left: 15%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #d4a373 0%, #b5824a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: pwj-tent 12s ease-in-out infinite alternate;
}
.scn-pericles-wishes-joust .tent-r {
  position: absolute; bottom: 28%; right: 15%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #d4a373 0%, #b5824a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: pwj-tent 12s ease-in-out infinite alternate-reverse;
}
.scn-pericles-wishes-joust .pennant-l {
  position: absolute; bottom: 60%; left: 18%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #e3b374 0%, #c4914a 100%);
  transform-origin: bottom center;
  animation: pwj-pennant 4s ease-in-out infinite;
}
.scn-pericles-wishes-joust .pennant-r {
  position: absolute; bottom: 60%; right: 18%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #e3b374 0%, #c4914a 100%);
  transform-origin: bottom center;
  animation: pwj-pennant 4s ease-in-out infinite reverse;
}
.scn-pericles-wishes-joust .knight {
  position: absolute; bottom: 10%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #6b7b8d 0%, #444f5a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: pwj-knight 6s ease-in-out infinite;
}
.scn-pericles-wishes-joust .lance {
  position: absolute; bottom: 20%; left: 28%; width: 80px; height: 4px;
  background: linear-gradient(180deg, #8b7355 0%, #5c4a32 100%);
  transform-origin: left center;
  animation: pwj-lance 3s ease-in-out infinite;
}
.scn-pericles-wishes-joust .crowd {
  position: absolute; bottom: 2%; left: 10%; right: 10%; height: 30%;
  background: repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(0,0,0,0.05) 8px, rgba(0,0,0,0.05) 10px);
  border-radius: 50% 50% 0 0;
}
@keyframes pwj-tent { 0% { transform: skewY(2deg) } 50% { transform: skewY(-2deg) } 100% { transform: skewY(1deg) } }
@keyframes pwj-pennant { 0% { transform: rotate(-5deg) } 25% { transform: rotate(8deg) } 50% { transform: rotate(-3deg) } 75% { transform: rotate(6deg) } 100% { transform: rotate(-5deg) } }
@keyframes pwj-knight { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(20px) rotate(2deg) } 60% { transform: translateX(10px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pwj-lance { 0% { transform: rotate(20deg) scaleX(1) } 25% { transform: rotate(15deg) scaleX(1.1) } 50% { transform: rotate(25deg) scaleX(1) } 75% { transform: rotate(18deg) scaleX(0.95) } 100% { transform: rotate(20deg) scaleX(1) } }

/* item-rusty-armour - warm sunlit close-up */
.scn-item-rusty-armour {
  background: linear-gradient(180deg, #4a3b32 0%, #6a5040 30%, #c9a87a 70%, #e8d5b0 100%),
              radial-gradient(ellipse at 50% 40%, #ffe6b3 0%, transparent 60%);
}
.scn-item-rusty-armour .bg-armour {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #8a7050 0%, transparent 70%);
}
.scn-item-rusty-armour .chest-armour {
  position: absolute; bottom: 30%; left: 35%; width: 120px; height: 90px;
  background: linear-gradient(180deg, #b89b7a 0%, #7a6345 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5), inset 0 2px 10px rgba(255,255,200,0.3);
  animation: ira-armour 10s ease-in-out infinite alternate;
}
.scn-item-rusty-armour .helmet-armour {
  position: absolute; bottom: 55%; left: 40%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #c9a87a 0%, #8a7050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: ira-helmet 12s ease-in-out infinite;
}
.scn-item-rusty-armour .gleam {
  position: absolute; bottom: 60%; left: 38%; width: 20px; height: 20px;
  background: radial-gradient(circle, #fff4cc 0%, #e6c88a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,244,204,0.6);
  animation: ira-gleam 3s ease-in-out infinite alternate;
}
.scn-item-rusty-armour .hands {
  position: absolute; bottom: 22%; left: 32%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #d4a373 0%, #8a6b4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: ira-hands 5s ease-in-out infinite;
}
.scn-item-rusty-armour .ground-armour {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3b32 100%);
  border-radius: 30% 70% 0 0;
}
.scn-item-rusty-armour .sun-ray {
  position: absolute; top: 5%; right: 20%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,230,179,0.4) 0%, transparent 100%);
  clip-path: polygon(40% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: ira-ray 7s ease-in-out infinite alternate;
}
@keyframes ira-armour { 0% { transform: rotateY(0deg) translateY(0) } 50% { transform: rotateY(5deg) translateY(-2px) } 100% { transform: rotateY(-3deg) translateY(1px) } }
@keyframes ira-helmet { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-3px) rotate(0deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ira-gleam { 0% { opacity: 0.6; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.7; transform: scale(0.9) } }
@keyframes ira-hands { 0% { transform: rotate(-10deg) translateX(0) } 30% { transform: rotate(-8deg) translateX(5px) } 60% { transform: rotate(-12deg) translateX(-3px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes ira-ray { 0% { opacity: 0.3; transform: skewX(-10deg) } 50% { opacity: 0.7; transform: skewX(5deg) } 100% { opacity: 0.4; transform: skewX(-5deg) } }

/* pericles-claims-armour - warm sunlit court interior */
.scn-pericles-claims-armour {
  background: linear-gradient(180deg, #5c4a3a 0%, #8a7050 30%, #c9a87a 60%, #e8d5b0 100%),
              radial-gradient(ellipse at 50% 20%, #ffefcf 0%, transparent 50%);
}
.scn-pericles-claims-armour .bg-claims {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, #a08060 0%, transparent 70%);
}
.scn-pericles-claims-armour .throne {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #b8966a 0%, #7a5c3a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 30% 30%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  animation: pca-throne 15s ease-in-out infinite alternate;
}
.scn-pericles-claims-armour .king {
  position: absolute; bottom: 25%; left: 38%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6b4a2a 0%, #3a2818 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pca-king 8s ease-in-out infinite;
}
.scn-pericles-claims-armour .kneeling-pericles {
  position: absolute; bottom: 5%; left: 48%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #4a3b32 0%, #2a1e14 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: scale(0.9);
  animation: pca-kneel 6s ease-in-out infinite;
}
.scn-pericles-claims-armour .armour-held {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #c9a87a 0%, #8a7050 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  transform: rotate(10deg);
  animation: pca-armour 10s ease-in-out infinite alternate;
}
.scn-pericles-claims-armour .crown-glow {
  position: absolute; top: 15%; left: 40%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #ffd080 0%, transparent 80%);
  box-shadow: 0 0 30px 15px rgba(255,208,128,0.5);
  animation: pca-crown 4s ease-in-out infinite alternate;
}
.scn-pericles-claims-armour .court-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #8a6b4a 0%, #5c4a3a 100%);
  border-radius: 40% 60% 0 0;
}
.scn-pericles-claims-armour .pillar-l {
  position: absolute; bottom: 10%; left: 10%; width: 20px; height: 200px;
  background: linear-gradient(180deg, #b08a6a 0%, #7a5c3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 15px rgba(0,0,0,0.2);
}
.scn-pericles-claims-armour .pillar-r {
  position: absolute; bottom: 10%; right: 10%; width: 20px; height: 200px;
  background: linear-gradient(180deg, #b08a6a 0%, #7a5c3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 15px rgba(0,0,0,0.2);
  animation: pca-pillar 20s ease-in-out infinite alternate;
}
@keyframes pca-throne { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(0.98) } }
@keyframes pca-king { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pca-kneel { 0% { transform: scale(0.9) skewX(0deg) } 50% { transform: scale(0.92) skewX(2deg) } 100% { transform: scale(0.9) skewX(0deg) } }
@keyframes pca-armour { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(12deg) translateY(1px) } }
@keyframes pca-crown { 0% { opacity: 0.5; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.6; transform: scale(0.95) } }
@keyframes pca-pillar { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }

.scn-lysistratus-moved {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2515 40%, #1a0e05 100%), radial-gradient(ellipse at 60% 50%, #5a3a1a 0%, transparent 70%);
}
.scn-lysistratus-moved .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a2a15 0%, #3a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: ly1-wall 10s ease-in-out infinite alternate;
}
.scn-lysistratus-moved .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a0e05 0%, #2a1a0e 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
  animation: ly1-floor 12s ease-in-out infinite alternate;
}
.scn-lysistratus-moved .window {
  position: absolute; top: 15%; left: 20%; width: 22%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  border: 4px solid #2a1a0e;
  animation: ly1-window 15s ease-in-out infinite alternate;
}
.scn-lysistratus-moved .table {
  position: absolute; bottom: 25%; left: 40%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2515 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: ly1-table 8s ease-in-out infinite;
}
.scn-lysistratus-moved .gold {
  position: absolute; bottom: 27%; left: 45%; width: 8%; height: 6%;
  background: radial-gradient(circle, #e0b050 0%, #b08030 60%, #804010 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(224, 176, 80, 0.6), 0 0 60px 20px rgba(128, 64, 16, 0.3);
  animation: ly1-gold 3s ease-in-out infinite alternate;
}
.scn-lysistratus-moved .figure {
  position: absolute; bottom: 18%; left: 35%; width: 12%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #1a0e05 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ly1-figure 6s ease-in-out infinite;
}
.scn-lysistratus-moved .candle {
  position: absolute; bottom: 32%; left: 50%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 60%, #402010 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255, 208, 128, 0.5), 0 0 40px 15px rgba(192, 128, 64, 0.3);
  animation: ly1-candle 4s ease-in-out infinite alternate;
}

@keyframes ly1-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ly1-floor { 0% { transform:scaleY(1); } 50% { transform:scaleY(0.98); } 100% { transform:scaleY(1.02); } }
@keyframes ly1-window { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes ly1-table { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(0.5deg); } 100% { transform:translateY(0) rotate(-0.5deg); } }
@keyframes ly1-gold { 0% { box-shadow:0 0 20px 5px rgba(224,176,80,0.4); transform:scale(1); } 50% { box-shadow:0 0 40px 12px rgba(224,176,80,0.7); transform:scale(1.1); } 100% { box-shadow:0 0 25px 6px rgba(224,176,80,0.5); transform:scale(0.95); } }
@keyframes ly1-figure { 0% { transform:translateX(0) rotate(-1deg); } 25% { transform:translateX(2%) rotate(1deg); } 50% { transform:translateX(4%) rotate(-1deg); } 75% { transform:translateX(2%) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ly1-candle { 0% { filter:brightness(0.9); } 50% { filter:brightness(1.2); } 100% { filter:brightness(1); } }

.scn-lysistratus-intent {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2515 45%, #1a0e05 100%), radial-gradient(ellipse at 30% 50%, #5a3a1a 0%, transparent 70%);
}
.scn-lysistratus-intent .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a2a15 0%, #3a1a0a 100%);
  border-radius: 0 0 15% 15% / 0 0 8% 8%;
  animation: ly2-wall 12s ease-in-out infinite alternate;
}
.scn-lysistratus-intent .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a0e05 0%, #2a1a0e 100%);
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.6);
  animation: ly2-floor 14s ease-in-out infinite alternate;
}
.scn-lysistratus-intent .door {
  position: absolute; bottom: 0; left: 10%; width: 18%; height: 70%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 4px 4px 0 0;
  border: 3px solid #2a1a0e;
  box-shadow: 0 0 15px rgba(0,0,0,0.5);
  transform-origin: left center;
  animation: ly2-door 8s ease-in-out infinite alternate;
}
.scn-lysistratus-intent .window {
  position: absolute; top: 20%; right: 15%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px;
  border: 3px solid #1a0e05;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.7);
  animation: ly2-window 18s ease-in-out infinite alternate;
}
.scn-lysistratus-intent .gold-scatter {
  position: absolute; bottom: 20%; left: 40%; width: 10%; height: 5%;
  background: radial-gradient(circle, #e0b050 0%, #b08030 60%, #804010 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(224, 176, 80, 0.5);
  animation: ly2-gold 4s ease-in-out infinite alternate;
}
.scn-lysistratus-intent .figure {
  position: absolute; bottom: 15%; left: 30%; width: 12%; height: 28%;
  background: radial-gradient(ellipse at 50% 100%, #1a0e05 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ly2-figure 5s ease-in-out infinite;
}
.scn-lysistratus-intent .shadow {
  position: absolute; bottom: 10%; left: 25%; width: 20%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: ly2-shadow 6s ease-in-out infinite alternate;
}

@keyframes ly2-wall { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ly2-floor { 0% { transform:scaleY(1); } 50% { transform:scaleY(0.97); } 100% { transform:scaleY(1.03); } }
@keyframes ly2-door { 0% { transform:rotateY(0deg); } 50% { transform:rotateY(5deg); } 100% { transform:rotateY(0deg); } }
@keyframes ly2-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ly2-gold { 0% { box-shadow:0 0 15px 4px rgba(224,176,80,0.4); transform:scale(1); } 50% { box-shadow:0 0 30px 10px rgba(224,176,80,0.7); transform:scale(1.15); } 100% { box-shadow:0 0 20px 6px rgba(224,176,80,0.5); transform:scale(0.9); } }
@keyframes ly2-figure { 0% { transform:translateX(0) rotate(-2deg); } 30% { transform:translateX(3%) rotate(2deg); } 60% { transform:translateX(6%) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ly2-shadow { 0% { width:20%; height:8%; opacity:0.6; } 50% { width:25%; height:10%; opacity:0.8; } 100% { width:18%; height:7%; opacity:0.5; } }

.scn-boult-piece {
  background: linear-gradient(180deg, #2a2015 0%, #3a2a1a 40%, #1a120a 100%), radial-gradient(ellipse at 50% 40%, #4a3520 0%, transparent 70%);
}
.scn-boult-piece .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 0 0 25% 25% / 0 0 12% 12%;
  animation: bp-wall 15s ease-in-out infinite alternate;
}
.scn-boult-piece .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a120a 0%, #2a1a0e 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.5);
  animation: bp-floor 18s ease-in-out infinite alternate;
}
.scn-boult-piece .door {
  position: absolute; bottom: 0; right: 8%; width: 16%; height: 65%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 4px 4px 0 0;
  border: 2px solid #1a120a;
  box-shadow: 0 0 15px rgba(0,0,0,0.4);
  animation: bp-door 10s ease-in-out infinite alternate;
}
.scn-boult-piece .window {
  position: absolute; top: 18%; left: 12%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 6px;
  border: 3px solid #1a120a;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.6);
  animation: bp-window 20s ease-in-out infinite alternate;
}
.scn-boult-piece .chair {
  position: absolute; bottom: 22%; left: 30%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2515 100%);
  border-radius: 4px 4px 20% 20% / 4px 4px 15% 15%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: bp-chair 7s ease-in-out infinite alternate;
}
.scn-boult-piece .virgin {
  position: absolute; bottom: 15%; left: 50%; width: 10%; height: 22%;
  background: radial-gradient(ellipse at 50% 100%, #1a120a 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bp-virgin 4s ease-in-out infinite;
}
.scn-boult-piece .candle {
  position: absolute; bottom: 28%; left: 55%; width: 2%; height: 7%;
  background: linear-gradient(180deg, #ffd090 0%, #c08040 60%, #402010 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 15px 6px rgba(255, 208, 144, 0.4), 0 0 30px 12px rgba(192, 128, 64, 0.2);
  animation: bp-candle 5s ease-in-out infinite alternate;
}

@keyframes bp-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes bp-floor { 0% { transform:scaleY(1); } 50% { transform:scaleY(0.98); } 100% { transform:scaleY(1.02); } }
@keyframes bp-door { 0% { transform:rotateY(0deg); } 50% { transform:rotateY(-3deg); } 100% { transform:rotateY(0deg); } }
@keyframes bp-window { 0% { opacity:0.75; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes bp-chair { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(1deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes bp-virgin { 0% { transform:translateX(0) rotate(-1deg); } 30% { transform:translateX(2%) rotate(1deg); } 60% { transform:translateX(4%) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes bp-candle { 0% { filter:brightness(0.8); } 50% { filter:brightness(1.2); } 100% { filter:brightness(1); } }

.scn-marina-whither {
  background: linear-gradient(180deg, #1a1215 0%, #2a1a1a 40%, #0a0a0a 100%), radial-gradient(ellipse at 40% 50%, #3a1a1a 0%, transparent 70%);
}
.scn-marina-whither .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  animation: mw-wall 8s ease-in-out infinite alternate;
}
.scn-marina-whither .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a1215 100%);
  box-shadow: inset 0 18px 30px rgba(0,0,0,0.7);
  animation: mw-floor 10s ease-in-out infinite alternate;
}
.scn-marina-whither .door {
  position: absolute; bottom: 0; left: 5%; width: 20%; height: 75%;
  background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%);
  border-radius: 4px 4px 0 0;
  border: 3px solid #0a0505;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  transform-origin: left center;
  animation: mw-door 6s ease-in-out infinite alternate;
}
.scn-marina-whither .rope {
  position: absolute; top: 5%; left: 50%; width: 1%; height: 50%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 0 5px rgba(0,0,0,0.3);
  transform-origin: top center;
  animation: mw-rope 2s ease-in-out infinite;
}
.scn-marina-whither .figure-left {
  position: absolute; bottom: 15%; left: 25%; width: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-figL 3s ease-in-out infinite;
}
.scn-marina-whither .figure-right {
  position: absolute; bottom: 15%; right: 25%; width: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #1a1215 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-figR 3.5s ease-in-out infinite alternate;
}
.scn-marina-whither .lantern {
  position: absolute; top: 20%; left: 48%; width: 4%; height: 6%;
  background: radial-gradient(circle, #e04030 0%, #802010 60%, #200a05 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(224, 64, 48, 0.5), 0 0 60px 20px rgba(128, 32, 16, 0.3);
  animation: mw-lantern 1s ease-in-out infinite alternate;
}

@keyframes mw-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes mw-floor { 0% { transform:scaleY(1); } 50% { transform:scaleY(0.96); } 100% { transform:scaleY(1.04); } }
@keyframes mw-door { 0% { transform:rotateY(0deg); } 50% { transform:rotateY(10deg); } 100% { transform:rotateY(0deg); } }
@keyframes mw-rope { 0% { transform:rotate(0deg) scaleY(1); } 25% { transform:rotate(2deg) scaleY(1.02); } 50% { transform:rotate(-2deg) scaleY(0.98); } 75% { transform:rotate(1deg) scaleY(1.01); } 100% { transform:rotate(0deg) scaleY(1); } }
@keyframes mw-figL { 0% { transform:translateX(0) rotate(-3deg); } 25% { transform:translateX(2%) rotate(3deg); } 50% { transform:translateX(4%) rotate(-3deg); } 75% { transform:translateX(2%) rotate(3deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes mw-figR { 0% { transform:translateX(0) rotate(2deg); } 50% { transform:translateX(-2%) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes mw-lantern { 0% { transform:rotate(-5deg) scale(1); } 50% { transform:rotate(5deg) scale(1.1); } 100% { transform:rotate(-5deg) scale(1); } }

/* Scene: marina-stranger */
.scn-marina-stranger {
  background: linear-gradient(180deg, #87ceeb 0%, #5ba3d9 50%, #3a7fb5 100%),
              radial-gradient(ellipse at 70% 100%, #f5deb3 0%, transparent 60%);
}
.scn-marina-stranger .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 100%);
  animation: ms-sky 12s ease-in-out infinite alternate;
}
.scn-marina-stranger .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1c5d8a 0%, #0a3b5c 100%);
  animation: ms-sea 8s ease-in-out infinite alternate;
  border-top: 2px solid rgba(255,255,255,0.2);
}
.scn-marina-stranger .ship {
  position: absolute; bottom: 35%; left: 35%; width: 120px; height: 40px;
  background: linear-gradient(90deg, #8b4513 0%, #a0522d 50%, #6b3410 100%);
  border-radius: 40% 60% 30% 30% / 100% 100% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ms-ship 6s ease-in-out infinite;
}
.scn-marina-stranger .sail-far {
  position: absolute; bottom: 45%; left: 48%; width: 20px; height: 35px;
  background: linear-gradient(135deg, #ede6d6 0%, #d4cabc 50%, #b8a89a 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%;
  animation: ms-sail 4s ease-in-out infinite alternate;
}
.scn-marina-stranger .figure-on-deck {
  position: absolute; bottom: 36%; left: 42%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #2c1e16 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ms-figure 5s ease-in-out infinite;
}
.scn-marina-stranger .cloud1 {
  position: absolute; top: 15%; left: -10%; width: 100px; height: 25px;
  background: rgba(255,255,255,0.6); filter: blur(8px);
  border-radius: 50%; animation: ms-cloud1 40s linear infinite;
}
.scn-marina-stranger .cloud2 {
  position: absolute; top: 30%; right: -10%; width: 130px; height: 20px;
  background: rgba(255,255,255,0.5); filter: blur(6px);
  border-radius: 50%; animation: ms-cloud2 55s linear infinite reverse;
}
.scn-marina-stranger .sun {
  position: absolute; top: 10%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd700 0%, #ffb347 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.4);
  animation: ms-sun 10s ease-in-out infinite alternate;
}
.scn-marina-stranger .reflection {
  position: absolute; bottom: 5%; left: 40%; width: 40px; height: 15px;
  background: linear-gradient(180deg, rgba(255,215,0,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: ms-reflection 4s ease-in-out infinite alternate;
}
@keyframes ms-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ms-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes ms-ship { 0%, 100% { transform: translate(0, 0) rotate(-1deg); } 50% { transform: translate(4px, -2px) rotate(1deg); } }
@keyframes ms-sail { 0% { transform: scaleX(1) rotate(-2deg); } 100% { transform: scaleX(1.1) rotate(2deg); } }
@keyframes ms-figure { 0%, 100% { transform: translate(0, 0); } 25% { transform: translate(8px, -1px); } 75% { transform: translate(-8px, -1px); } }
@keyframes ms-cloud1 { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }
@keyframes ms-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }
@keyframes ms-sun { 0% { opacity: 0.9; box-shadow: 0 0 30px 15px rgba(255,215,0,0.3); } 100% { opacity: 1; box-shadow: 0 0 50px 25px rgba(255,215,0,0.5); } }
@keyframes ms-reflection { 0% { opacity: 0.3; transform: scaleY(1); } 100% { opacity: 0.8; transform: scaleY(1.5); } }

/* Scene: pericles-believe */
.scn-pericles-believe {
  background: linear-gradient(180deg, #dac292 0%, #c4a87c 50%, #b09060 100%),
              radial-gradient(ellipse at 50% 20%, #f5e6d3 0%, transparent 70%);
}
.scn-pericles-believe .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #cbb390 0%, #b89870 100%);
  animation: pb-wall 15s ease-in-out infinite alternate;
}
.scn-pericles-believe .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08050 0%, #806040 100%);
  border-top: 2px solid #b09060;
  animation: pb-floor 10s ease-in-out infinite alternate;
}
.scn-pericles-believe .throne {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 80px;
  background: linear-gradient(180deg, #8b6914 0%, #6b4f12 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: pb-throne 8s ease-in-out infinite alternate;
}
.scn-pericles-believe .king-figure {
  position: absolute; bottom: 26%; left: 43%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pb-king 6s ease-in-out infinite;
}
.scn-pericles-believe .maiden-figure {
  position: absolute; bottom: 26%; right: 43%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #5e4030 0%, #3a2820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pb-maiden 7s ease-in-out infinite;
}
.scn-pericles-believe .window {
  position: absolute; top: 15%; left: 70%; width: 50px; height: 70px;
  background: radial-gradient(circle, #ffe082 0%, #ffb300 60%, transparent 100%);
  border: 4px solid #8b6914; border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255,179,0,0.4);
  animation: pb-window 4s ease-in-out infinite alternate;
}
.scn-pericles-believe .light-ray {
  position: absolute; top: 0; left: 68%; width: 60px; height: 100%;
  background: linear-gradient(180deg, rgba(255,224,130,0.3) 0%, transparent 80%);
  filter: blur(8px);
  animation: pb-ray 6s ease-in-out infinite alternate;
}
.scn-pericles-believe .pillar {
  position: absolute; bottom: 0; left: 10%; width: 20px; height: 60%;
  background: linear-gradient(180deg, #cbb390 0%, #a08050 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -2px 0 4px rgba(0,0,0,0.2);
  animation: pb-pillar 12s ease-in-out infinite alternate;
}
@keyframes pb-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes pb-floor { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes pb-throne { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } }
@keyframes pb-king { 0% { transform: translate(0, 0) rotate(-2deg); } 25% { transform: translate(-2px, -1px) rotate(1deg); } 75% { transform: translate(2px, -1px) rotate(-1deg); } 100% { transform: translate(0, 0) rotate(0); } }
@keyframes pb-maiden { 0% { transform: translate(0, 0) rotate(0); } 33% { transform: translate(3px, -2px) rotate(2deg); } 66% { transform: translate(-3px, -1px) rotate(-1deg); } 100% { transform: translate(0, 0); } }
@keyframes pb-window { 0% { opacity: 0.6; box-shadow: 0 0 20px 5px rgba(255,179,0,0.3); } 100% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,179,0,0.6); } }
@keyframes pb-ray { 0% { opacity: 0.2; transform: rotate(-3deg); } 50% { opacity: 0.5; transform: rotate(0deg); } 100% { opacity: 0.3; transform: rotate(3deg); } }
@keyframes pb-pillar { 0% { opacity: 0.9; } 100% { opacity: 1; } }

/* Scene: marina-so-indeed */
.scn-marina-so-indeed {
  background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 60%, #5ba3d9 100%),
              radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 50%);
}
.scn-marina-so-indeed .sky-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #cceeff 0%, #a0d8ef 100%);
  animation: msi-sky 14s ease-in-out infinite alternate;
}
.scn-marina-so-indeed .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7cb342 0%, #558b2f 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  animation: msi-grass 10s ease-in-out infinite alternate;
}
.scn-marina-so-indeed .figure-left {
  position: absolute; bottom: 25%; left: 25%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #3e2723 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: msi-figL 6s ease-in-out infinite;
}
.scn-marina-so-indeed .figure-right {
  position: absolute; bottom: 25%; right: 25%; width: 26px; height: 46px;
  background: linear-gradient(180deg, #4e342e 0%, #2c1a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: msi-figR 8s ease-in-out infinite;
}
.scn-marina-so-indeed .flower1 {
  position: absolute; bottom: 30%; left: 15%; width: 12px; height: 12px;
  background: radial-gradient(circle, #e69a8a 0%, #c8553d 100%);
  border-radius: 50%;
  animation: msi-flower1 5s ease-in-out infinite alternate;
}
.scn-marina-so-indeed .flower2 {
  position: absolute; bottom: 33%; right: 20%; width: 10px; height: 10px;
  background: radial-gradient(circle, #b87878 0%, #a0461a 100%);
  border-radius: 50%;
  animation: msi-flower2 6s ease-in-out infinite alternate;
}
.scn-marina-so-indeed .butterfly {
  position: absolute; top: 40%; left: 50%; width: 8px; height: 6px;
  background: #ffb347;
  border-radius: 50% 0 50% 0;
  animation: msi-butterfly 12s ease-in-out infinite;
  filter: blur(1px);
}
@keyframes msi-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes msi-grass { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes msi-figL { 0%, 100% { transform: translate(0, 0) rotate(-1deg); } 25% { transform: translate(5px, -2px) rotate(1deg); } 75% { transform: translate(-5px, -1px) rotate(0); } }
@keyframes msi-figR { 0% { transform: translate(0, 0) rotate(0); } 33% { transform: translate(-4px, -1px) rotate(2deg); } 66% { transform: translate(4px, -2px) rotate(-1deg); } 100% { transform: translate(0, 0); } }
@keyframes msi-flower1 { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.2) rotate(15deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes msi-flower2 { 0% { transform: scale(1) rotate(0) translateY(0); } 50% { transform: scale(1.1) rotate(-10deg) translateY(-2px); } 100% { transform: scale(1) rotate(0) translateY(0); } }
@keyframes msi-butterfly { 0% { transform: translate(0, 0) rotate(0); } 25% { transform: translate(20px, -10px) rotate(5deg); } 50% { transform: translate(40px, 0) rotate(-5deg); } 75% { transform: translate(60px, -8px) rotate(3deg); } 100% { transform: translate(80px, -4px) rotate(0); } }

/* Scene: pericles-marina-meeting */
.scn-pericles-marina-meeting {
  background: linear-gradient(180deg, #ffd54f 0%, #ffb300 40%, #ff8f00 100%),
              radial-gradient(ellipse at 50% 30%, #fff176 0%, transparent 60%);
}
.scn-pericles-marina-meeting .sky-bright {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fff9c4 0%, #fff176 100%);
  animation: pm-sky 5s ease-in-out infinite alternate;
}
.scn-pericles-marina-meeting .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8d6e63 0%, #5d4037 100%);
  animation: pm-ground 7s ease-in-out infinite alternate;
}
.scn-pericles-marina-meeting .figure-pericles {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pm-per 4s ease-in-out infinite;
}
.scn-pericles-marina-meeting .figure-marina {
  position: absolute; bottom: 25%; right: 35%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2c1e16 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pm-mar 6s ease-in-out infinite;
}
.scn-pericles-marina-meeting .shadow-stretch {
  position: absolute; bottom: 0; left: 30%; width: 60px; height: 20px;
  background: rgba(0,0,0,0.3);
  filter: blur(6px); border-radius: 50%;
  animation: pm-shadow 4s ease-in-out infinite alternate;
}
.scn-pericles-marina-meeting .dust-particles {
  position: absolute; top: 20%; left: 45%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,241,118,0.6) 0%, transparent 70%);
  animation: pm-dust 3s ease-in-out infinite;
}
.scn-pericles-marina-meeting .light-beam {
  position: absolute; top: 0; left: 45%; width: 30px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 90%);
  filter: blur(4px);
  animation: pm-beam 2s ease-in-out infinite alternate;
}
@keyframes pm-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes pm-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pm-per { 0%, 100% { transform: translate(0, 0) rotate(0); } 30% { transform: translate(6px, -3px) rotate(2deg); } 60% { transform: translate(-6px, -1px) rotate(-2deg); } }
@keyframes pm-mar { 0% { transform: translate(0, 0) rotate(0); } 40% { transform: translate(-8px, -2px) rotate(3deg); } 80% { transform: translate(4px, -1px) rotate(-1deg); } 100% { transform: translate(0, 0); } }
@keyframes pm-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 100% { transform: scaleX(1.5); opacity: 0.6; } }
@keyframes pm-dust { 0% { transform: scale(0.8) rotate(0); opacity: 0.4; } 50% { transform: scale(1.2) rotate(180deg); opacity: 0.8; } 100% { transform: scale(0.8) rotate(360deg); opacity: 0.4; } }
@keyframes pm-beam { 0% { opacity: 0.2; transform: rotate(-5deg); } 100% { opacity: 0.6; transform: rotate(5deg); } }

.scn-pericles-hum {
  background: linear-gradient(135deg, #c0733a 0%, #4a2a1a 60%, #1a0e08 100%), radial-gradient(ellipse at 30% 20%, #ffcc80 0%, transparent 50%);
}
.scn-pericles-hum .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffd27a 0%, #e89a4a 40%, #7a3a1a 100%);
  animation: ph-sky 20s ease-in-out infinite alternate;
}
.scn-pericles-hum .window {
  position: absolute; top: 10%; left: 50%; width: 120px; height: 160px; transform: translateX(-50%);
  background: linear-gradient(180deg, #fffade 0%, #ffe099 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 0 40px rgba(255,200,100,.5);
  animation: ph-window 12s ease-in-out infinite alternate;
}
.scn-pericles-hum .figure {
  position: absolute; bottom: 25%; left: 48%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0804 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ph-figure 8s ease-in-out infinite;
}
.scn-pericles-hum .comet-glow {
  position: absolute; top: 12%; right: 15%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 0% 50%, #ffffaa 0%, #ffaa44 40%, transparent 100%);
  filter: blur(6px);
  animation: ph-comet 15s linear infinite;
}
.scn-pericles-hum .sun-rays {
  position: absolute; top: 5%; left: 20%; width: 200%; height: 80%;
  background: radial-gradient(ellipse at 30% 20%, rgba(255,220,150,.3) 0%, transparent 70%);
  animation: ph-rays 9s ease-in-out infinite alternate;
}
.scn-pericles-hum .shadow {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: ph-shadow 8s ease-in-out infinite;
}
@keyframes ph-sky {
  0% { opacity: .8; }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: .85; transform: scaleY(1); }
}
@keyframes ph-window {
  0% { box-shadow: inset 0 0 20px rgba(255,200,100,.3); }
  50% { box-shadow: inset 0 0 60px rgba(255,220,130,.6); }
  100% { box-shadow: inset 0 0 30px rgba(255,210,110,.4); }
}
@keyframes ph-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-1deg); }
  75% { transform: translateX(1px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ph-comet {
  0% { transform: translateX(0) rotate(0deg); opacity: .6; }
  25% { transform: translateX(20px) rotate(5deg); opacity: 1; }
  50% { transform: translateX(40px) rotate(10deg); opacity: .8; }
  75% { transform: translateX(60px) rotate(5deg); opacity: 1; }
  100% { transform: translateX(80px) rotate(0deg); opacity: .6; }
}
@keyframes ph-rays {
  0% { opacity: .3; filter: blur(4px); }
  50% { opacity: .6; filter: blur(2px); }
  100% { opacity: .4; filter: blur(5px); }
}
@keyframes ph-shadow {
  0% { transform: scaleX(1); opacity: .5; }
  50% { transform: scaleX(1.2); opacity: .7; }
  100% { transform: scaleX(1); opacity: .5; }
}

.scn-pericles-aside {
  background: linear-gradient(165deg, #a3662a 0%, #3a1e0a 50%, #1a0e05 100%), radial-gradient(ellipse at 70% 30%, #ffd280 0%, transparent 60%);
}
.scn-pericles-aside .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(200,140,70,.4) 0%, transparent 100%);
  animation: pa-bg 10s ease-in-out infinite alternate;
}
.scn-pericles-aside .figure {
  position: absolute; bottom: 20%; left: 45%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-figure 6s ease-in-out infinite;
}
.scn-pericles-aside .cheek-glow {
  position: absolute; bottom: 55%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffb070 0%, #ff8040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,160,80,.5);
  animation: pa-cheek 3s ease-in-out infinite alternate;
}
.scn-pericles-aside .hand {
  position: absolute; bottom: 50%; left: 52%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom left;
  animation: pa-hand 7s ease-in-out infinite;
}
.scn-pericles-aside .breath {
  position: absolute; bottom: 35%; left: 42%; width: 20px; height: 8px;
  background: radial-gradient(ellipse, rgba(255,255,230,.2) 0%, transparent 100%);
  filter: blur(2px);
  animation: pa-breath 5s ease-in-out infinite;
}
.scn-pericles-aside .eye {
  position: absolute; bottom: 60%; left: 47%; width: 4px; height: 6px;
  background: #0a0804;
  border-radius: 50%;
  box-shadow: 0 0 2px rgba(0,0,0,.8);
  animation: pa-eye 3s ease-in-out infinite;
}
@keyframes pa-bg {
  0% { opacity: .3; }
  50% { opacity: .6; }
  100% { opacity: .4; }
}
@keyframes pa-figure {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-2px) rotate(2deg); }
  60% { transform: translateX(1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pa-cheek {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); box-shadow: 0 0 30px 12px rgba(255,160,80,.6); }
  100% { opacity: .7; transform: scale(1); }
}
@keyframes pa-hand {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-4px) rotate(15deg); }
  50% { transform: translateX(1px) translateY(-2px) rotate(10deg); }
  75% { transform: translateX(3px) translateY(-5px) rotate(20deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes pa-breath {
  0% { opacity: .1; transform: scaleX(1); }
  50% { opacity: .3; transform: scaleX(1.5) translateX(2px); }
  100% { opacity: .1; transform: scaleX(1); }
}
@keyframes pa-eye {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(.3); }
  100% { transform: scaleY(1); }
}

.scn-marina-no-shore {
  background: linear-gradient(180deg, #b3d9ff 0%, #7ab0e0 40%, #3a6a9a 100%), radial-gradient(ellipse at 50% 20%, #ffffff 0%, transparent 60%);
}
.scn-marina-no-shore .sky-water {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(180,210,240,.2) 100%);
  animation: mn-skywater 15s ease-in-out infinite alternate;
}
.scn-marina-no-shore .figure {
  position: absolute; bottom: 45%; left: 50%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a121a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: mn-figure 10s ease-in-out infinite;
}
.scn-marina-no-shore .reflection {
  position: absolute; bottom: 38%; left: 49%; width: 30px; height: 40px;
  background: linear-gradient(180deg, rgba(180,210,240,.2) 0%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: mn-reflection 10s ease-in-out infinite reverse;
}
.scn-marina-no-shore .light-rays {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: radial-gradient(ellipse at 30% 10%, rgba(255,255,230,.15) 0%, transparent 70%);
  animation: mn-rays 8s ease-in-out infinite alternate;
}
.scn-marina-no-shore .ripple {
  position: absolute; bottom: 30%; left: 30%; width: 100px; height: 8px;
  background: radial-gradient(ellipse, rgba(255,255,255,.15) 0%, transparent 100%);
  filter: blur(1px);
  animation: mn-ripple 6s ease-in-out infinite;
}
.scn-marina-no-shore .cloud-soft {
  position: absolute; top: 12%; left: 20%; width: 90px; height: 20px;
  background: radial-gradient(ellipse at 30% 30%, rgba(255,255,255,.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: mn-cloud 40s linear infinite;
}
@keyframes mn-skywater {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes mn-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-48%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-52%) translateY(-3px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes mn-reflection {
  0% { opacity: .4; }
  50% { opacity: .2; }
  100% { opacity: .4; }
}
@keyframes mn-rays {
  0% { opacity: .1; transform: scaleY(1); }
  50% { opacity: .3; transform: scaleY(1.1); }
  100% { opacity: .15; transform: scaleY(1); }
}
@keyframes mn-ripple {
  0% { transform: scaleX(1); opacity: .2; }
  50% { transform: scaleX(1.3); opacity: .4; }
  100% { transform: scaleX(1); opacity: .2; }
}
@keyframes mn-cloud {
  0% { transform: translateX(-20px); }
  100% { transform: translateX(120vw); }
}

.scn-pericles-woe {
  background: linear-gradient(135deg, #c08840 0%, #5a2a18 50%, #1a0e08 100%), radial-gradient(ellipse at 40% 20%, #ffd090 0%, transparent 70%);
}
.scn-pericles-woe .bg-sorrow {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(180,120,60,.2) 0%, transparent 100%);
  animation: pw-bg 12s ease-in-out infinite alternate;
}
.scn-pericles-woe .figure-kneeling {
  position: absolute; bottom: 15%; left: 45%; width: 36px; height: 60px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0804 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pw-kneel 7s ease-in-out infinite;
}
.scn-pericles-woe .wife-ghost {
  position: absolute; bottom: 30%; left: 55%; width: 28px; height: 70px;
  background: linear-gradient(180deg, rgba(255,220,180,.3) 0%, rgba(255,200,160,.05) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: pw-ghost 9s ease-in-out infinite alternate;
}
.scn-pericles-woe .tears {
  position: absolute; bottom: 25%; left: 46%; width: 2px; height: 4px;
  background: radial-gradient(circle, #aaccee 0%, transparent 100%);
  box-shadow: 0 6px 0 #aaccee, 0 12px 0 #aaccee, 0 18px 0 #aaccee;
  animation: pw-tears 4s ease-in-out infinite;
}
.scn-pericles-woe .light-beam {
  position: absolute; top: 5%; left: 30%; width: 140%; height: 60%;
  background: radial-gradient(ellipse at 30% 10%, rgba(255,230,180,.2) 0%, transparent 60%);
  animation: pw-beam 15s ease-in-out infinite alternate;
}
.scn-pericles-woe .shadow-deep {
  position: absolute; bottom: 10%; left: 30%; width: 120px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%);
  animation: pw-shadow 7s ease-in-out infinite;
}
@keyframes pw-bg {
  0% { opacity: .3; }
  50% { opacity: .6; }
  100% { opacity: .4; }
}
@keyframes pw-kneel {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  75% { transform: translateY(-4px) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pw-ghost {
  0% { opacity: .2; transform: translateY(0); }
  50% { opacity: .5; transform: translateY(-5px); }
  100% { opacity: .3; transform: translateY(2px); }
}
@keyframes pw-tears {
  0% { opacity: .4; transform: translateY(0); }
  50% { opacity: .8; transform: translateY(10px); }
  100% { opacity: .5; transform: translateY(20px); }
}
@keyframes pw-beam {
  0% { opacity: .1; transform: scaleY(1); }
  50% { opacity: .3; transform: scaleY(1.2); }
  100% { opacity: .15; transform: scaleY(1); }
}
@keyframes pw-shadow {
  0% { transform: scaleX(1); opacity: .6; }
  50% { transform: scaleX(1.1); opacity: .8; }
  100% { transform: scaleX(1); opacity: .6; }
}

/* gower-chorus-marina */
.scn-gower-chorus-marina { background: linear-gradient(180deg, #6b7b8b 0%, #4a5a6a 50%, #3a4a5a 100%), radial-gradient(ellipse at 50% 100%, #5a6a7a 0%, transparent 70%); }
.scn-gower-chorus-marina .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #7a8a9a 0%, transparent 100%); animation: gcm-sky 20s ease-in-out infinite alternate; }
.scn-gower-chorus-marina .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-gower-chorus-marina .monument { position:absolute; bottom:30%; left:50%; width:80px; height:110px; transform:translateX(-50%); background: linear-gradient(135deg, #8a9aaa 0%, #5a6a7a 50%, #3a4a5a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.5), inset 0 0 20px rgba(255,255,255,.1); animation: gcm-monument 18s ease-in-out infinite; }
.scn-gower-chorus-marina .figure { position:absolute; bottom:28%; left:42%; width:20px; height:48px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gcm-walk 6s ease-in-out infinite; }
.scn-gower-chorus-marina .cloud-left { position:absolute; top:15%; left:5%; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(255,255,255,.05) 100%); border-radius:50%; filter: blur(8px); animation: gcm-drift-r 45s linear infinite; }
.scn-gower-chorus-marina .cloud-right { position:absolute; top:20%; right:8%; width:80px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,.25) 0%, rgba(255,255,255,.03) 100%); border-radius:50%; filter: blur(6px); animation: gcm-drift-l 50s linear infinite reverse; }
.scn-gower-chorus-marina .light-halo { position:absolute; bottom:35%; left:50%; width:120px; height:120px; transform:translate(-50%, -50%); background: radial-gradient(circle, rgba(200,210,220,.15) 0%, rgba(200,210,220,.02) 60%, transparent 100%); border-radius:50%; animation: gcm-pulse 8s ease-in-out infinite alternate; }
@keyframes gcm-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes gcm-monument { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) scale(1.01) } }
@keyframes gcm-walk { 0%,100% { transform: translateX(0) translateY(0) } 25% { transform: translateX(4px) translateY(-2px) rotate(-2deg) } 50% { transform: translateX(8px) translateY(0) rotate(1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(-1deg) } }
@keyframes gcm-drift-r { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }
@keyframes gcm-drift-l { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes gcm-pulse { 0% { opacity:.3; transform: translate(-50%,-50%) scale(1) } 50% { opacity:.6; transform: translate(-50%,-50%) scale(1.1) } 100% { opacity:.4; transform: translate(-50%,-50%) scale(.95) } }

/* gower-dumb-show */
.scn-gower-dumb-show { background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 50%, #2a3a4a 100%), radial-gradient(ellipse at 50% 0%, #4a5a6a 0%, transparent 70%); }
.scn-gower-dumb-show .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a8a9a 0%, transparent 100%); animation: gds-sky 30s ease-in-out infinite alternate; }
.scn-gower-dumb-show .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 6px 16px rgba(0,0,0,.4); }
.scn-gower-dumb-show .tomb { position:absolute; bottom:25%; left:50%; width:90px; height:100px; transform:translateX(-50%); background: linear-gradient(135deg, #7a8a9a 0%, #3a4a5a 100%); border-radius: 10% 10% 5% 5% / 15% 15% 5% 5%; box-shadow: 0 10px 20px rgba(0,0,0,.5), inset 0 0 15px rgba(255,255,255,.08); animation: gds-tomb 20s ease-in-out infinite; }
.scn-gower-dumb-show .figure-pericles { position:absolute; bottom:22%; left:38%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gds-kneel 8s ease-in-out infinite; }
.scn-gower-dumb-show .figure-cleon { position:absolute; bottom:26%; right:30%; width:20px; height:44px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gds-stand 12s ease-in-out infinite; }
.scn-gower-dumb-show .figure-dionyza { position:absolute; bottom:26%; right:20%; width:18px; height:42px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gds-stand 12s ease-in-out infinite reverse; }
.scn-gower-dumb-show .cloud { position:absolute; top:12%; right:10%; width:90px; height:18px; background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, rgba(255,255,255,.02) 100%); border-radius:50%; filter: blur(7px); animation: gds-drift 60s linear infinite; }
.scn-gower-dumb-show .tear { position:absolute; bottom:20%; left:42%; width:4px; height:8px; background: linear-gradient(180deg, #8a9a9a 0%, transparent 100%); border-radius:50%; animation: gds-fall 3s ease-in infinite; }
@keyframes gds-sky { 0% { opacity:.6 } 50% { opacity:.85 } 100% { opacity:.7 } }
@keyframes gds-tomb { 0%,100% { transform: translateX(-50%) translateY(0) scale(1) } 50% { transform: translateX(-50%) translateY(-3px) scale(1.01) } }
@keyframes gds-kneel { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-2px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(0) translateY(-4px) rotate(0) } 75% { transform: translateX(2px) translateY(-2px) rotate(-3deg) } }
@keyframes gds-stand { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-1px) translateY(-1px) } }
@keyframes gds-drift { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes gds-fall { 0% { opacity:1; transform: translateY(0) scale(1) } 100% { opacity:0; transform: translateY(30px) scale(.5) } }

/* gower-belief */
.scn-gower-belief { background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 30%, #2a3a4a 70%, #1a2a3a 100%), radial-gradient(ellipse at 50% 80%, #3a4a5a 0%, transparent 60%); }
.scn-gower-belief .bg-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7a8a9a 0%, transparent 100%); animation: gbe-sky 25s ease-in-out infinite alternate; }
.scn-gower-belief .bg-sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 30% 50% 0 0 / 50% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: gbe-sea 14s ease-in-out infinite alternate; }
.scn-gower-belief .ship { position:absolute; bottom:20%; left:20%; width:100px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 80% 30% 70% / 60% 40% 60% 40%; box-shadow: 0 6px 12px rgba(0,0,0,.6); animation: gbe-rock 10s ease-in-out infinite; }
.scn-gower-belief .sail { position:absolute; bottom:40%; left:28%; width:40px; height:50px; background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%); border-radius: 10% 90% 10% 90% / 30% 30% 70% 70%; transform-origin: bottom center; animation: gbe-sail 8s ease-in-out infinite alternate; }
.scn-gower-belief .figure-sorrow { position:absolute; bottom:18%; left:30%; 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: gbe-bow 6s ease-in-out infinite; }
.scn-gower-belief .wave-1 { position:absolute; bottom:0; left:-10%; width:120%; height:30px; background: linear-gradient(180deg, #3a4a5a 0%, transparent 100%); border-radius:50%; animation: gbe-wave1 10s linear infinite; }
.scn-gower-belief .wave-2 { position:absolute; bottom:10px; left:-10%; width:120%; height:25px; background: linear-gradient(180deg, #4a5a6a 0%, transparent 100%); border-radius:50%; animation: gbe-wave2 12s linear infinite reverse; }
.scn-gower-belief .cloud { position:absolute; top:10%; left:5%; width:80px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, rgba(255,255,255,.02) 100%); border-radius:50%; filter: blur(5px); animation: gbe-drift 40s linear infinite; }
@keyframes gbe-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes gbe-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes gbe-rock { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(-2px) rotate(2deg) } 75% { transform: translateX(1px) rotate(-1deg) } }
@keyframes gbe-sail { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(-3deg) scaleY(.98) } }
@keyframes gbe-bow { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-1px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(0) translateY(-4px) rotate(0) } 75% { transform: translateX(1px) translateY(-2px) rotate(-2deg) } }
@keyframes gbe-wave1 { 0% { transform: translateX(0) } 100% { transform: translateX(-20%) } }
@keyframes gbe-wave2 { 0% { transform: translateX(-20%) } 100% { transform: translateX(0) } }
@keyframes gbe-drift { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

/* item-epitaph-monument */
.scn-item-epitaph-monument { background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #00000a 100%), radial-gradient(circle at 50% 30%, #2a2a3a 0%, transparent 70%); }
.scn-item-epitaph-monument .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); animation: iem-dark 30s ease-in-out infinite alternate; }
.scn-item-epitaph-monument .monument { position:absolute; bottom:20%; left:30%; width:140px; height:200px; background: linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 30%, #1a1a2a 70%, #0a0a1a 100%); border-radius: 8% 8% 4% 4% / 12% 12% 4% 4%; box-shadow: 0 12px 24px rgba(0,0,0,.8), inset 0 0 30px rgba(255,255,255,.05); animation: iem-move 25s ease-in-out infinite; }
.scn-item-epitaph-monument .carved-lines { position:absolute; bottom:38%; left:35%; width:100px; height:80px; background: repeating-linear-gradient(0deg, transparent 0, transparent 6px, #4a4a5a 6px, #4a4a5a 8px, transparent 8px); border-radius: 2px; opacity:.4; animation: iem-fade 6s ease-in-out infinite alternate; }
.scn-item-epitaph-monument .figure-reader { position:absolute; bottom:22%; left:55%; width:22px; height:55px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iem-read 10s ease-in-out infinite; }
.scn-item-epitaph-monument .ghost-glow { position:absolute; bottom:30%; left:40%; width:80px; height:100px; background: radial-gradient(circle, rgba(180,190,200,.1) 0%, rgba(180,190,200,.02) 50%, transparent 100%); border-radius:50%; animation: iem-glow 8s ease-in-out infinite alternate; }
.scn-item-epitaph-monument .dust { position:absolute; top:10%; left:20%; width:5px; height:5px; background: rgba(200,210,220,.15); border-radius:50%; box-shadow: 0 0 6px 2px rgba(200,210,220,.1); animation: iem-dust 12s linear infinite; }
@keyframes iem-dark { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes iem-move { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.01) } }
@keyframes iem-fade { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.35 } }
@keyframes iem-read { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(2px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(0) translateY(-4px) rotate(0) } 75% { transform: translateX(-2px) translateY(-2px) rotate(-2deg) } }
@keyframes iem-glow { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.2) } 100% { opacity:.4; transform: scale(.9) } }
@keyframes iem-dust { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(30px, -40px) scale(2) } 100% { transform: translate(60px, -80px) scale(1) opacity:0 } }

/* bawd-leads – dim interior, calm */
.scn-bawd-leads {
  background: linear-gradient(180deg, #2b1f1a 0%, #1e1512 50%, #0d0806 100%),
              radial-gradient(ellipse at 50% 30%, #3d2b21 0%, transparent 70%);
}
.scn-bawd-leads .wall-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #2a2019 0%, #3d3028 40%, #2a2019 100%);
  animation: bawd-wall 20s ease-in-out infinite;
}
.scn-bawd-leads .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1f1712 0%, #120c08 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-bawd-leads .doorway {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 180px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #120c08 0%, #0a0604 100%);
  border-radius: 50% 50% 5% 5% / 60% 60% 5% 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
  animation: bawd-door 30s ease-in-out infinite;
}
.scn-bawd-leads .figure-lead {
  position: absolute; bottom: 28%; left: 44%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a120e 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: bawd-walk-lead 6s ease-in-out infinite;
}
.scn-bawd-leads .figure-follow {
  position: absolute; bottom: 28%; left: 38%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #1c1612 0%, #100c08 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: bawd-walk-follow 6s ease-in-out 2s infinite;
}
.scn-bawd-leads .lantern-glow {
  position: absolute; bottom: 48%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #cc8844 0%, #aa6622 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(204,136,68,.6), 0 0 100px 40px rgba(204,136,68,.3);
  animation: bawd-lantern 4s ease-in-out infinite alternate;
}
.scn-bawd-leads .lantern-body {
  position: absolute; bottom: 50%; left: 50%; width: 10px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d49749 0%, #b07030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 2px 4px #eebb77;
  animation: bawd-lantern-rock 4s ease-in-out infinite;
}

@keyframes bawd-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes bawd-door {
  0% { transform: translateX(-50%) scaleX(1); }
  33% { transform: translateX(-50%) scaleX(0.98); }
  66% { transform: translateX(-50%) scaleX(1.02); }
  100% { transform: translateX(-50%) scaleX(1); }
}
@keyframes bawd-walk-lead {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bawd-walk-follow {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(1deg); }
  50% { transform: translateX(2px) rotate(-1deg); }
  75% { transform: translateX(-3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bawd-lantern {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes bawd-lantern-rock {
  0% { transform: translateX(-50%) rotate(-2deg); }
  25% { transform: translateX(-50%) rotate(3deg); }
  50% { transform: translateX(-50%) rotate(-1deg); }
  75% { transform: translateX(-50%) rotate(4deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}

/* cleon-horror – bright interior, dark mood */
.scn-cleon-horror {
  background: linear-gradient(180deg, #f0e0c0 0%, #ddcca8 50%, #b8a78a 100%);
  box-shadow: inset 0 0 80px rgba(100,50,20,.3);
}
.scn-cleon-horror .ch-light-beam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, rgba(255,255,200,0.1) 50%, transparent 100%);
  clip-path: polygon(40% 0, 60% 0, 80% 100%, 20% 100%);
  animation: ch-beam 8s ease-in-out infinite alternate;
}
.scn-cleon-horror .ch-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  box-shadow: inset 0 6px 20px rgba(0,0,0,.3);
}
.scn-cleon-horror .ch-body {
  position: absolute; bottom: 12%; left: 40%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: ch-body 12s ease-in-out infinite;
}
.scn-cleon-horror .ch-blood {
  position: absolute; bottom: 8%; left: 42%; width: 30px; height: 8px;
  background: radial-gradient(ellipse, #8a3a2a 0%, #5a2a1a 70%, transparent 100%);
  border-radius: 50%;
  animation: ch-blood 6s ease-in-out infinite alternate;
}
.scn-cleon-horror .ch-figure {
  position: absolute; bottom: 15%; left: 50%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ch-figure 5s ease-in-out infinite;
}
.scn-cleon-horror .ch-hand {
  position: absolute; bottom: 25%; left: 52%; width: 20px; height: 30px;
  background: linear-gradient(120deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 30% 60% 40% 40% / 50% 70% 30% 30%;
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: ch-hand 4s ease-in-out infinite alternate;
}
.scn-cleon-horror .ch-shadow {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: ch-shadow 10s ease-in-out infinite alternate;
}

@keyframes ch-beam {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.2; }
}
@keyframes ch-body {
  0% { transform: rotate(-5deg) translateY(0); }
  33% { transform: rotate(-4deg) translateY(-2px); }
  66% { transform: rotate(-6deg) translateY(1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes ch-blood {
  0% { opacity: 0.8; transform: scale(1); }
  100% { opacity: 0.5; transform: scale(1.2); }
}
@keyframes ch-figure {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(3px) rotate(4deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(-3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes ch-hand {
  0% { transform: rotate(20deg) scale(1); }
  100% { transform: rotate(30deg) scale(1.1); }
}
@keyframes ch-shadow {
  0% { opacity: 0.3; }
  100% { opacity: 0.6; }
}

/* cleon-regret – bright interior, dark mood */
.scn-cleon-regret {
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 60%, #a89880 100%),
              radial-gradient(ellipse at 70% 30%, #f0e0c8 0%, transparent 60%);
}
.scn-cleon-regret .cr-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #b8a890 0%, #d0c0a8 50%, #b8a890 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.2);
  animation: cr-wall 15s ease-in-out infinite;
}
.scn-cleon-regret .cr-window {
  position: absolute; top: 10%; right: 20%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #9ac8e8 0%, #d0eaf8 50%, #b0d0e0 100%);
  border: 4px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(255,255,200,0.6);
  animation: cr-window 20s ease-in-out infinite alternate;
}
.scn-cleon-regret .cr-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a09080 0%, #807060 100%);
  box-shadow: inset 0 6px 20px rgba(0,0,0,.3);
}
.scn-cleon-regret .cr-kneeling {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #120a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cr-kneel 6s ease-in-out infinite;
}
.scn-cleon-regret .cr-cup {
  position: absolute; bottom: 15%; left: 30%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  transform: rotate(15deg);
  animation: cr-cup 4s ease-in-out infinite alternate;
}
.scn-cleon-regret .cr-hand {
  position: absolute; bottom: 25%; left: 32%; width: 16px; height: 24px;
  background: linear-gradient(120deg, #3a2a22 0%, #1a0e08 100%);
  border-radius: 30% 50% 40% 40% / 40% 60% 30% 30%;
  transform: rotate(-30deg);
  transform-origin: bottom right;
  animation: cr-hand 5s ease-in-out infinite;
}
.scn-cleon-regret .cr-tear {
  position: absolute; bottom: 30%; left: 36%; width: 4px; height: 8px;
  background: rgba(180,200,220,0.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: cr-tear 3s ease-in-out infinite;
}

@keyframes cr-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cr-window {
  0% { opacity: 0.6; transform: scaleY(0.98); }
  100% { opacity: 1; transform: scaleY(1.02); }
}
@keyframes cr-kneel {
  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 cr-cup {
  0% { transform: rotate(15deg) translateY(0); }
  100% { transform: rotate(20deg) translateY(-2px); }
}
@keyframes cr-hand {
  0% { transform: rotate(-30deg) scale(1); }
  50% { transform: rotate(-25deg) scale(1.1); }
  100% { transform: rotate(-30deg) scale(0.95); }
}
@keyframes cr-tear {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(10px); opacity: 0.3; }
  100% { transform: translateY(0); opacity: 0.8; }
}

/* dionyza-she-dead – bright interior, calm */
.scn-dionyza-she-dead {
  background: linear-gradient(180deg, #f5efe0 0%, #e8dcc8 50%, #d0c4b0 100%),
              radial-gradient(ellipse at 60% 20%, #fff8f0 0%, transparent 70%);
}
.scn-dionyza-she-dead .dsd-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #d0c0a8 0%, #e0d0b8 50%, #c8b8a0 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.1);
  animation: dsd-wall 20s ease-in-out infinite;
}
.scn-dionyza-she-dead .dsd-window {
  position: absolute; top: 8%; left: 15%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #b0d8f0 0%, #d0eaf8 60%, #e8f4fc 100%);
  border: 5px solid #6a5a4a;
  border-radius: 5px;
  box-shadow: 0 0 20px rgba(200,220,255,0.5);
  animation: dsd-window 30s ease-in-out infinite alternate;
}
.scn-dionyza-she-dead .dsd-bed {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 6px 20px rgba(0,0,0,.3);
  animation: dsd-bed 15s ease-in-out infinite;
}
.scn-dionyza-she-dead .dsd-figure-dead {
  position: absolute; bottom: 22%; left: 50%; width: 45px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b8a0 0%, #a09080 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.2);
  animation: dsd-dead 12s ease-in-out infinite;
}
.scn-dionyza-she-dead .dsd-nurse {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 62px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dsd-nurse 8s ease-in-out infinite;
}
.scn-dionyza-she-dead .dsd-sheet {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #f0e8dc 0%, #d8d0c0 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  animation: dsd-sheet 6s ease-in-out infinite alternate;
}
.scn-dionyza-she-dead .dsd-shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.2) 0%, transparent 70%);
  animation: dsd-shadow 18s ease-in-out infinite alternate;
}

@keyframes dsd-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes dsd-window {
  0% { opacity: 0.5; }
  100% { opacity: 0.9; }
}
@keyframes dsd-bed {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.98); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes dsd-dead {
  0% { transform: translateX(-50%) rotate(0deg); }
  33% { transform: translateX(-50%) rotate(-1deg); }
  66% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes dsd-nurse {
  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 dsd-sheet {
  0% { transform: scaleX(1) translateY(0); }
  100% { transform: scaleX(1.05) translateY(-2px); }
}
@keyframes dsd-shadow {
  0% { opacity: 0.2; }
  100% { opacity: 0.4; }
}

/* Scene 1: tarsus-welcome-peace */
.scn-tarsus-welcome-peace {
  background: 
    linear-gradient(180deg, #6a7b8b 0%, #7a8b9b 50%, #5a6b7b 100%),
    radial-gradient(ellipse at 50% 100%, #8a9baf 0%, transparent 70%);
}
.scn-tarsus-welcome-peace .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6b7b 0%, #8a9bb5 100%);
  animation: twp-sky 20s ease-in-out infinite alternate;
}
.scn-tarsus-welcome-peace .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%);
  border-radius: 30% 20% 0 0 / 20% 10% 0 0;
  animation: twp-sea 12s ease-in-out infinite alternate;
}
.scn-tarsus-welcome-peace .cloud {
  position: absolute; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(200,210,220,0.6) 0%, rgba(200,210,220,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
}
.scn-tarsus-welcome-peace .cloud-a {
  top: 10%; left: 20%;
  animation: twp-drift-a 40s linear infinite;
}
.scn-tarsus-welcome-peace .cloud-b {
  top: 25%; right: 10%;
  animation: twp-drift-b 35s linear infinite reverse;
}
.scn-tarsus-welcome-peace .city-wall {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: twp-wall 15s ease-in-out infinite alternate;
}
.scn-tarsus-welcome-peace .ship {
  position: absolute; bottom: 40%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: twp-ship 8s ease-in-out infinite;
}
.scn-tarsus-welcome-peace .sail {
  position: absolute; bottom: 60%; left: 34%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: twp-sail 6s ease-in-out infinite alternate;
}
.scn-tarsus-welcome-peace .figure {
  position: absolute; bottom: 38%; left: 25%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: twp-figure 9s ease-in-out infinite;
}
@keyframes twp-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes twp-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes twp-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(100vw) } }
@keyframes twp-drift-b { 0% { transform: translateX(40px) } 100% { transform: translateX(-100vw) } }
@keyframes twp-wall { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(0.98) translateY(1px) } }
@keyframes twp-ship { 0% { transform: rotate(-1deg) translateX(0) } 50% { transform: rotate(1deg) translateX(2px) } 100% { transform: rotate(-1deg) translateX(-1px) } }
@keyframes twp-sail { 0% { transform: skewX(2deg) } 50% { transform: skewX(-3deg) } 100% { transform: skewX(2deg) } }
@keyframes twp-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* Scene 2: pericles-brings-corn */
.scn-pericles-brings-corn {
  background: 
    linear-gradient(180deg, #6a5a4a 0%, #8a7a6a 50%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 0%, #a09080 0%, transparent 70%);
}
.scn-pericles-brings-corn .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #3a3a2a 0%, #4a4a3a 50%, #3a3a2a 100%);
  animation: pbc-wall 20s ease-in-out infinite alternate;
}
.scn-pericles-brings-corn .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 20% 0 0 / 5% 10% 0 0;
}
.scn-pericles-brings-corn .beam {
  position: absolute; top: 15%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pbc-beam 14s ease-in-out infinite;
}
.scn-pericles-brings-corn .sack {
  position: absolute; bottom: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #a09070 0%, #706050 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.3);
}
.scn-pericles-brings-corn .sack-1 { left: 20%; animation: pbc-sack1 12s ease-in-out infinite; }
.scn-pericles-brings-corn .sack-2 { left: 50%; animation: pbc-sack2 14s ease-in-out infinite reverse; }
.scn-pericles-brings-corn .figure-giver {
  position: absolute; bottom: 22%; left: 35%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pbc-giver 8s ease-in-out infinite;
}
.scn-pericles-brings-corn .figure-receiver {
  position: absolute; bottom: 22%; left: 55%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pbc-receiver 9s ease-in-out infinite;
}
.scn-pericles-brings-corn .light-ray {
  position: absolute; top: 0; left: 40%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(200,180,120,0.2) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: pbc-light 18s ease-in-out infinite alternate;
}
@keyframes pbc-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes pbc-beam { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.8) } 100% { transform: scaleY(1) } }
@keyframes pbc-sack1 { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pbc-sack2 { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes pbc-giver { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pbc-receiver { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes pbc-light { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.5 } }

/* Scene 3: tarsus-feast-welcome */
.scn-tarsus-feast-welcome {
  background: 
    linear-gradient(180deg, #5a3a2a 0%, #7a5a3a 50%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 70%, #9a7a5a 0%, transparent 70%);
}
.scn-tarsus-feast-welcome .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-tarsus-feast-welcome .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: tfw-table 10s ease-in-out infinite;
}
.scn-tarsus-feast-welcome .plate {
  position: absolute; bottom: 25%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #b0a080 0%, #807060 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-tarsus-feast-welcome .plate-1 { left: 30%; animation: tfw-plate1 8s ease-in-out infinite; }
.scn-tarsus-feast-welcome .plate-2 { left: 55%; animation: tfw-plate2 7s ease-in-out infinite alternate; }
.scn-tarsus-feast-welcome .cup {
  position: absolute; bottom: 26%; left: 42%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #8a7040 0%, #5a3a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: tfw-cup 6s ease-in-out infinite;
}
.scn-tarsus-feast-welcome .figure {
  position: absolute; bottom: 10%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-tarsus-feast-welcome .seated { left: 20%; animation: tfw-seated 12s ease-in-out infinite; }
.scn-tarsus-feast-welcome .standing { left: 70%; animation: tfw-standing 9s ease-in-out infinite; }
.scn-tarsus-feast-welcome .lantern {
  position: absolute; top: 15%; left: 45%; width: 14px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 24px 6px #b08040, 0 0 48px 12px rgba(176,128,64,0.5);
  animation: tfw-lantern 3s ease-in-out infinite alternate;
}
@keyframes tfw-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tfw-plate1 { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tfw-plate2 { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes tfw-cup { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tfw-seated { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tfw-standing { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes tfw-lantern { 0% { opacity: 0.7; box-shadow: 0 0 18px 4px #b08040; } 50% { opacity: 1; box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 18px rgba(255,208,128,0.4); } 100% { opacity: 0.8; box-shadow: 0 0 22px 5px #b08040; } }

/* Scene 4: gower-narrates-dumb-show */
.scn-gower-narrates-dumb-show {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 50%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 50%, #8a7a6a 0%, transparent 80%);
}
.scn-gower-narrates-dumb-show .curtain {
  position: absolute; top: 0; bottom: 0; width: 20%;
  background: linear-gradient(180deg, #8a1a1a 0%, #5a0a0a 100%); /* use burgundy/mulberry instead of bright red */
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: gnd-curtain 15s ease-in-out infinite alternate;
}
.scn-gower-narrates-dumb-show .curtain-left { left: 0; border-radius: 0 40% 40% 0 / 0 20% 20% 0; }
.scn-gower-narrates-dumb-show .curtain-right { right: 0; border-radius: 40% 0 0 40% / 20% 0 0 20%; animation-delay: 6s; }
.scn-gower-narrates-dumb-show .stage-floor {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-gower-narrates-dumb-show .backdrop {
  position: absolute; top: 0; left: 20%; right: 20%; bottom: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-gower-narrates-dumb-show .figure {
  position: absolute; bottom: 18%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-gower-narrates-dumb-show .player-1 { left: 30%; animation: gnd-player1 8s ease-in-out infinite; }
.scn-gower-narrates-dumb-show .player-2 { left: 55%; animation: gnd-player2 9s ease-in-out infinite reverse; }
.scn-gower-narrates-dumb-show .prop {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: gnd-statue 12s ease-in-out infinite;
}
@keyframes gnd-curtain { 0% { width: 20% } 50% { width: 18% } 100% { width: 20% } }
@keyframes gnd-player1 { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes gnd-player2 { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes gnd-statue { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }

/* ===== BANQUET-MIRTH (warm interior, knights drinking) ===== */
.scn-banquet-mirth {
  background: 
    radial-gradient(ellipse at 30% 60%, #a07040 0%, transparent 60%),
    radial-gradient(ellipse at 70% 40%, #d4b060 0%, transparent 50%),
    linear-gradient(180deg, #6a3e20 0%, #9c5a30 30%, #c87840 60%, #8c4a28 100%);
}
.scn-banquet-mirth .bg-wall {
  position: absolute; inset: 0 0 10% 0;
  background: repeating-linear-gradient(90deg, #8c5a3a 0px, #8c5a3a 2px, transparent 2px, transparent 8px);
  opacity: 0.3; animation: bm-wall 30s linear infinite;
}
.scn-banquet-mirth .bg-arch {
  position: absolute; top: 0; left: 20%; right: 20%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, #9c6030 0%, #6a3a20 70%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
}
.scn-banquet-mirth .table {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #c07840 0%, #8c5028 60%, #603818 100%);
  border-radius: 10px; box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-banquet-mirth .cup {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 40px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 30% 30%, #f0d080 0%, #c09830 60%, #a07818 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: bm-cup 8s ease-in-out infinite;
}
.scn-banquet-mirth .fig-knight-left {
  position: absolute; bottom: 12%; left: 20%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 30%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: bm-knight-left 5s ease-in-out infinite;
}
.scn-banquet-mirth .fig-knight-right {
  position: absolute; bottom: 12%; right: 18%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 30%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: bm-knight-right 5.5s ease-in-out infinite;
}
.scn-banquet-mirth .fig-bard {
  position: absolute; bottom: 14%; left: 44%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a4030 0%, #3a2218 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; transform-origin: bottom center;
  animation: bm-bard 7s ease-in-out infinite;
}
.scn-banquet-mirth .candle-glow {
  position: absolute; bottom: 30%; left: 48%; width: 8px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #e09030 70%);
  border-radius: 40%; box-shadow: 0 0 24px 8px #e09030;
  animation: bm-candle 3s ease-in-out infinite alternate;
}
.scn-banquet-mirth .candle-flame {
  position: absolute; bottom: 46%; left: 48.5%; width: 6px; height: 10px;
  background: radial-gradient(ellipse at 50% 100%, #ffe090 0%, #ffb040 100%);
  border-radius: 50% 50% 20% 20%; filter: blur(1px);
  animation: bm-flame 0.8s ease-in-out infinite alternate;
}
@keyframes bm-wall { 0% { background-position: 0 0; } 100% { background-position: 200px 0; } }
@keyframes bm-cup { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-1px) rotate(2deg); } }
@keyframes bm-knight-left { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes bm-knight-right { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes bm-bard { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(0deg); } 75% { transform: translateY(-3px) rotate(1deg); } }
@keyframes bm-candle { 0% { opacity: 0.7; box-shadow: 0 0 16px 4px #e09030; } 100% { opacity: 1; box-shadow: 0 0 32px 10px #f0a040; } }
@keyframes bm-flame { 0% { transform: scaleY(1) translateY(0); } 100% { transform: scaleY(1.2) translateY(-1px); } }

/* ===== STANDING-BOWL-TOAST (close-up bowl, hand) ===== */
.scn-standing-bowl-toast {
  background:
    radial-gradient(ellipse at 50% 70%, #a06030 0%, transparent 70%),
    linear-gradient(180deg, #3a2a1a 0%, #6a4a2a 50%, #4a3220 100%);
}
.scn-standing-bowl-toast .bg-marble {
  position: absolute; inset: 0 0 25% 0;
  background: repeating-linear-gradient(45deg, #7a5a3a 0px, #7a5a3a 4px, #9c7a4a 4px, #9c7a4a 8px);
  opacity: 0.15; animation: sb-marble 30s linear infinite;
}
.scn-standing-bowl-toast .bulkhead {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-standing-bowl-toast .bowl-rim {
  position: absolute; bottom: 30%; left: 35%; right: 35%; height: 10%;
  background: linear-gradient(180deg, #e0b070 0%, #c09040 100%);
  border-radius: 50% / 100% 100% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sb-rim 6s ease-in-out infinite;
}
.scn-standing-bowl-toast .bowl-body {
  position: absolute; bottom: 15%; left: 36%; right: 36%; height: 20%;
  background: radial-gradient(ellipse at 50% 20%, #d0a060 0%, #a07030 80%);
  border-radius: 0 0 40% 40% / 0 0 80% 80%; box-shadow: inset 0 -6px 12px rgba(0,0,0,0.4);
  animation: sb-bowl 8s ease-in-out infinite;
}
.scn-standing-bowl-toast .hand-grip {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #c09050 0%, #9c7040 40%, #7a5028 100%);
  border-radius: 20% 40% 40% 20% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: sb-hand 4s ease-in-out infinite alternate;
}
.scn-standing-bowl-toast .sparkle-1 {
  position: absolute; top: 40%; left: 40%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffe090 0%, #ffd080 100%);
  border-radius: 50%; box-shadow: 0 0 12px 2px #ffd080;
  animation: sb-sparkle 3s ease-in-out infinite;
}
.scn-standing-bowl-toast .sparkle-2 {
  position: absolute; top: 45%; left: 55%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffe090 0%, #ffd080 100%);
  border-radius: 50%; box-shadow: 0 0 8px 1px #ffd080;
  animation: sb-sparkle 4s ease-in-out infinite reverse;
}
.scn-standing-bowl-toast .candle-bg {
  position: absolute; top: 10%; right: 15%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #e0a050 0%, #a07030 100%);
  border-radius: 30%; box-shadow: 0 0 24px 6px #e0a050;
  animation: sb-candle 5s ease-in-out infinite alternate;
}
@keyframes sb-marble { 0% { background-position: 0 0; } 100% { background-position: 100px 100px; } }
@keyframes sb-rim { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes sb-bowl { 0%,100% { transform: scale(1); } 50% { transform: scale(1.01) translateY(-1px); } }
@keyframes sb-hand { 0% { transform: translateX(0) rotate(-2deg); } 100% { transform: translateX(5px) rotate(1deg); } }
@keyframes sb-sparkle { 0%,100% { opacity: 0.3; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } }
@keyframes sb-candle { 0% { opacity: 0.6; box-shadow: 0 0 16px 3px #e0a050; } 100% { opacity: 1; box-shadow: 0 0 36px 8px #f0b060; } }

/* ===== THAISA-MODESTY (calm, bright interior, figure profile) ===== */
.scn-thaisa-modesty {
  background:
    radial-gradient(ellipse at 70% 30%, #c8a878 0%, transparent 60%),
    radial-gradient(ellipse at 30% 50%, #e0c090 0%, transparent 50%),
    linear-gradient(180deg, #9c7a58 0%, #c8a070 30%, #b08858 70%, #805a38 100%);
}
.scn-thaisa-modesty .bg-tapestry {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: repeating-linear-gradient(90deg, #a08060 0px, #a08060 4px, #c0a080 4px, #c0a080 8px, #b09070 8px, #b09070 12px);
  opacity: 0.2; border-radius: 0 0 40% 40%; animation: tm-tapestry 40s linear infinite;
}
.scn-thaisa-modesty .bg-panel {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
}
.scn-thaisa-modesty .figure-robe {
  position: absolute; bottom: 5%; left: 45%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #b09060 0%, #8a6a3a 40%, #5a3a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 60% 60%; transform-origin: bottom center;
  animation: tm-robe 12s ease-in-out infinite;
}
.scn-thaisa-modesty .figure-head {
  position: absolute; bottom: 70%; left: 46%; width: 28px; height: 34px;
  background: linear-gradient(180deg, #c0a080 0%, #a07850 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%; transform-origin: bottom center;
  animation: tm-head 10s ease-in-out infinite;
}
.scn-thaisa-modesty .figure-hand {
  position: absolute; bottom: 55%; left: 48%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #c0a080 0%, #a07850 100%);
  border-radius: 30% 30% 20% 20%; transform-origin: top left;
  animation: tm-hand 6s ease-in-out infinite alternate;
}
.scn-thaisa-modesty .diadem {
  position: absolute; bottom: 85%; left: 48%; width: 30px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #e0c070 0%, #c09830 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tm-diadem 8s ease-in-out infinite;
}
.scn-thaisa-modesty .window-light {
  position: absolute; top: 10%; right: 10%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,230,180,0.5) 0%, transparent 70%);
  border-radius: 10% 10% 40% 40%; filter: blur(6px);
  animation: tm-window 8s ease-in-out infinite alternate;
}
.scn-thaisa-modesty .shadow-veil {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 60% 40%, transparent 40%, rgba(0,0,0,0.2) 100%);
  pointer-events: none; animation: tm-veil 15s ease-in-out infinite;
}
@keyframes tm-tapestry { 0% { background-position: 0 0; } 100% { background-position: 100px 0; } }
@keyframes tm-robe { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes tm-head { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes tm-hand { 0% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes tm-diadem { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes tm-window { 0% { opacity: 0.5; } 100% { opacity: 1; } }
@keyframes tm-veil { 0%,100% { opacity: 0.6; } 50% { opacity: 1; } }

/* ===== PERICLES-PLEDGE (two figures, cups raised) ===== */
.scn-pericles-pledge {
  background:
    radial-gradient(ellipse at 50% 40%, #c8a858 0%, transparent 60%),
    radial-gradient(ellipse at 20% 60%, #8c6030 0%, transparent 40%),
    linear-gradient(180deg, #5a3a20 0%, #8a5a30 40%, #4a2a10 100%);
}
.scn-pericles-pledge .bg-column {
  position: absolute; top: 0; left: 10%; right: 10%; height: 60%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 30px, #6a4a2a 30px, #6a4a2a 32px);
  opacity: 0.3;
  animation: pp-column 20s linear infinite;
}
.scn-pericles-pledge .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0a 100%);
  border-radius: 40% 40% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
}
.scn-pericles-pledge .fig-left {
  position: absolute; bottom: 8%; left: 20%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: pp-fig-left 6s ease-in-out infinite;
}
.scn-pericles-pledge .fig-right {
  position: absolute; bottom: 8%; right: 20%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: pp-fig-right 6.5s ease-in-out infinite;
}
.scn-pericles-pledge .cup-left {
  position: absolute; bottom: 40%; left: 25%; width: 14px; height: 20px;
  background: radial-gradient(ellipse at 30% 30%, #f0c870 0%, #c09830 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center; animation: pp-cup-left 4s ease-in-out infinite alternate;
}
.scn-pericles-pledge .cup-right {
  position: absolute; bottom: 40%; right: 25%; width: 14px; height: 20px;
  background: radial-gradient(ellipse at 30% 30%, #f0c870 0%, #c09830 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center; animation: pp-cup-right 4s ease-in-out infinite alternate;
}
.scn-pericles-pledge .cup-clash {
  position: absolute; bottom: 52%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffe090 0%, transparent 70%);
  border-radius: 50%; transform: translateX(-50%);
  animation: pp-clash 4s ease-in-out infinite;
}
.scn-pericles-pledge .light-ray {
  position: absolute; top: 0; left: 40%; right: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,230,180,0.15) 0%, transparent 80%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: pp-ray 8s ease-in-out infinite alternate;
}
.scn-pericles-pledge .dust-motes {
  position: absolute; top: 20%; left: 30%; right: 30%; bottom: 20%;
  background: radial-gradient(circle, rgba(255,220,160,0.2) 0%, transparent 50%);
  filter: blur(4px); animation: pp-dust 6s ease-in-out infinite;
}
@keyframes pp-column { 0% { background-position: 0 0; } 100% { background-position: 100px 0; } }
@keyframes pp-fig-left { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes pp-fig-right { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes pp-cup-left { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes pp-cup-right { 0% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes pp-clash { 0%,100% { opacity: 0; transform: translateX(-50%) scale(0.5); } 50% { opacity: 1; transform: translateX(-50%) scale(1.2); } }
@keyframes pp-ray { 0% { opacity: 0.3; } 100% { opacity: 0.7; } }
@keyframes pp-dust { 0%,100% { opacity: 0.4; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(-5px); } }

/* Scene: antioch-assassin-hired */
.scn-antioch-assassin-hired {
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%);
}
.scn-antioch-assassin-hired .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3c2a1a 0%, #1a0f0a 100%); animation: aa-wall 20s ease-in-out infinite alternate; }
.scn-antioch-assassin-hired .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #0f0500 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-antioch-assassin-hired .table { position:absolute; bottom:25%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #5e3e2e 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-antioch-assassin-hired .vial { position:absolute; bottom:30%; left:40%; width:16px; height:32px; background: linear-gradient(180deg, #4a6a3a 0%, #1a2a1a 100%); border-radius: 40% 40% 30% 30%; box-shadow: inset 0 0 8px #6a8a4a; animation: aa-vial 4s ease-in-out infinite; }
.scn-antioch-assassin-hired .coin { position:absolute; bottom:30%; left:55%; width:24px; height:24px; background: radial-gradient(circle at 40% 40%, #c8a040 0%, #a07820 70%); border-radius:50%; box-shadow: 0 0 12px 2px rgba(200,160,64,.6); animation: aa-coin 6s ease-in-out infinite alternate; }
.scn-antioch-assassin-hired .hand { position:absolute; bottom:20%; left:25%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 20%, #2a1a1a 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aa-hand 3s ease-in-out infinite; }
.scn-antioch-assassin-hired .coin-shadow { position:absolute; bottom:26%; left:52%; width:30px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); border-radius:50%; animation: aa-shadow 6s ease-in-out infinite alternate; }
@keyframes aa-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes aa-vial { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(4deg) } }
@keyframes aa-coin { 0% { transform: rotateY(0deg) scale(1) } 100% { transform: rotateY(180deg) scale(.9) } }
@keyframes aa-hand { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-8px) rotate(4deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes aa-shadow { 0% { opacity:.5; transform: scaleX(1) } 100% { opacity:.3; transform: scaleX(.7) } }

/* Scene: item-poison-and-gold */
.scn-item-poison-and-gold {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 50%, #3a2a4e 100%),
    radial-gradient(ellipse at 30% 50%, #2a1a2e 0%, transparent 70%);
}
.scn-item-poison-and-gold .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a0a1a 100%); animation: pg-deep 12s ease-in-out infinite alternate; }
.scn-item-poison-and-gold .table { position:absolute; bottom:20%; left:5%; right:5%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 6px 20px rgba(0,0,0,.7); }
.scn-item-poison-and-gold .pistol { position:absolute; bottom:25%; left:20%; width:80px; height:18px; background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 10% 10% 40%; transform: rotate(-15deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: pg-pistol 5s ease-in-out infinite; }
.scn-item-poison-and-gold .pouch { position:absolute; bottom:25%; left:60%; width:30px; height:22px; background: radial-gradient(ellipse at 50% 30%, #8a6a3a 0%, #4a2a0a 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: pg-pouch 7s ease-in-out infinite alternate; }
.scn-item-poison-and-gold .vial { position:absolute; bottom:27%; left:80%; width:12px; height:28px; background: linear-gradient(180deg, #3a5a2a 0%, #1a2a0a 100%); border-radius: 30% 30% 20% 20%; box-shadow: inset 0 0 6px #5a8a4a; animation: pg-vial 4s ease-in-out infinite; }
.scn-item-poison-and-gold .hand { position:absolute; bottom:18%; left:10%; width:34px; height:50px; background: radial-gradient(ellipse at 50% 20%, #1a0a0a 0%, #0a0000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pg-hand 3s ease-in-out infinite; }
.scn-item-poison-and-gold .sparkle { position:absolute; bottom:30%; left:55%; width:6px; height:6px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 10px 2px rgba(255,208,128,.5); animation: pg-spark 2s ease-in-out infinite; }
@keyframes pg-deep { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pg-pistol { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes pg-pouch { 0% { transform: scale(1) } 100% { transform: scale(1.05) } }
@keyframes pg-vial { 0%,100% { transform: rotate(0) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } }
@keyframes pg-hand { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-6px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pg-spark { 0% { opacity:.3; transform: scale(1) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:.3; transform: scale(1) } }

/* Scene: tyre-palace-melancholy */
.scn-tyre-palace-melancholy {
  background:
    linear-gradient(180deg, #0f0f1e 0%, #1a1a2e 40%, #2a2a3e 100%),
    radial-gradient(ellipse at 50% 20%, #2a2a4e 0%, transparent 60%);
}
.scn-tyre-palace-melancholy .bg-darkroom { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a14 0%, #16161e 100%); animation: tp-dark 20s ease-in-out infinite alternate; }
.scn-tyre-palace-melancholy .window-frame { position:absolute; top:10%; left:30%; width:100px; height:120px; border: 4px solid #3a2a1a; background: transparent; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-tyre-palace-melancholy .moonlight { position:absolute; top:10%; left:30%; width:100px; height:120px; background: linear-gradient(135deg, rgba(180,180,255,.2) 0%, transparent 60%); border-radius: 4px; animation: tp-moon 12s ease-in-out infinite alternate; }
.scn-tyre-palace-melancholy .chair { position:absolute; bottom:15%; left:45%; width:40px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.7); }
.scn-tyre-palace-melancholy .figure-sil { position:absolute; bottom:20%; left:48%; width:30px; height:70px; background: radial-gradient(ellipse at 50% 20%, #0a0a14 0%, #000005 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tp-figure 8s ease-in-out infinite; }
.scn-tyre-palace-melancholy .candle { position:absolute; bottom:22%; left:60%; width:10px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; }
.scn-tyre-palace-melancholy .flame { position:absolute; bottom:40%; left:60%; width:8px; height:16px; background: radial-gradient(ellipse at 50% 100%, #ffd060 0%, #ff8030 60%, transparent 100%); border-radius: 50% 50% 30% 30%; animation: tp-flame 2s ease-in-out infinite alternate; }
@keyframes tp-dark { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes tp-moon { 0% { opacity:.4; transform: scale(1) } 100% { opacity:.7; transform: scale(1.05) } }
@keyframes tp-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tp-flame { 0% { transform: scaleY(1) translateX(0) } 50% { transform: scaleY(1.2) translateX(1px) } 100% { transform: scaleY(.9) translateX(-1px) } }

/* Scene: tyre-fear-of-antiochus */
.scn-tyre-fear-of-antiochus {
  background:
    linear-gradient(180deg, #0a0a14 0%, #1a0e0e 50%, #2a1414 100%),
    radial-gradient(ellipse at 30% 70%, #3a1a1a 0%, transparent 60%);
}
.scn-tyre-fear-of-antiochus .bg-shadow { position:absolute; inset:0; background: linear-gradient(180deg, #0a0000 0%, #1a0606 100%); animation: tf-shadow 15s ease-in-out infinite alternate; }
.scn-tyre-fear-of-antiochus .door { position:absolute; right:10%; top:20%; width:80px; height:140px; background: linear-gradient(180deg, #2a1a0a 0%, #0f0500 100%); border-radius: 4px; box-shadow: 0 8px 24px rgba(0,0,0,.8); transform-origin: right center; animation: tf-door 6s ease-in-out infinite alternate; }
.scn-tyre-fear-of-antiochus .light-beam { position:absolute; right:20%; top:20%; width:40px; height:140px; background: linear-gradient(90deg, rgba(255,200,100,.3) 0%, transparent 100%); border-radius: 0 4px 4px 0; animation: tf-beam 4s ease-in-out infinite alternate; }
.scn-tyre-fear-of-antiochus .figure-cower { position:absolute; bottom:15%; left:20%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 30%, #0a0a0a 0%, #000000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tf-cower 1s ease-in-out infinite; }
.scn-tyre-fear-of-antiochus .shadow-puppet { position:absolute; bottom:15%; right:30%; width:70px; height:90px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.8) 0%, transparent 80%); border-radius: 50%; filter: blur(3px); animation: tf-puppet 3s ease-in-out infinite alternate; }
.scn-tyre-fear-of-antiochus .crack { position:absolute; top:10%; left:5%; width:3px; height:30px; background: #2a1a0a; border-radius: 2px; animation: tf-crack 10s linear infinite; }
.scn-tyre-fear-of-antiochus .dust { position:absolute; top:40%; left:50%; width:4px; height:4px; background: rgba(200,160,100,.3); border-radius:50%; animation: tf-dust 8s linear infinite; }
.scn-tyre-fear-of-antiochus .tremble { position:absolute; inset:0; background: transparent; animation: tf-tremble 0.5s ease-in-out infinite; }
@keyframes tf-shadow { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes tf-door { 0% { transform: perspective(600px) rotateY(0deg) } 100% { transform: perspective(600px) rotateY(8deg) } }
@keyframes tf-beam { 0% { opacity:.2; transform: scaleX(1) } 100% { opacity:.5; transform: scaleX(1.2) } }
@keyframes tf-cower { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tf-puppet { 0% { transform: scale(1) translateX(0) } 100% { transform: scale(1.1) translateX(5px) } }
@keyframes tf-crack { 0% { transform: translateY(0) } 100% { transform: translateY(100vh) } }
@keyframes tf-dust { 0% { transform: translate(0,0) scale(1); opacity:1 } 100% { transform: translate(20px,-20px) scale(0); opacity:0 } }
@keyframes tf-tremble { 0% { transform: translate(0,0) } 25% { transform: translate(1px,-1px) } 50% { transform: translate(-1px,1px) } 75% { transform: translate(1px,0) } 100% { transform: translate(0,0) } }

/* pericles-storm-prayer */
.scn-pericles-storm-prayer {
  background: linear-gradient(180deg, #0b0e1a 0%, #1a1f3a 40%, #28334a 70%, #0f121c 100%),
              radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 70%);
}
.scn-pericles-storm-prayer .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1c2238 0%, #323e5a 40%, #404f6e 100%);
  animation: psp-sky 8s ease-in-out infinite alternate;
}
.scn-pericles-storm-prayer .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0f1420 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: psp-sea 10s ease-in-out infinite alternate;
}
.scn-pericles-storm-prayer .ship {
  position: absolute; bottom: 35%; left: 50%; width: 120px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #2a1a0a 0%, #4a3220 50%, #2a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: psp-ship 4s ease-in-out infinite;
}
.scn-pericles-storm-prayer .figure {
  position: absolute; bottom: 38%; left: 50%; width: 16px; height: 30px;
  transform: translateX(-50%) translateY(-5px);
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: psp-fig 3s ease-in-out infinite;
}
.scn-pericles-storm-prayer .lightning {
  position: absolute; top: 10%; left: 30%; width: 4px; height: 60px;
  background: #c8dfff;
  filter: blur(1px);
  box-shadow: 0 0 20px 10px rgba(200,223,255,0.5), 0 0 40px 20px rgba(200,223,255,0.2);
  animation: psp-lightning 0.6s steps(2) infinite;
}
.scn-pericles-storm-prayer .wave-1 {
  position: absolute; bottom: 0; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(90deg, #1a2a3a 0%, #2a3a4a 50%, #1a2a3a 100%);
  border-radius: 50%; filter: blur(4px);
  animation: psp-wave1 6s ease-in-out infinite alternate;
}
.scn-pericles-storm-prayer .wave-2 {
  position: absolute; bottom: 10%; right: 5%; width: 100px; height: 16px;
  background: linear-gradient(90deg, #1a2a3a 0%, #2a3a4a 50%, #1a2a3a 100%);
  border-radius: 50%; filter: blur(4px);
  animation: psp-wave2 8s ease-in-out infinite alternate-reverse;
}
.scn-pericles-storm-prayer .cloud {
  position: absolute; top: 12%; right: 20%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: psp-cloud 40s linear infinite;
}
@keyframes psp-sky { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.02); } 100% { opacity: 0.6; transform: scaleY(0.98); } }
@keyframes psp-sea { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes psp-ship { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-2deg) translateY(2px); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); } 75% { transform: translateX(-50%) rotate(-1deg) translateY(1px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes psp-fig { 0% { transform: translateX(-50%) translateY(-5px) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-8px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(-5px) rotate(0deg); } }
@keyframes psp-lightning { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } }
@keyframes psp-wave1 { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(20px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(0.9); } }
@keyframes psp-wave2 { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-15px) scaleX(1.15); } 100% { transform: translateX(0) scaleX(0.95); } }
@keyframes psp-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

/* lychorida-infant */
.scn-lychorida-infant {
  background: linear-gradient(180deg, #0d0d12 0%, #1c1824 30%, #2a1f2e 60%, #0f0d14 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a3e 0%, transparent 60%);
}
.scn-lychorida-infant .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1520 0%, #2a2230 50%, #1a1520 100%);
  animation: lci-wall 20s ease-in-out infinite alternate;
}
.scn-lychorida-infant .bed {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1f1410 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8);
}
.scn-lychorida-infant .queen-cover {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1a10 100%);
  border-radius: 10%;
  filter: blur(2px);
  animation: lci-cover 12s ease-in-out infinite alternate;
}
.scn-lychorida-infant .lychorida {
  position: absolute; bottom: 5%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lci-lych 6s ease-in-out infinite;
}
.scn-lychorida-infant .infant {
  position: absolute; bottom: 12%; left: 40%; width: 18px; height: 22px;
  background: radial-gradient(circle, #c8a080 0%, #7a5a40 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(200,160,128,0.3);
  animation: lci-infant 4s ease-in-out infinite alternate;
}
.scn-lychorida-infant .candle {
  position: absolute; bottom: 25%; left: 55%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #b08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 24px 12px rgba(255,208,128,0.5), 0 0 40px 20px rgba(255,208,128,0.2);
  animation: lci-candle 3s ease-in-out infinite alternate;
}
.scn-lychorida-infant .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: lci-shadow 15s ease-in-out infinite alternate;
}
@keyframes lci-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes lci-cover { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(0.98); } }
@keyframes lci-lych { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes lci-infant { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes lci-candle { 0% { transform: scaleY(1) scaleX(1); opacity: 0.8; } 50% { transform: scaleY(1.1) scaleX(0.9); opacity: 1; } 100% { transform: scaleY(1) scaleX(1); opacity: 0.9; } }
@keyframes lci-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* pericles-baby-blessing */
.scn-pericles-baby-blessing {
  background: linear-gradient(180deg, #0f121a 0%, #1a1f2a 40%, #2a2f3a 70%, #0f0f14 100%),
              radial-gradient(ellipse at 50% 30%, #2a3a4a 0%, transparent 60%);
}
.scn-pericles-baby-blessing .bg-window {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #141a24 0%, #1a2230 100%);
  animation: pbb-bg 15s ease-in-out infinite alternate;
}
.scn-pericles-baby-blessing .storm-outside {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2230 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  filter: blur(4px);
  animation: pbb-storm 8s ease-in-out infinite alternate;
}
.scn-pericles-baby-blessing .pericles {
  position: absolute; bottom: 8%; left: 38%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbb-per 5s ease-in-out infinite;
}
.scn-pericles-baby-blessing .baby {
  position: absolute; bottom: 18%; left: 45%; width: 16px; height: 18px;
  background: radial-gradient(circle, #d4b088 0%, #8a6a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 15px rgba(212,176,136,0.3);
  animation: pbb-baby 4s ease-in-out infinite alternate;
}
.scn-pericles-baby-blessing .aura {
  position: absolute; bottom: 15%; left: 42%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(212,176,136,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: pbb-aura 6s ease-in-out infinite alternate;
}
.scn-pericles-baby-blessing .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a2a22 0%, #1a1a12 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-pericles-baby-blessing .pillar {
  position: absolute; bottom: 0; left: 20%; right: 60%; height: 70%;
  background: linear-gradient(90deg, #3a3a3a 0%, #2a2a2a 50%, #1a1a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.5);
  animation: pbb-pillar 20s ease-in-out infinite alternate;
}
@keyframes pbb-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.65; } }
@keyframes pbb-storm { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-8px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(0.95); } }
@keyframes pbb-per { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes pbb-baby { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(10deg) scale(1.08); } 100% { transform: rotate(-8deg) scale(1); } }
@keyframes pbb-aura { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(1.05); } }
@keyframes pbb-pillar { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

/* sailors-command */
.scn-sailors-command {
  background: linear-gradient(180deg, #0a0e1a 0%, #161e2e 40%, #1e2a3a 70%, #0a0c12 100%),
              radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 70%);
}
.scn-sailors-command .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #141c2a 0%, #1c2434 50%, #242c3e 100%);
  animation: sc-sky 10s ease-in-out infinite alternate;
}
.scn-sailors-command .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0f1824 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
  animation: sc-sea 12s ease-in-out infinite alternate;
}
.scn-sailors-command .ship-deck {
  position: absolute; bottom: 25%; left: 50%; width: 140px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #2a1a0a 0%, #4a3220 50%, #2a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: sc-deck 4s ease-in-out infinite;
}
.scn-sailors-command .queen {
  position: absolute; bottom: 28%; left: 52%; width: 18px; height: 38px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a4230 0%, #5a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px 2px rgba(0,0,0,0.5);
  animation: sc-queen 3s ease-in-out infinite alternate;
}
.scn-sailors-command .sail-1 {
  position: absolute; bottom: 24%; left: 42%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1414 100%);
  border-radius: 40%;
  transform-origin: bottom center;
  animation: sc-sail1 5s ease-in-out infinite;
}
.scn-sailors-command .sail-2 {
  position: absolute; bottom: 24%; left: 58%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1414 100%);
  border-radius: 40%;
  transform-origin: bottom center;
  animation: sc-sail2 5s ease-in-out infinite -2s;
}
.scn-sailors-command .wave {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 20px;
  background: linear-gradient(90deg, #1a2a3a 0%, #2a3a4a 50%, #1a2a3a 100%);
  border-radius: 50%; filter: blur(3px);
  animation: sc-wave 7s ease-in-out infinite alternate;
}
.scn-sailors-command .lightning {
  position: absolute; top: 8%; left: 60%; width: 3px; height: 50px;
  background: #c8d0e0;
  filter: blur(1px);
  box-shadow: 0 0 20px 8px rgba(200,208,224,0.4), 0 0 40px 16px rgba(200,208,224,0.15);
  animation: sc-lightning 0.5s steps(2) infinite;
}
@keyframes sc-sky { 0% { opacity: 0.6; } 50% { opacity: 0.85; } 100% { opacity: 0.55; } }
@keyframes sc-sea { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(1.5deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sc-deck { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(-3deg) translateY(3px); } 60% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes sc-queen { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg) translateX(-3px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes sc-sail1 { 0% { transform: rotate(0deg); } 25% { transform: rotate(-8deg) translateY(2px); } 50% { transform: rotate(0deg); } 75% { transform: rotate(6deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes sc-sail2 { 0% { transform: rotate(0deg); } 25% { transform: rotate(6deg) translateY(-1px); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-8deg) translateY(2px); } 100% { transform: rotate(0deg); } }
@keyframes sc-wave { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-20px) scaleY(1.2); } 100% { transform: translateX(0) scaleY(0.9); } }
@keyframes sc-lightning { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } }

.scn-thaisa-witnesses { background: linear-gradient(180deg, #f5e6d0 0%, #d9c3a0 50%, #b8a080 100%), radial-gradient(ellipse at 30% 40%, #fff7e6 0%, transparent 60%); }
.scn-thaisa-witnesses .bg { position:absolute; inset:0; background: linear-gradient(135deg, #f2e8d6 0%, #e0cbb0 100%); }
.scn-thaisa-witnesses .wall { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #d9c3a0 0%, #c9b08a 100%); border-bottom:4px solid #a08060; }
.scn-thaisa-witnesses .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); }
.scn-thaisa-witnesses .window { position:absolute; top:15%; left:20%; width:22%; height:45%; background: linear-gradient(180deg, #b8d0e0 0%, #e0f0ff 100%); border:6px solid #5a4a30; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,240,0.3); animation: th-window 8s ease-in-out infinite alternate; }
.scn-thaisa-witnesses .candle { position:absolute; bottom:35%; left:55%; width:6px; height:20px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a060 100%); border-radius:3px 3px 2px 2px; }
.scn-thaisa-witnesses .father-silhouette { position:absolute; bottom:0; left:30%; width:80px; height:140px; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: th-figure 6s ease-in-out infinite; }
.scn-thaisa-witnesses .daughter-silhouette { position:absolute; bottom:0; left:50%; width:70px; height:120px; background: radial-gradient(ellipse at 50% 45%, #4a3a2a 0%, #2a1a0a 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; animation: th-figure 7s ease-in-out infinite 0.5s; }
.scn-thaisa-witnesses .table { position:absolute; bottom:15%; left:40%; width:30%; height:10px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
@keyframes th-window { 0% { opacity:0.8; box-shadow: inset 0 0 15px rgba(255,255,240,0.2); } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(255,255,240,0.5); } 100% { opacity:0.85; box-shadow: inset 0 0 20px rgba(255,255,240,0.3); } }
@keyframes th-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-simonides-consent { background: linear-gradient(180deg, #f0e6d8 0%, #d8c8b0 40%, #b8a080 100%), radial-gradient(ellipse at 70% 30%, #fff8ec 0%, transparent 60%); }
.scn-simonides-consent .bg { position:absolute; inset:0; background: linear-gradient(135deg, #f2e8d6 0%, #e0cbb0 100%); }
.scn-simonides-consent .throne { position:absolute; bottom:5%; left:10%; width:25%; height:60%; background: linear-gradient(180deg, #c0a070 0%, #8a6a40 100%); border-radius:10% 10% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.3); }
.scn-simonides-consent .king-silhouette { position:absolute; bottom:20%; left:15%; width:60px; height:130px; background: radial-gradient(ellipse at 50% 35%, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: si-king 8s ease-in-out infinite; }
.scn-simonides-consent .daughter-silhouette { position:absolute; bottom:5%; left:35%; width:55px; height:110px; background: radial-gradient(ellipse at 50% 45%, #4a3a2a 0%, #2a1a0a 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; animation: si-figure 7s ease-in-out infinite 0.3s; }
.scn-simonides-consent .suitor-silhouette { position:absolute; bottom:5%; left:55%; width:60px; height:115px; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: si-figure 7s ease-in-out infinite 0.8s; }
.scn-simonides-consent .column { position:absolute; top:0; right:15%; width:6%; height:100%; background: linear-gradient(180deg, #d9c8b0 0%, #a08060 50%, #d9c8b0 100%); border-radius:4px; }
.scn-simonides-consent .ray { position:absolute; top:0; left:50%; width:60%; height:70%; background: linear-gradient(180deg, rgba(255,255,240,0.3) 0%, rgba(255,255,240,0) 100%); clip-path: polygon(30% 0, 70% 0, 80% 100%, 20% 100%); animation: si-ray 10s ease-in-out infinite alternate; }
@keyframes si-king { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes si-figure { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(0); } }
@keyframes si-ray { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-pericles-accepts { background: linear-gradient(180deg, #f5e6d0 0%, #d9c3a0 50%, #b8a080 100%), radial-gradient(ellipse at 50% 60%, #fff7e6 0%, transparent 60%); }
.scn-pericles-accepts .bg { position:absolute; inset:0; background: linear-gradient(135deg, #f2e8d6 0%, #e0cbb0 100%); }
.scn-pericles-accepts .canopy { position:absolute; top:0; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #c0a880 0%, #a08060 100%); border-radius:40% 40% 0 0; animation: pe-canopy 12s ease-in-out infinite alternate; }
.scn-pericles-accepts .bedpost-left { position:absolute; bottom:5%; left:22%; width:4%; height:60%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius:4px; }
.scn-pericles-accepts .bedpost-right { position:absolute; bottom:5%; right:22%; width:4%; height:60%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius:4px; }
.scn-pericles-accepts .bride-silhouette { position:absolute; bottom:30%; left:38%; width:55px; height:100px; background: radial-gradient(ellipse at 50% 45%, #5a4a3a 0%, #2a1a0a 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; animation: pe-bride 6s ease-in-out infinite; }
.scn-pericles-accepts .groom-silhouette { position:absolute; bottom:30%; right:38%; width:60px; height:105px; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: pe-groom 6s ease-in-out infinite 0.5s; }
.scn-pericles-accepts .candle { position:absolute; bottom:60%; left:50%; width:8px; height:25px; background: linear-gradient(180deg, #e8d0a0 0%, #c0a060 100%); border-radius:4px 4px 2px 2px; }
.scn-pericles-accepts .candle-flame { position:absolute; bottom:82%; left:50%; width:10px; height:14px; margin-left:-5px; background: radial-gradient(circle, #ffd060 0%, #ffa030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px #ffd060; animation: pe-flame 2s ease-in-out infinite alternate; }
@keyframes pe-canopy { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes pe-bride { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pe-groom { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes pe-flame { 0% { transform: scale(0.9); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.85; } }

.scn-gower-narrative-marriage { background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 50%, #000000 100%), radial-gradient(ellipse at 50% 20%, #2a2a4e 0%, transparent 70%); }
.scn-gower-narrative-marriage .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1e1e32 0%, #0a0a14 100%); }
.scn-gower-narrative-marriage .window { position:absolute; top:15%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #2a3a5e 0%, #3a4a6e 100%); border:4px solid #3a3a4a; border-radius:6px; box-shadow: inset 0 0 20px rgba(100,130,200,0.2); }
.scn-gower-narrative-marriage .moonbeam { position:absolute; top:15%; left:12%; width:26%; height:60%; background: linear-gradient(135deg, rgba(180,200,255,0.15) 0%, rgba(180,200,255,0) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: go-moon 15s ease-in-out infinite alternate; }
.scn-gower-narrative-marriage .cat-silhouette { position:absolute; bottom:30%; left:20%; width:40px; height:30px; background: #1a1a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: go-cat 4s ease-in-out infinite; }
.scn-gower-narrative-marriage .cat-silhouette::before { content:''; position:absolute; top:-30px; left:50%; width:4px; height:30px; background:#1a1a2a; border-radius:2px; transform-origin: bottom center; animation: go-cat-tail 3s ease-in-out infinite; }
.scn-gower-narrative-marriage .cricket { position:absolute; bottom:20%; right:25%; width:8px; height:12px; background: #3a4a2a; border-radius:50% 50% 0 0; animation: go-cricket 1.5s ease-in-out infinite; }
.scn-gower-narrative-marriage .oven { position:absolute; bottom:5%; right:10%; width:15%; height:25%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius:10% 10% 5% 5%; box-shadow: inset 0 0 20px #8a4a1a; animation: go-oven 5s ease-in-out infinite alternate; }
.scn-gower-narrative-marriage .mound-left { position:absolute; bottom:2%; left:10%; width:25%; height:20%; background: radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, #111122 100%); border-radius:50% 50% 0 0; }
.scn-gower-narrative-marriage .mound-right { position:absolute; bottom:2%; right:10%; width:20%; height:18%; background: radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, #111122 100%); border-radius:50% 50% 0 0; }
@keyframes go-moon { 0% { opacity:0.3; transform: translateX(-5px); } 50% { opacity:0.6; transform: translateX(5px); } 100% { opacity:0.4; transform: translateX(-3px); } }
@keyframes go-cat { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes go-cat-tail { 0% { transform: rotate(-15deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-15deg); } }
@keyframes go-cricket { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(0.8) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes go-oven { 0% { box-shadow: inset 0 0 15px #8a4a1a; } 50% { box-shadow: inset 0 0 30px #b06020; } 100% { box-shadow: inset 0 0 18px #8a4a1a; } }

.scn-antioch-palace-intro { background: linear-gradient(180deg, #3a2a1a 0%, #6a4a3a 30%, #8a6a4a 60%, #7a5a3a 100%), radial-gradient(ellipse at 50% 0%, #b08a5a 0%, transparent 70%); }

.scn-antioch-palace-intro .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 22%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); box-shadow: inset 0 8px 20px rgba(0, 0, 0, 0.6); }

.scn-antioch-palace-intro .col-l { position: absolute; bottom: 22%; left: 10%; width: 10%; height: 60%; background: linear-gradient(180deg, #b09a7a 0%, #8a7a5a 50%, #6a5a3a 100%); border-radius: 4% 4% 0 0; box-shadow: 4px 0 12px rgba(0, 0, 0, 0.3); animation: api-col 6s ease-in-out infinite alternate; }

.scn-antioch-palace-intro .col-r { position: absolute; bottom: 22%; right: 10%; width: 10%; height: 60%; background: linear-gradient(180deg, #b09a7a 0%, #8a7a5a 50%, #6a5a3a 100%); border-radius: 4% 4% 0 0; box-shadow: -4px 0 12px rgba(0, 0, 0, 0.3); animation: api-col 6s ease-in-out infinite alternate-reverse; }

.scn-antioch-palace-intro .arch { position: absolute; bottom: 35%; left: 20%; right: 20%; height: 45%; background: linear-gradient(180deg, #c0a87a 0%, #a08a5a 60%, #7a6a3a 100%); clip-path: ellipse(50% 60% at 50% 100%); box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.4); animation: api-arch 9s ease-in-out infinite alternate; }

.scn-antioch-palace-intro .throne { position: absolute; bottom: 22%; left: 38%; right: 38%; height: 28%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 8% 8% / 60% 60% 20% 20%; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.7); animation: api-throne 12s ease-in-out infinite alternate; }

.scn-antioch-palace-intro .figure-king { position: absolute; bottom: 30%; left: 42%; width: 8%; height: 22%; background: linear-gradient(180deg, #5a2a1a 0%, #3a1810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); animation: api-king 5s ease-in-out infinite alternate; }

.scn-antioch-palace-intro .figure-prince { position: absolute; bottom: 24%; left: 30%; width: 6%; height: 18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.4); animation: api-prince 4s ease-in-out infinite alternate; }

.scn-antioch-palace-intro .torch-l { position: absolute; bottom: 65%; left: 12%; width: 3%; height: 8%; background: linear-gradient(180deg, #c06020 0%, #8a3a10 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 24px 8px #c06020, 0 0 48px 16px rgba(192, 96, 32, 0.4); animation: api-torch 2s ease-in-out infinite alternate; }

.scn-antioch-palace-intro .torch-r { position: absolute; bottom: 65%; right: 12%; width: 3%; height: 8%; background: linear-gradient(180deg, #c06020 0%, #8a3a10 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 24px 8px #c06020, 0 0 48px 16px rgba(192, 96, 32, 0.4); animation: api-torch 2.5s ease-in-out infinite alternate-reverse; }

@keyframes api-col { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.02); opacity: 1; } 100% { transform: scaleY(0.98); opacity: 0.85; } }

@keyframes api-arch { 0% { opacity: 0.85; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.01); } 100% { opacity: 0.9; transform: scaleX(0.99); } }

@keyframes api-throne { 0% { box-shadow: 0 6px 16px rgba(0, 0, 0, 0.7); } 50% { box-shadow: 0 8px 24px rgba(0, 0, 0, 0.8); } 100% { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6); } }

@keyframes api-king { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(1deg); } 70% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }

@keyframes api-prince { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 40% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(-3px) translateY(0) rotate(-2deg); } }

@keyframes api-torch { 0% { box-shadow: 0 0 18px 4px #c06020, 0 0 36px 8px rgba(192, 96, 32, 0.3); opacity: 0.8; } 50% { box-shadow: 0 0 30px 10px #e08030, 0 0 60px 18px rgba(224, 128, 48, 0.5); opacity: 1; } 100% { box-shadow: 0 0 22px 6px #c06020, 0 0 44px 12px rgba(192, 96, 32, 0.35); opacity: 0.85; } }

/* Daughter entrance */
.scn-daughter-entrance-admiration { background: linear-gradient(180deg, #c0a87a 0%, #d0b88a 30%, #e0c8a0 60%, #d0b88a 100%), radial-gradient(ellipse at 50% 0%, #f0d8b0 0%, transparent 70%); }

.scn-daughter-entrance-admiration .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 18%; background: linear-gradient(180deg, #b09870 0%, #8a7a5a 100%); box-shadow: inset 0 8px 20px rgba(0, 0, 0, 0.2); }

.scn-daughter-entrance-admiration .wall-bg { position: absolute; bottom: 18%; left: 0; right: 0; height: 82%; background: linear-gradient(180deg, #e0c8a0 0%, #c8b088 100%); opacity: 0.6; }

.scn-daughter-entrance-admiration .arch-d { position: absolute; bottom: 28%; left: 30%; right: 30%; height: 55%; background: linear-gradient(180deg, #f0d8b0 0%, #e0c8a0 60%, #c8b088 100%); clip-path: ellipse(50% 60% at 50% 100%); box-shadow: inset 0 0 40px rgba(255, 215, 140, 0.3); animation: dea-arch 10s ease-in-out infinite alternate; }

.scn-daughter-entrance-admiration .figure-daughter { position: absolute; bottom: 18%; left: 42%; width: 10%; height: 38%; background: linear-gradient(180deg, #f0d8b0 0%, #e0c09a 30%, #d0a880 70%, #c09870 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; box-shadow: 0 0 30px 10px rgba(240, 200, 140, 0.3); animation: dea-figure 8s ease-in-out infinite alternate; }

.scn-daughter-entrance-admiration .veil { position: absolute; bottom: 38%; left: 40%; right: 40%; height: 30%; background: linear-gradient(180deg, rgba(255, 235, 200, 0.6) 0%, rgba(255, 235, 200, 0.1) 100%); clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%); filter: blur(2px); animation: dea-veil 6s ease-in-out infinite alternate; }

.scn-daughter-entrance-admiration .light-ray { position: absolute; bottom: 20%; left: 35%; right: 35%; height: 80%; background: linear-gradient(180deg, rgba(255, 240, 200, 0.3) 0%, rgba(255, 240, 200, 0) 100%); clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%); filter: blur(4px); animation: dea-light 5s ease-in-out infinite alternate; }

.scn-daughter-entrance-admiration .petal { position: absolute; width: 1.5%; height: 1.5%; border-radius: 50% 0% 50% 0%; background: radial-gradient(circle, #f0c8a0 0%, #e0b080 100%); opacity: 0.7; }

.scn-daughter-entrance-admiration .petal-a { bottom: 40%; left: 30%; animation: dea-petal-fall 12s linear infinite; }

.scn-daughter-entrance-admiration .petal-b { bottom: 60%; left: 55%; animation: dea-petal-fall 15s linear infinite 3s; }

.scn-daughter-entrance-admiration .petal-c { bottom: 50%; left: 20%; animation: dea-petal-fall 18s linear infinite 6s; }

@keyframes dea-arch { 0% { opacity: 0.9; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.85; transform: scaleY(0.98); } }

@keyframes dea-figure { 0% { transform: translateY(0) rotate(0deg); opacity: 0.9; } 50% { transform: translateY(-4px) rotate(2deg); opacity: 1; } 100% { transform: translateY(2px) rotate(-1deg); opacity: 0.85; } }

@keyframes dea-veil { 0% { transform: translateX(0) rotate(-2deg); opacity: 0.5; } 50% { transform: translateX(3px) rotate(2deg); opacity: 0.8; } 100% { transform: translateX(-3px) rotate(0deg); opacity: 0.6; } }

@keyframes dea-light { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

@keyframes dea-petal-fall { 0% { transform: translateY(-10vh) rotate(0deg) scale(1); opacity: 0; } 10% { opacity: 0.7; } 50% { transform: translateY(30vh) rotate(180deg) scale(0.8); opacity: 0.5; } 90% { opacity: 0.3; } 100% { transform: translateY(70vh) rotate(360deg) scale(0.5); opacity: 0; } }

/* Pericles declaration of love */
.scn-pericles-declaration-love { background: linear-gradient(180deg, #d0b898 0%, #e0c8a8 30%, #f0d8b8 60%, #e0c8a8 100%), radial-gradient(ellipse at 50% 50%, #f8e0c0 0%, transparent 70%); }

.scn-pericles-declaration-love .wall { position: absolute; bottom: 20%; left: 0; right: 0; height: 80%; background: linear-gradient(90deg, #b09878 0%, #d0b898 30%, #e0c8a8 50%, #d0b898 70%, #b09878 100%); }

.scn-pericles-declaration-love .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #a08868 0%, #8a7050 100%); box-shadow: inset 0 8px 20px rgba(0, 0, 0, 0.2); }

.scn-pericles-declaration-love .window { position: absolute; bottom: 60%; left: 38%; right: 38%; height: 30%; background: linear-gradient(180deg, #f8e8c8 0%, #e0d0b0 100%); clip-path: ellipse(50% 100% at 50% 100%); box-shadow: 0 0 40px 12px rgba(248, 232, 200, 0.3); animation: pdl-window 8s ease-in-out infinite alternate; }

.scn-pericles-declaration-love .figure-per { position: absolute; bottom: 20%; left: 34%; 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; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4); animation: pdl-pericles 5s ease-in-out infinite alternate; }

.scn-pericles-declaration-love .figure-d { position: absolute; bottom: 20%; left: 52%; width: 8%; height: 30%; background: linear-gradient(180deg, #f0d0b0 0%, #e0c09a 50%, #d0b088 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); animation: pdl-daughter 5s ease-in-out infinite alternate-reverse; }

.scn-pericles-declaration-love .glow-heart { position: absolute; bottom: 32%; left: 46%; width: 4%; height: 4%; background: radial-gradient(circle, #f0a080 0%, #e08060 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(240, 160, 128, 0.4), 0 0 60px 20px rgba(240, 160, 128, 0.2); animation: pdl-heart 4s ease-in-out infinite alternate; }

.scn-pericles-declaration-love .petal-drift { position: absolute; width: 1.2%; height: 1.2%; border-radius: 50% 0% 50% 0%; background: radial-gradient(circle, #f0c0a0 0%, #e0a880 100%); }

.scn-pericles-declaration-love .petal-d1 { bottom: 40%; left: 25%; animation: pdl-petal 14s linear infinite; }

.scn-pericles-declaration-love .petal-d2 { bottom: 55%; left: 60%; animation: pdl-petal 18s linear infinite 5s; }

@keyframes pdl-window { 0% { opacity: 0.8; box-shadow: 0 0 30px 8px rgba(248, 232, 200, 0.2); } 50% { opacity: 1; box-shadow: 0 0 50px 16px rgba(248, 232, 200, 0.4); } 100% { opacity: 0.85; box-shadow: 0 0 35px 10px rgba(248, 232, 200, 0.25); } }

@keyframes pdl-pericles { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 40% { transform: translateX(2px) translateY(-2px) rotate(3deg); } 80% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

@keyframes pdl-daughter { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 40% { transform: translateX(-2px) translateY(-2px) rotate(-3deg); } 80% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

@keyframes pdl-heart { 0% { transform: scale(0.8); opacity: 0.6; box-shadow: 0 0 20px 6px rgba(240, 160, 128, 0.3), 0 0 40px 12px rgba(240, 160, 128, 0.1); } 50% { transform: scale(1.2); opacity: 1; box-shadow: 0 0 40px 14px rgba(240, 160, 128, 0.5), 0 0 80px 24px rgba(240, 160, 128, 0.2); } 100% { transform: scale(0.9); opacity: 0.7; box-shadow: 0 0 25px 8px rgba(240, 160, 128, 0.35), 0 0 50px 16px rgba(240, 160, 128, 0.15); } }

@keyframes pdl-petal { 0% { transform: translateY(-10vh) rotate(0deg) scale(1); opacity: 0; } 10% { opacity: 0.6; } 50% { transform: translateY(40vh) rotate(240deg) scale(0.7); opacity: 0.4; } 90% { opacity: 0.2; } 100% { transform: translateY(80vh) rotate(480deg) scale(0.4); opacity: 0; } }

/* Hesperides warning */
.scn-hesperides-warning { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #6a3a2a 60%, #5a2a1a 100%), radial-gradient(ellipse at 50% 0%, #7a4a2a 0%, transparent 70%); }

.scn-hesperides-warning .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 18%; background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%); box-shadow: inset 0 8px 20px rgba(0, 0, 0, 0.7); }

.scn-hesperides-warning .wall-dark { position: absolute; bottom: 18%; left: 0; right: 0; height: 82%; background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 50%, #2a0a00 100%); box-shadow: inset 0 20px 40px rgba(0, 0, 0, 0.5); }

.scn-hesperides-warning .tree { position: absolute; bottom: 18%; left: 38%; right: 38%; height: 50%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); clip-path: polygon(45% 0%, 55% 0%, 60% 30%, 65% 60%, 60% 100%, 40% 100%, 35% 60%, 40% 30%); box-shadow: 0 0 20px 6px rgba(0, 0, 0, 0.4); animation: hw-tree 14s ease-in-out infinite alternate; }

.scn-hesperides-warning .fruit-glow { position: absolute; bottom: 38%; left: 46%; right: 46%; height: 6%; background: radial-gradient(circle, #f0c040 0%, #d0a030 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(240, 192, 64, 0.5), 0 0 60px 20px rgba(240, 192, 64, 0.2); animation: hw-fruit 3s ease-in-out infinite alternate; }

.scn-hesperides-warning .dragon-shadow { position: absolute; bottom: 40%; left: 20%; right: 20%; height: 50%; background: linear-gradient(180deg, rgba(180, 60, 40, 0.3) 0%, rgba(180, 60, 40, 0.1) 50%, transparent 100%); clip-path: polygon(20% 100%, 40% 20%, 50% 10%, 60% 20%, 80% 100%, 70% 100%, 55% 40%, 45% 40%, 30% 100%); filter: blur(6px); animation: hw-dragon 7s ease-in-out infinite alternate; }

.scn-hesperides-warning .figure-per { position: absolute; bottom: 18%; left: 32%; width: 7%; height: 24%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.6); animation: hw-pericles 5s ease-in-out infinite alternate; }

.scn-hesperides-warning .figure-ant { position: absolute; bottom: 18%; left: 56%; width: 8%; height: 26%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.6); animation: hw-antiochus 6s ease-in-out infinite alternate-reverse; }

.scn-hesperides-warning .warning-rune { position: absolute; bottom: 25%; left: 46%; width: 3%; height: 4%; background: radial-gradient(circle, #c06020 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 4px rgba(192, 96, 32, 0.4); animation: hw-rune 8s ease-in-out infinite; }

@keyframes hw-tree { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.02) scaleX(0.98); opacity: 0.9; } 100% { transform: scaleY(0.98) scaleX(1.02); opacity: 0.7; } }

@keyframes hw-fruit { 0% { box-shadow: 0 0 20px 6px rgba(240, 192, 64, 0.3), 0 0 40px 12px rgba(240, 192, 64, 0.1); opacity: 0.7; } 50% { box-shadow: 0 0 40px 14px rgba(240, 192, 64, 0.6), 0 0 80px 24px rgba(240, 192, 64, 0.3); opacity: 1; } 100% { box-shadow: 0 0 25px 8px rgba(240, 192, 64, 0.35), 0 0 50px 16px rgba(240, 192, 64, 0.15); opacity: 0.8; } }

@keyframes hw-dragon { 0% { transform: translateX(0) scaleX(1); opacity: 0.3; } 50% { transform: translateX(4px) scaleX(1.05); opacity: 0.6; } 100% { transform: translateX(-4px) scaleX(0.95); opacity: 0.2; } }

@keyframes hw-pericles { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(2px) rotate(-2deg); } 70% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

@keyframes hw-antiochus { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-2px) rotate(2deg); } 70% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }

@keyframes hw-rune { 0% { transform: scale(0.8) rotate(0deg); opacity: 0.4; } 25% { transform: scale(1.1) rotate(90deg); opacity: 0.8; } 50% { transform: scale(1) rotate(180deg); opacity: 0.6; } 75% { transform: scale(1.2) rotate(270deg); opacity: 0.9; } 100% { transform: scale(0.9) rotate(360deg); opacity: 0.3; } }

.scn-pericles-identity {
  background: linear-gradient(180deg, #f2e8d0 0%, #d4c4a8 40%, #b8a688 100%),
              radial-gradient(ellipse at 50% 20%, #fff8e6 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-pericles-identity .wall { position:absolute; inset:0; background: linear-gradient(135deg, #e8ddd0 0%, #c8baa8 100%); }
.scn-pericles-identity .window { position:absolute; top:15%; left:10%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 30%, #ffe8b0 0%, #d4c090 40%, transparent 60%); border-radius:4% 4% 2% 2%; box-shadow: inset 0 0 40px 10px rgba(255,232,176,0.3); animation: p1-window 4s ease-in-out infinite alternate; }
.scn-pericles-identity .curtain { position:absolute; top:10%; left:8%; width:34%; height:50%; background: linear-gradient(90deg, rgba(180,160,140,0.8) 0%, rgba(200,180,160,0.4) 50%, transparent 100%); filter: blur(4px); animation: p1-curtain 12s ease-in-out infinite; }
.scn-pericles-identity .figure { position:absolute; bottom:20%; right:20%; width:22px; height:50px; background: linear-gradient(180deg, #3a2e24 0%, #1a1410 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: p1-figure 5s ease-in-out infinite alternate; }
.scn-pericles-identity .table { position:absolute; bottom:18%; right:10%; width:60px; height:8px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 2px 2px 0 0; }
.scn-pericles-identity .lamp { position:absolute; bottom:26%; right:12%; width:8px; height:14px; background: radial-gradient(ellipse at 50% 20%, #f0c868 0%, #c08030 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px rgba(240,200,104,0.5); animation: p1-lamp 3s ease-in-out infinite alternate; }
.scn-pericles-identity .dust { position:absolute; top:30%; left:45%; width:3px; height:3px; background: #fff8e0; border-radius: 50%; filter: blur(1px); animation: p1-dust 15s linear infinite; }
@keyframes p1-window { 0% { opacity:0.9; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:0.85; transform: scale(0.98); } }
@keyframes p1-curtain { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(2px) rotate(-0.5deg); } }
@keyframes p1-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes p1-lamp { 0% { box-shadow: 0 0 15px 4px rgba(240,200,104,0.4); } 50% { box-shadow: 0 0 25px 8px rgba(240,200,104,0.7); } 100% { box-shadow: 0 0 18px 5px rgba(240,200,104,0.5); } }
@keyframes p1-dust { 0% { transform: translate(0,0) scale(1); opacity:0; } 10% { opacity:0.8; } 90% { opacity:0.6; } 100% { transform: translate(30px, -40px) scale(0.5); opacity:0; } }

.scn-knights-dance {
  background: linear-gradient(180deg, #4a2a1a 0%, #7a4a2a 30%, #c08050 60%, #e8c090 100%),
              radial-gradient(ellipse at 50% 30%, #f0d090 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-knights-dance .bg-hall { position:absolute; inset:0; background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 40%, #8a5a3a 100%); }
.scn-knights-dance .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-knights-dance .knight-left { position:absolute; bottom:15%; left:28%; width:30px; height:60px; background: linear-gradient(180deg, #806050 0%, #403028 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: kd-left 2s ease-in-out infinite; }
.scn-knights-dance .knight-right { position:absolute; bottom:15%; right:28%; width:30px; height:62px; background: linear-gradient(180deg, #705040 0%, #302018 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: kd-right 2.2s ease-in-out infinite; }
.scn-knights-dance .chandelier { position:absolute; top:5%; left:50%; width:40px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #f0c868 0%, #c08030 50%, transparent 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 10px rgba(240,200,104,0.5); animation: kd-chandelier 4s ease-in-out infinite alternate; }
.scn-knights-dance .sparkle-1 { position:absolute; top:12%; left:35%; width:4px; height:4px; background: #ffe8b0; border-radius: 50%; filter: blur(1px); animation: kd-sparkle 3s ease-in-out infinite; }
.scn-knights-dance .sparkle-2 { position:absolute; top:8%; right:30%; width:3px; height:3px; background: #ffe8b0; border-radius: 50%; filter: blur(1px); animation: kd-sparkle 3s ease-in-out infinite 1.5s; }
@keyframes kd-left { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(5deg) translateY(-2px); } 50% { transform: translateX(0) rotate(0deg) translateY(0); } 75% { transform: translateX(-8px) rotate(-5deg) translateY(-2px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kd-right { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-8px) rotate(-5deg) translateY(-2px); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(8px) rotate(5deg) translateY(-2px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kd-chandelier { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes kd-sparkle { 0%,100% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.5); } }

.scn-dance-conclusion {
  background: linear-gradient(180deg, #5a3020 0%, #8a5030 30%, #c08050 60%, #e8c090 100%),
              radial-gradient(ellipse at 50% 40%, #f0d0a0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-dance-conclusion .bg-stage { position:absolute; inset:0; background: linear-gradient(180deg, #4a2010 0%, #6a3a1a 40%, #a06040 100%); }
.scn-dance-conclusion .curtain-left { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(90deg, #802020 0%, #a03030 50%, transparent 100%); filter: blur(2px); animation: dc-curtain-left 6s ease-in-out infinite; }
.scn-dance-conclusion .curtain-right { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(270deg, #802020 0%, #a03030 50%, transparent 100%); filter: blur(2px); animation: dc-curtain-right 6s ease-in-out infinite 0.5s; }
.scn-dance-conclusion .bow-figure { position:absolute; bottom:15%; left:30%; width:24px; height:40px; background: linear-gradient(180deg, #604830 0%, #302018 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: dc-bow 4s ease-in-out infinite; }
.scn-dance-conclusion .stand-figure { position:absolute; bottom:15%; right:30%; width:22px; height:50px; background: linear-gradient(180deg, #705040 0%, #403028 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; animation: dc-stand 3s ease-in-out infinite; }
.scn-dance-conclusion .footlight { position:absolute; bottom:5%; left:20%; width:60%; height:8px; background: linear-gradient(90deg, transparent, #f0c868 20%, #f0c868 80%, transparent); filter: blur(4px); animation: dc-footlight 5s ease-in-out infinite alternate; }
.scn-dance-conclusion .glow-spot { position:absolute; top:10%; left:30%; width:40%; height:60%; background: radial-gradient(ellipse at 50% 0%, rgba(240,200,104,0.3) 0%, transparent 70%); animation: dc-glow 8s ease-in-out infinite alternate; }
@keyframes dc-curtain-left { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-5px); } }
@keyframes dc-curtain-right { 0%,100% { transform: translateX(0); } 50% { transform: translateX(5px); } }
@keyframes dc-bow { 0% { transform: rotate(0deg); } 25% { transform: rotate(30deg) translateY(5px); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-30deg) translateY(5px); } 100% { transform: rotate(0deg); } }
@keyframes dc-stand { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dc-footlight { 0% { opacity:0.8; filter: blur(4px); } 50% { opacity:1; filter: blur(3px); } 100% { opacity:0.9; filter: blur(5px); } }
@keyframes dc-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.6; transform: scale(0.95); } }

.scn-rest-retire {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 30%, #2a2a4e 60%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 20%, #3a3a5e 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-rest-retire .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #080820 0%, #1a1a38 100%); }
.scn-rest-retire .bed { position:absolute; bottom:10%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0a08 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 4px 12px rgba(0,0,0,0.6); }
.scn-rest-retire .sleeper { position:absolute; bottom:15%; left:35%; width:18px; height:35px; background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rr-sleeper 6s ease-in-out infinite alternate; }
.scn-rest-retire .window-moon { position:absolute; top:12%; right:12%; width:25%; height:35%; background: radial-gradient(ellipse at 50% 30%, #a0a0c0 0%, #606080 40%, transparent 60%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 30px 8px rgba(160,160,192,0.3); animation: rr-moon 8s ease-in-out infinite alternate; }
.scn-rest-retire .candle { position:absolute; bottom:22%; left:15%; width:6px; height:16px; background: linear-gradient(180deg, #e8c040 0%, #c08020 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; }
.scn-rest-retire .candle-glow { position:absolute; bottom:24%; left:15%; width:20px; height:20px; background: radial-gradient(circle, rgba(232,192,64,0.6) 0%, rgba(232,192,64,0) 100%); border-radius: 50%; animation: rr-candle 3s ease-in-out infinite alternate; }
.scn-rest-retire .breath { position:absolute; bottom:20%; left:38%; width:12px; height:6px; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.1) 0%, transparent 100%); filter: blur(2px); animation: rr-breath 6s ease-in-out infinite; }
@keyframes rr-sleeper { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes rr-moon { 0% { opacity:0.6; box-shadow: 0 0 20px 4px rgba(160,160,192,0.3); } 50% { opacity:0.8; box-shadow: 0 0 35px 8px rgba(160,160,192,0.5); } 100% { opacity:0.7; box-shadow: 0 0 25px 5px rgba(160,160,192,0.4); } }
@keyframes rr-candle { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.8; transform: scale(0.9); } }
@keyframes rr-breath { 0% { transform: translateX(0) scaleX(1); } 25% { transform: translateX(3px) scaleX(1.3); } 50% { transform: translateX(0) scaleX(1); } 75% { transform: translateX(-3px) scaleX(0.8); } 100% { transform: translateX(0) scaleX(1); } }

.scn-brothel-dionyza-coaxing {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a18 40%, #1a1008 100%), radial-gradient(ellipse at 50% 100%, #1a1008 0%, transparent 70%);
}
.scn-brothel-dionyza-coaxing .bg-wall {
  position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3420 0%, #2a1a10 100%); animation: bdc-wall 12s ease-in-out infinite alternate;
}
.scn-brothel-dionyza-coaxing .bg-floor {
  position: absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-brothel-dionyza-coaxing .table {
  position: absolute; bottom:30%; left:40%; width:80px; height:50px; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-brothel-dionyza-coaxing .candle {
  position: absolute; bottom:48%; left:45%; width:6px; height:20px; background: linear-gradient(180deg, #f0b060 0%, #c08040 60%, #804020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px #e0a040, 0 0 40px 12px rgba(224,160,64,.3); animation: bdc-candle 0.8s ease-in-out infinite alternate;
}
.scn-brothel-dionyza-coaxing .figure-large {
  position: absolute; bottom:24%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #3a2010 0%, #1a0800 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bdc-figureL 2s ease-in-out infinite;
}
.scn-brothel-dionyza-coaxing .figure-small {
  position: absolute; bottom:24%; left:50%; width:18px; height:40px; background: linear-gradient(180deg, #4a2a18 0%, #2a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bdc-figureS 1.5s ease-in-out infinite;
}
.scn-brothel-dionyza-coaxing .drape {
  position: absolute; top:0; right:10%; width:30px; height:100%; background: linear-gradient(180deg, rgba(80,40,20,.7) 0%, rgba(40,20,10,.9) 100%); border-radius: 0 10% 10% 0; filter: blur(2px); animation: bdc-drape 3s ease-in-out infinite alternate;
}
.scn-brothel-dionyza-coaxing .shadow-flicker {
  position: absolute; bottom:30%; left:35%; width:60px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); animation: bdc-shadow 1.2s ease-in-out infinite alternate;
}
@keyframes bdc-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes bdc-candle { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 18px 4px #e0a040, 0 0 36px 8px rgba(224,160,64,.3); } 50% { transform: scaleY(1.05) translateY(-2px); box-shadow: 0 0 28px 8px #f0c060, 0 0 48px 12px rgba(240,192,96,.5); } 100% { transform: scaleY(.95) translateY(0); box-shadow: 0 0 20px 5px #e0a040, 0 0 36px 8px rgba(224,160,64,.3); } }
@keyframes bdc-figureL { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes bdc-figureS { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-3px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes bdc-drape { 0% { transform: skewX(0) translateX(0); } 50% { transform: skewX(-3deg) translateX(-5px); } 100% { transform: skewX(0) translateX(0); } }
@keyframes bdc-shadow { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.8; transform: scale(1.1); } 100% { opacity:.5; transform: scale(1); } }

.scn-brothel-marina-reluctant {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #0e0e1e 0%, transparent 60%);
}
.scn-brothel-marina-reluctant .bg-wall {
  position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); animation: bmr-wall 15s ease-in-out infinite alternate;
}
.scn-brothel-marina-reluctant .bg-floor {
  position: absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 15% 15% 0 0 / 8% 8% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.5);
}
.scn-brothel-marina-reluctant .window {
  position: absolute; top:20%; left:35%; width:80px; height:100px; background: linear-gradient(180deg, #4a4a6e 0%, #2a2a4e 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); overflow: hidden;
}
.scn-brothel-marina-reluctant .window::after {
  content: ''; position: absolute; inset:0; background: linear-gradient(135deg, rgba(255,255,255,.05) 0%, transparent 50%, rgba(0,0,0,.2) 100%); animation: bmr-window 8s ease-in-out infinite alternate;
}
.scn-brothel-marina-reluctant .bench {
  position: absolute; bottom:30%; left:45%; width:60px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-brothel-marina-reluctant .figure {
  position: absolute; bottom:22%; left:50%; width:16px; height:38px; background: linear-gradient(180deg, #3a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bmr-figure 6s ease-in-out infinite;
}
.scn-brothel-marina-reluctant .lantern {
  position: absolute; bottom:35%; left:30%; width:10px; height:14px; background: radial-gradient(circle, #c0a060 0%, #806030 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 15px 4px #a08040, 0 0 30px 8px rgba(160,128,64,.3); animation: bmr-lantern 4s ease-in-out infinite alternate;
}
.scn-brothel-marina-reluctant .flower {
  position: absolute; bottom:32%; left:48%; width:8px; height:12px; background: radial-gradient(circle, #b87878 0%, #5a2a2a 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(184,120,120,.5); animation: bmr-flower 7s ease-in-out infinite alternate;
}
@keyframes bmr-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes bmr-window { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes bmr-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes bmr-lantern { 0% { box-shadow: 0 0 12px 3px #a08040, 0 0 24px 6px rgba(160,128,64,.2); opacity:.8; } 50% { box-shadow: 0 0 20px 6px #c0a060, 0 0 36px 10px rgba(192,160,96,.4); opacity:1; } 100% { box-shadow: 0 0 14px 4px #a08040, 0 0 28px 8px rgba(160,128,64,.25); opacity:.85; } }
@keyframes bmr-flower { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(-5deg) scale(1); } }

.scn-brothel-marina-thanks {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 80% 100%, #0e0e1e 0%, transparent 70%);
}
.scn-brothel-marina-thanks .bg-wall {
  position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); animation: bmt-wall 14s ease-in-out infinite alternate;
}
.scn-brothel-marina-thanks .bg-floor {
  position: absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 10% 10% 0 0 / 5% 5% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.5);
}
.scn-brothel-marina-thanks .window {
  position: absolute; top:15%; right:15%; width:90px; height:110px; background: linear-gradient(180deg, #2a3a4e 0%, #1a2a3e 100%); border: 2px solid #4a3a2a; border-radius: 8px; overflow: hidden;
}
.scn-brothel-marina-thanks .window::after {
  content: ''; position: absolute; inset:0; background: linear-gradient(135deg, rgba(255,255,255,.1) 0%, transparent 50%, rgba(0,0,0,.3) 100%); animation: bmt-seascape 20s linear infinite;
}
.scn-brothel-marina-thanks .figure {
  position: absolute; bottom:22%; left:35%; width:16px; height:40px; background: linear-gradient(180deg, #3a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bmt-figure 8s ease-in-out infinite;
}
.scn-brothel-marina-thanks .rope-coil {
  position: absolute; bottom:26%; left:55%; width:20px; height:20px; background: radial-gradient(circle, #6a5a3a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: bmt-rope 12s ease-in-out infinite alternate;
}
.scn-brothel-marina-thanks .candle {
  position: absolute; bottom:40%; left:25%; width:5px; height:18px; background: linear-gradient(180deg, #f0b060 0%, #c08040 60%, #804020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 16px 4px #e0a040, 0 0 32px 8px rgba(224,160,64,.3); animation: bmt-candle 3s ease-in-out infinite alternate;
}
.scn-brothel-marina-thanks .curtain {
  position: absolute; top:0; left:5%; width:20px; height:100%; background: linear-gradient(180deg, rgba(80,40,60,.6) 0%, rgba(40,20,30,.8) 100%); border-radius: 0 10% 10% 0; filter: blur(3px); animation: bmt-curtain 15s ease-in-out infinite alternate;
}
@keyframes bmt-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes bmt-seascape { 0% { background-position: 0 0; } 100% { background-position: 0 50px; } }
@keyframes bmt-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes bmt-rope { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(10deg) scale(1.05); } 100% { transform: rotate(0) scale(1); } }
@keyframes bmt-candle { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 14px 3px #e0a040, 0 0 28px 6px rgba(224,160,64,.3); } 50% { transform: scaleY(1.03) translateY(-1px); box-shadow: 0 0 22px 6px #f0c060, 0 0 40px 10px rgba(240,192,96,.4); } 100% { transform: scaleY(.97) translateY(0); box-shadow: 0 0 16px 4px #e0a040, 0 0 30px 7px rgba(224,160,64,.3); } }
@keyframes bmt-curtain { 0% { transform: skewX(0) translateX(0); } 50% { transform: skewX(-2deg) translateX(-3px); } 100% { transform: skewX(0) translateX(0); } }

.scn-brothel-leonine-asks-when {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 50%, #1a1008 100%), radial-gradient(ellipse at 30% 100%, #1a1008 0%, transparent 70%);
}
.scn-brothel-leonine-asks-when .bg-wall {
  position: absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a3420 0%, #2a1a10 100%); animation: blw-wall 16s ease-in-out infinite alternate;
}
.scn-brothel-leonine-asks-when .bg-floor {
  position: absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%); border-radius: 25% 25% 0 0 / 12% 12% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-brothel-leonine-asks-when .table {
  position: absolute; bottom:25%; left:35%; width:90px; height:45px; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-brothel-leonine-asks-when .map {
  position: absolute; bottom:38%; left:38%; width:50px; height:35px; background: linear-gradient(135deg, #c8a060 0%, #a08040 50%, #c8a060 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(-5deg); animation: blw-map 20s ease-in-out infinite alternate;
}
.scn-brothel-leonine-asks-when .figure-left {
  position: absolute; bottom:20%; left:30%; width:22px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: blw-figureL 5s ease-in-out infinite;
}
.scn-brothel-leonine-asks-when .figure-right {
  position: absolute; bottom:20%; right:30%; width:20px; height:42px; background: linear-gradient(180deg, #4a2a18 0%, #2a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: blw-figureR 4.5s ease-in-out infinite;
}
.scn-brothel-leonine-asks-when .lantern {
  position: absolute; bottom:35%; left:50%; width:12px; height:16px; background: radial-gradient(circle, #e0b060 0%, #a08040 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 5px #c0a060, 0 0 40px 10px rgba(192,160,96,.4); animation: blw-lantern 3.5s ease-in-out infinite alternate;
}
.scn-brothel-leonine-asks-when .ship-model {
  position: absolute; bottom:30%; right:20%; width:30px; height:20px; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 5% 5% 20% 20%; clip-path: polygon(0 50%, 100% 50%, 80% 100%, 20% 100%); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: blw-ship 15s ease-in-out infinite alternate;
}
@keyframes blw-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes blw-map { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes blw-figureL { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes blw-figureR { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes blw-lantern { 0% { box-shadow: 0 0 16px 4px #c0a060, 0 0 32px 8px rgba(192,160,96,.3); opacity:.85; } 50% { box-shadow: 0 0 28px 8px #e0c080, 0 0 48px 12px rgba(224,192,128,.5); opacity:1; } 100% { box-shadow: 0 0 20px 5px #c0a060, 0 0 36px 9px rgba(192,160,96,.35); opacity:.9; } }
@keyframes blw-ship { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(5deg) scale(1.02); } 100% { transform: rotate(0) scale(1); } }

.scn-lysistratus-see { 
  background: 
    linear-gradient(180deg, #f5e6d3 0%, #d4c4a8 100%), 
    radial-gradient(ellipse at 50% 30%, #fff8e7 0%, transparent 70%); 
}
.scn-lysistratus-see .wall-left { 
  position: absolute; left:0; top:0; bottom:0; width:20%; 
  background: linear-gradient(90deg, #c9b698 0%, #b8a084 100%); 
  box-shadow: inset -4px 0 8px rgba(0,0,0,.1); 
}
.scn-lysistratus-see .wall-right { 
  position: absolute; right:0; top:0; bottom:0; width:20%; 
  background: linear-gradient(-90deg, #c9b698 0%, #b8a084 100%); 
  box-shadow: inset 4px 0 8px rgba(0,0,0,.1); 
}
.scn-lysistratus-see .floor { 
  position: absolute; left:20%; right:20%; bottom:0; height:30%; 
  background: linear-gradient(180deg, #d6c3a8 0%, #b8a084 100%); 
  border-radius: 20% 20% 0 0; 
}
.scn-lysistratus-see .window { 
  position: absolute; left:40%; right:40%; top:15%; bottom:45%; 
  background: linear-gradient(180deg, #87ceeb 0%, #4682b4 100%); 
  border: 6px solid #8b7355; border-radius: 8px; 
  box-shadow: inset 0 0 20px rgba(255,255,200,.4); 
  animation: lss-window 12s ease-in-out infinite alternate; 
}
.scn-lysistratus-see .figure { 
  position: absolute; left:45%; right:45%; bottom:20%; height:45%; 
  background: radial-gradient(ellipse 70% 60% at 50% 30%, #3a2a1a 0%, #1a100a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); 
  animation: lss-figure 6s ease-in-out infinite; 
}
.scn-lysistratus-see .sunbeam { 
  position: absolute; left:35%; right:35%; top:10%; bottom:50%; 
  background: linear-gradient(180deg, rgba(255,255,200,.3) 0%, rgba(255,255,200,0) 100%); 
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%); 
  filter: blur(8px); 
  animation: lss-beam 15s ease-in-out infinite alternate; 
}
@keyframes lss-window { 0% { opacity:.9; box-shadow: inset 0 0 20px rgba(255,255,200,.3); } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,255,200,.6); } 100% { opacity:.95; box-shadow: inset 0 0 30px rgba(255,255,200,.4); } }
@keyframes lss-figure { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes lss-beam { 0% { transform: rotate(-2deg) scaleY(.9); opacity:.4; } 50% { transform: rotate(0deg) scaleY(1); opacity:.7; } 100% { transform: rotate(2deg) scaleY(.95); opacity:.5; } }

.scn-helicanus-vain { 
  background: 
    linear-gradient(180deg, #a8d8ea 0%, #7ec8e3 40%, #f2e6c9 100%), 
    radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%); 
}
.scn-helicanus-vain .sky { 
  position: absolute; inset:0 0 40% 0; 
  background: linear-gradient(180deg, #a8d8ea 0%, #7ec8e3 100%); 
  animation: hvn-sky 20s ease-in-out infinite alternate; 
}
.scn-helicanus-vain .ground { 
  position: absolute; bottom:0; left:0; right:0; height:45%; 
  background: linear-gradient(180deg, #c4d4a8 0%, #8ba86a 100%); 
  border-radius: 30% 70% 0 0 / 40% 60% 0 0; 
  animation: hvn-ground 30s ease-in-out infinite alternate; 
}
.scn-helicanus-vain .maid-figure { 
  position: absolute; left:45%; right:45%; bottom:20%; height:50%; 
  background: radial-gradient(ellipse 60% 70% at 50% 30%, #d6c3a8 0%, #b8a084 40%, #6a5040 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: hvn-maid 8s ease-in-out infinite; 
}
.scn-helicanus-vain .shrub { 
  position: absolute; left:20%; bottom:25%; width:12%; height:20%; 
  background: radial-gradient(ellipse 60% 50% at 50% 60%, #5a7a3a 0%, #3a5a2a 100%); 
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; 
  animation: hvn-shrub 12s ease-in-out infinite alternate; 
}
.scn-helicanus-vain .cloud-a { 
  position: absolute; top:8%; left:10%; width:18%; height:10%; 
  background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); 
  border-radius: 50%; filter: blur(6px); 
  animation: hvn-drift-a 40s linear infinite; 
}
.scn-helicanus-vain .cloud-b { 
  position: absolute; top:14%; right:15%; width:14%; height:8%; 
  background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.05) 100%); 
  border-radius: 50%; filter: blur(5px); 
  animation: hvn-drift-b 55s linear infinite reverse; 
}
.scn-helicanus-vain .flower { 
  position: absolute; left:35%; bottom:30%; width:4%; height:6%; 
  background: radial-gradient(ellipse at 50% 100%, #e8a0a0 0%, #d08080 50%, transparent 100%); 
  border-radius: 50%; 
  animation: hvn-flower 5s ease-in-out infinite; 
}
@keyframes hvn-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes hvn-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes hvn-maid { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hvn-shrub { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes hvn-drift-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes hvn-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes hvn-flower { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.1); } 100% { transform: rotate(-5deg) scale(1); } }

.scn-helicanus-well-bethought { 
  background: 
    linear-gradient(180deg, #4a7a3a 0%, #2a5a2a 40%, #1a3a1a 100%), 
    radial-gradient(ellipse at 50% 70%, #6a9a5a 0%, transparent 70%); 
}
.scn-helicanus-well-bethought .trunk { 
  position: absolute; left:45%; right:45%; bottom:0; height:60%; 
  background: linear-gradient(90deg, #5a3a1a 0%, #3a2a0a 50%, #5a3a1a 100%); 
  border-radius: 30% 30% 0 0; 
  animation: hwb-trunk 10s ease-in-out infinite alternate; 
}
.scn-helicanus-well-bethought .canopy { 
  position: absolute; left:30%; right:30%; top:5%; bottom:45%; 
  background: radial-gradient(ellipse 60% 70% at 50% 40%, #5a8a3a 0%, #2a5a1a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: hwb-canopy 15s ease-in-out infinite alternate; 
}
.scn-helicanus-well-bethought .figure { 
  position: absolute; left:42%; right:42%; bottom:22%; height:30%; 
  background: radial-gradient(ellipse 60% 70% at 50% 30%, #d6c3a8 0%, #8a7a6a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: hwb-figure 4s ease-in-out infinite; 
}
.scn-helicanus-well-bethought .instrument { 
  position: absolute; left:48%; right:48%; bottom:28%; height:12%; 
  background: radial-gradient(ellipse 50% 40% at 50% 50%, #c8a060 0%, #8a6a3a 100%); 
  border-radius: 10% 10% 30% 30%; 
  transform: rotate(-20deg); 
  animation: hwb-instr 6s ease-in-out infinite; 
}
.scn-helicanus-well-bethought .leaf1 { 
  position: absolute; left:35%; top:30%; width:12%; height:8%; 
  background: radial-gradient(ellipse at 50% 50%, #6aaa3a 0%, #3a7a1a 100%); 
  border-radius: 80% 20% 50% 50%; 
  animation: hwb-leaf1 8s ease-in-out infinite alternate; 
}
.scn-helicanus-well-bethought .leaf2 { 
  position: absolute; right:33%; top:22%; width:10%; height:6%; 
  background: radial-gradient(ellipse at 50% 50%, #5a9a2a 0%, #2a6a0a 100%); 
  border-radius: 20% 80% 50% 50%; 
  animation: hwb-leaf2 10s ease-in-out infinite alternate; 
}
.scn-helicanus-well-bethought .sunray { 
  position: absolute; left:25%; right:25%; top:2%; bottom:40%; 
  background: linear-gradient(180deg, rgba(255,255,200,.3) 0%, rgba(255,255,200,0) 100%); 
  clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%); 
  filter: blur(10px); 
  animation: hwb-ray 12s ease-in-out infinite alternate; 
}
@keyframes hwb-trunk { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes hwb-canopy { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes hwb-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hwb-instr { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-18deg) scale(1.05); } 100% { transform: rotate(-20deg) scale(1); } }
@keyframes hwb-leaf1 { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes hwb-leaf2 { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.1); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes hwb-ray { 0% { opacity:.3; transform: rotate(-3deg); } 50% { opacity:.6; transform: rotate(0deg); } 100% { opacity:.4; transform: rotate(3deg); } }

.scn-helicanus-effectless { 
  background: 
    linear-gradient(180deg, #4682b4 0%, #87ceeb 40%, #b0e0e6 100%), 
    radial-gradient(ellipse at 50% 80%, #b0e0e6 0%, transparent 60%); 
}
.scn-helicanus-effectless .sky { 
  position: absolute; inset:0 0 30% 0; 
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); 
  animation: hfe-sky 18s ease-in-out infinite alternate; 
}
.scn-helicanus-effectless .sea { 
  position: absolute; bottom:0; left:0; right:0; height:35%; 
  background: linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 100%); 
  border-radius: 40% 60% 0 0 / 30% 50% 0 0; 
  animation: hfe-sea 15s ease-in-out infinite alternate; 
}
.scn-helicanus-effectless .ship-hull { 
  position: absolute; left:30%; right:30%; bottom:20%; height:20%; 
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); 
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; 
  animation: hfe-hull 8s ease-in-out infinite; 
}
.scn-helicanus-effectless .mast { 
  position: absolute; left:48%; right:48%; bottom:35%; height:30%; 
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); 
  border-radius: 10% 10% 0 0; 
  animation: hfe-mast 12s ease-in-out infinite alternate; 
}
.scn-helicanus-effectless .sail-fore { 
  position: absolute; left:35%; right:50%; bottom:30%; height:25%; 
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b8a0 100%); 
  border-radius: 40% 10% 10% 40%; 
  transform: skewX(5deg); 
  animation: hfe-sail1 10s ease-in-out infinite alternate; 
}
.scn-helicanus-effectless .sail-aft { 
  position: absolute; left:50%; right:35%; bottom:28%; height:22%; 
  background: linear-gradient(225deg, #e8dcc8 0%, #c8b8a0 100%); 
  border-radius: 10% 40% 40% 10%; 
  transform: skewX(-5deg); 
  animation: hfe-sail2 12s ease-in-out infinite alternate; 
}
.scn-helicanus-effectless .flag { 
  position: absolute; left:48%; right:48%; top:35%; height:8%; 
  background: linear-gradient(90deg, #c8553d 0%, #a0461a 100%); 
  border-radius: 0 40% 40% 0; 
  transform-origin: left center; 
  animation: hfe-flag 4s ease-in-out infinite; 
}
.scn-helicanus-effectless .wave1 { 
  position: absolute; bottom:10%; left:0; right:0; height:15%; 
  background: linear-gradient(180deg, rgba(42,106,138,.3) 0%, transparent 100%); 
  border-radius: 50% 50% 0 0; filter: blur(4px); 
  animation: hfe-wave1 20s ease-in-out infinite alternate; 
}
.scn-helicanus-effectless .wave2 { 
  position: absolute; bottom:5%; left:0; right:0; height:12%; 
  background: linear-gradient(180deg, rgba(42,106,138,.2) 0%, transparent 100%); 
  border-radius: 30% 70% 0 0; filter: blur(3px); 
  animation: hfe-wave2 25s ease-in-out infinite alternate; 
}
@keyframes hfe-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes hfe-sea { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes hfe-hull { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hfe-mast { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes hfe-sail1 { 0% { transform: skewX(5deg) scaleX(1); } 50% { transform: skewX(3deg) scaleX(1.02); } 100% { transform: skewX(5deg) scaleX(1); } }
@keyframes hfe-sail2 { 0% { transform: skewX(-5deg) scaleX(1); } 50% { transform: skewX(-3deg) scaleX(1.02); } 100% { transform: skewX(-5deg) scaleX(1); } }
@keyframes hfe-flag { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.1); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes hfe-wave1 { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes hfe-wave2 { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.03); } 100% { transform: translateY(0) scaleX(1); } }

.scn-fishermen-seamens-vails {
  background: linear-gradient(180deg, #feebc8 0%, #f6d5a0 40%, #b8c8e0 100%),
              radial-gradient(ellipse at 50% 100%, #f9e4b7 0%, transparent 60%);
}
.scn-fishermen-seamens-vails .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #a8d8f0 0%, #c6e6ff 50%, #e0f0ff 100%); animation: fsv-sky 20s ease-in-out infinite alternate; }
.scn-fishermen-seamens-vails .sea { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #3a7eb0 0%, #1a4a6a 100%); border-radius: 20% 40% 0 0 / 30% 50% 0 0; animation: fsv-sea 8s ease-in-out infinite; }
.scn-fishermen-seamens-vails .boat { position:absolute; bottom:35%; left:20%; width:120px; height:30px; background: linear-gradient(90deg, #6a4a2a 0%, #8a5a3a 50%, #5a3a1a 100%); border-radius: 40% 10% 10% 40%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); transform: rotate(-2deg); animation: fsv-boat 6s ease-in-out infinite; }
.scn-fishermen-seamens-vails .sail { position:absolute; bottom:52%; left:25%; width:50px; height:70px; background: linear-gradient(135deg, #f5e6cc 0%, #e0c8a0 100%); border-radius: 20% 60% 10% 40%; transform: rotate(5deg); box-shadow: -2px 0 8px rgba(0,0,0,0.2); animation: fsv-sail 9s ease-in-out infinite; }
.scn-fishermen-seamens-vails .figure-a { position:absolute; bottom:35%; left:18%; width:22px; height:40px; background: linear-gradient(180deg, #d4a373 0%, #a67c52 50%, #6b4e2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fsv-figure-a 4s ease-in-out infinite; }
.scn-fishermen-seamens-vails .figure-b { position:absolute; bottom:35%; left:32%; width:22px; height:40px; background: linear-gradient(180deg, #b88a6b 0%, #8c6a4e 50%, #5a3a24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fsv-figure-b 4s ease-in-out infinite 0.5s; }
.scn-fishermen-seamens-vails .veil { position:absolute; bottom:42%; left:24%; width:30px; height:18px; background: radial-gradient(ellipse, #ffebd0 0%, #d4b88f 100%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,235,208,0.6); transform: rotate(15deg); animation: fsv-veil 3s ease-in-out infinite; }
.scn-fishermen-seamens-vails .sunrays { position:absolute; top:8%; left:60%; width:100px; height:100px; background: radial-gradient(circle, #fff3d0 0%, #ffd78a 40%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: fsv-sunrays 10s ease-in-out infinite alternate; }
@keyframes fsv-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes fsv-sea { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes fsv-boat { 0% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(0deg) translateX(4px) } 100% { transform: rotate(-2deg) translateX(0) } }
@keyframes fsv-sail { 0% { transform: rotate(5deg) scaleX(1) } 50% { transform: rotate(3deg) scaleX(1.05) } 100% { transform: rotate(5deg) scaleX(1) } }
@keyframes fsv-figure-a { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(6px) rotate(1deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(18px) rotate(2deg) } 100% { transform: translateX(24px) rotate(0) } }
@keyframes fsv-figure-b { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-6px) rotate(-1deg) } 50% { transform: translateX(-12px) rotate(1deg) } 75% { transform: translateX(-18px) rotate(-2deg) } 100% { transform: translateX(-24px) rotate(0) } }
@keyframes fsv-veil { 0% { transform: rotate(15deg) translateY(0) scale(0.9); opacity:0.7 } 50% { transform: rotate(-5deg) translateY(-4px) scale(1.1); opacity:1 } 100% { transform: rotate(15deg) translateY(0) scale(0.9); opacity:0.7 } }
@keyframes fsv-sunrays { 0% { transform: scale(0.8); opacity:0.6 } 100% { transform: scale(1.2); opacity:1 } }

.scn-simonides-thaisa-entrance {
  background: linear-gradient(180deg, #d4b88f 0%, #b8966e 30%, #a07850 100%),
              radial-gradient(ellipse at 60% 40%, #f0d8a0 0%, transparent 70%);
}
.scn-simonides-thaisa-entrance .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #b8966e 0%, #8a7048 100%); border-radius: 0 0 20% 20%; animation: ste-wall 15s ease-in-out infinite alternate; }
.scn-simonides-thaisa-entrance .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); }
.scn-simonides-thaisa-entrance .throne { position:absolute; bottom:20%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #b08040 0%, #806030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.4); animation: ste-throne 12s ease-in-out infinite; }
.scn-simonides-thaisa-entrance .king { position:absolute; bottom:25%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #705030 0%, #402818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ste-king 5s ease-in-out infinite; }
.scn-simonides-thaisa-entrance .princess { position:absolute; bottom:25%; left:55%; width:20px; height:45px; background: linear-gradient(180deg, #c09060 0%, #906040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ste-princess 5s ease-in-out infinite 0.7s; }
.scn-simonides-thaisa-entrance .window-glow { position:absolute; top:10%; left:30%; width:80px; height:120px; background: radial-gradient(ellipse, #ffeebb 0%, #e0c080 60%, transparent 100%); border-radius: 10%; filter: blur(6px); animation: ste-window 4s ease-in-out infinite alternate; }
.scn-simonides-thaisa-entrance .beam { position:absolute; top:10%; left:38%; width:40px; height:80px; background: linear-gradient(135deg, rgba(255,238,187,0.4) 0%, transparent 100%); transform: rotate(-10deg); animation: ste-beam 6s ease-in-out infinite; }
.scn-simonides-thaisa-entrance .banner { position:absolute; top:5%; left:20%; width:40px; height:60px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 5% 5% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform: rotate(-5deg); animation: ste-banner 8s ease-in-out infinite; }
@keyframes ste-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ste-throne { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ste-king { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(15px) rotate(1deg) } 100% { transform: translateX(20px) rotate(0) } }
@keyframes ste-princess { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-5px) rotate(-2deg) } 50% { transform: translateX(-10px) rotate(1deg) } 75% { transform: translateX(-15px) rotate(-1deg) } 100% { transform: translateX(-20px) rotate(0) } }
@keyframes ste-window { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.7; transform: scale(0.9) } }
@keyframes ste-beam { 0% { opacity:0.3; transform: rotate(-10deg) } 50% { opacity:0.6; transform: rotate(-8deg) } 100% { opacity:0.3; transform: rotate(-10deg) } }
@keyframes ste-banner { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }

.scn-simonides-advises-thaisa {
  background: linear-gradient(180deg, #d2b48c 0%, #b8966e 40%, #a07850 100%),
              radial-gradient(ellipse at 70% 30%, #f0d8a0 0%, transparent 60%);
}
.scn-simonides-advises-thaisa .table { position:absolute; bottom:20%; left:30%; width:150px; height:20px; background: linear-gradient(180deg, #705030 0%, #5a4020 100%); border-radius: 5%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); animation: sad-table 10s ease-in-out infinite; }
.scn-simonides-advises-thaisa .scroll { position:absolute; bottom:30%; left:35%; width:80px; height:12px; background: linear-gradient(180deg, #f5e6cc 0%, #e0c8a0 100%); border-radius: 20%; transform: rotate(-10deg); animation: sad-scroll 6s ease-in-out infinite; }
.scn-simonides-advises-thaisa .king-hand { position:absolute; bottom:28%; left:33%; width:16px; height:30px; background: linear-gradient(180deg, #705030 0%, #402818 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: sad-hand-l 5s ease-in-out infinite; }
.scn-simonides-advises-thaisa .princess-hand { position:absolute; bottom:28%; left:40%; width:14px; height:26px; background: linear-gradient(180deg, #c09060 0%, #906040 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: sad-hand-r 5s ease-in-out infinite 0.3s; }
.scn-simonides-advises-thaisa .candle { position:absolute; bottom:22%; left:60%; width:8px; height:20px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%); border-radius: 20%; animation: sad-candle 4s ease-in-out infinite; }
.scn-simonides-advises-thaisa .window { position:absolute; top:8%; right:10%; width:60px; height:80px; background: radial-gradient(ellipse, #ffeebb 0%, #d0b080 100%); border-radius: 10%; box-shadow: 0 0 20px 6px rgba(255,238,187,0.5); animation: sad-window 7s ease-in-out infinite alternate; }
.scn-simonides-advises-thaisa .light-rays { position:absolute; top:8%; right:15%; width:30px; height:90px; background: linear-gradient(135deg, rgba(255,238,187,0.3) 0%, transparent 100%); transform: rotate(10deg); animation: sad-rays 8s ease-in-out infinite; }
.scn-simonides-advises-thaisa .ornament { position:absolute; top:12%; left:15%; width:20px; height:20px; background: radial-gradient(circle, #c8553d 0%, #a0461a 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,85,61,0.4); animation: sad-ornament 9s ease-in-out infinite; }
@keyframes sad-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sad-scroll { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-8deg) scaleX(1.03) } 100% { transform: rotate(-10deg) scaleX(1) } }
@keyframes sad-hand-l { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(9px) rotate(2deg) } 100% { transform: translateX(12px) rotate(0) } }
@keyframes sad-hand-r { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-3px) rotate(-1deg) } 50% { transform: translateX(-6px) rotate(1deg) } 75% { transform: translateX(-9px) rotate(-2deg) } 100% { transform: translateX(-12px) rotate(0) } }
@keyframes sad-candle { 0% { transform: scaleY(1); opacity:0.9 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(1); opacity:0.9 } }
@keyframes sad-window { 0% { opacity:0.7; box-shadow:0 0 16px 4px rgba(255,238,187,0.4) } 100% { opacity:1; box-shadow:0 0 28px 8px rgba(255,238,187,0.8) } }
@keyframes sad-rays { 0% { opacity:0.2; transform: rotate(10deg) } 50% { opacity:0.5; transform: rotate(12deg) } 100% { opacity:0.2; transform: rotate(10deg) } }
@keyframes sad-ornament { 0% { transform: rotate(0deg) scale(0.9) } 50% { transform: rotate(180deg) scale(1.1) } 100% { transform: rotate(360deg) scale(0.9) } }

.scn-knight-devices-macedon {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 40%, #d4f0d4 100%),
              radial-gradient(ellipse at 80% 20%, #ffe4b5 0%, transparent 60%);
}
.scn-knight-devices-macedon .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #a0d8ef 0%, #c0e8ff 50%, #e0f4ff 100%); animation: kdm-sky 20s ease-in-out infinite alternate; }
.scn-knight-devices-macedon .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7cb87c 0%, #5a9a5a 100%); border-radius: 30% 20% 0 0 / 40% 30% 0 0; animation: kdm-ground 12s ease-in-out infinite; }
.scn-knight-devices-macedon .knight { position:absolute; bottom:30%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #706060 0%, #484040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kdm-knight 6s ease-in-out infinite; }
.scn-knight-devices-macedon .shield { position:absolute; bottom:40%; left:27%; width:24px; height:30px; background: linear-gradient(135deg, #b0a090 0%, #807060 100%); border-radius: 20%; transform: rotate(-10deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.3); animation: kdm-shield 5s ease-in-out infinite; }
.scn-knight-devices-macedon .lady { position:absolute; bottom:30%; left:50%; width:18px; height:40px; background: linear-gradient(180deg, #e0b090 0%, #c09070 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kdm-lady 7s ease-in-out infinite 0.5s; }
.scn-knight-devices-macedon .banner { position:absolute; top:12%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%); border-radius: 5% 5% 10% 10%; transform: rotate(5deg); box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: kdm-banner 9s ease-in-out infinite; }
.scn-knight-devices-macedon .sun { position:absolute; top:8%; left:80%; width:70px; height:70px; background: radial-gradient(circle, #fff3d0 0%, #ffe4b5 40%, transparent 80%); border-radius: 50%; filter: blur(6px); animation: kdm-sun 15s ease-in-out infinite alternate; }
.scn-knight-devices-macedon .dust { position:absolute; bottom:20%; left:20%; width:60px; height:40px; background: radial-gradient(ellipse, rgba(240,220,180,0.5) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: kdm-dust 4s ease-in-out infinite; }
@keyframes kdm-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes kdm-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes kdm-knight { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(15px) rotate(1deg) } 100% { transform: translateX(20px) rotate(0) } }
@keyframes kdm-shield { 0% { transform: rotate(-10deg) scale(0.9) } 50% { transform: rotate(-5deg) scale(1.05) } 100% { transform: rotate(-10deg) scale(0.9) } }
@keyframes kdm-lady { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-4px) rotate(-1deg) } 50% { transform: translateX(-8px) rotate(2deg) } 75% { transform: translateX(-12px) rotate(-1deg) } 100% { transform: translateX(-16px) rotate(0) } }
@keyframes kdm-banner { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-3px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes kdm-sun { 0% { transform: scale(0.9); opacity:0.8 } 100% { transform: scale(1.1); opacity:1 } }
@keyframes kdm-dust { 0% { transform: translateX(0) scale(0.8); opacity:0.4 } 50% { transform: translateX(15px) scale(1.2); opacity:0.7 } 100% { transform: translateX(0) scale(0.8); opacity:0.4 } }

.scn-item-thaisa-ring { 
  background: linear-gradient(180deg, #f4e5c8 0%, #d4b88a 100%), radial-gradient(ellipse at 50% 0%, #fff3d6 0%, transparent 60%);
}
.scn-item-thaisa-ring .bg-wall { 
  position:absolute; inset:0; background:linear-gradient(135deg, #e6d2b4 0%, #c6a87a 100%); 
}
.scn-item-thaisa-ring .bg-table { 
  position:absolute; bottom:0; left:10%; right:10%; height:30%; background:linear-gradient(180deg, #b09060 0%, #8a7048 100%); border-radius:20% 20% 0 0; 
  box-shadow:0 -4px 12px rgba(0,0,0,0.3); 
}
.scn-item-thaisa-ring .hand { 
  position:absolute; bottom:30%; left:42%; width:50px; height:70px; 
  background:linear-gradient(180deg, #f0d5b0 0%, #d0a870 100%); 
  border-radius:60% 60% 40% 40% / 70% 70% 30% 30%; 
  transform-origin:bottom center; animation:ti-hand 5s ease-in-out infinite; 
}
.scn-item-thaisa-ring .ring { 
  position:absolute; bottom:38%; left:46%; width:14px; height:14px; 
  background:radial-gradient(circle, #ffd700 0%, #b8860b 70%); border-radius:50%; 
  box-shadow:0 0 16px 4px rgba(255,215,0,0.5); animation:ti-ring 4s ease-in-out infinite; 
}
.scn-item-thaisa-ring .glow { 
  position:absolute; bottom:32%; left:44%; width:30px; height:30px; 
  background:radial-gradient(circle, rgba(255,215,0,0.3) 0%, transparent 70%); 
  border-radius:50%; animation:ti-glow 4s ease-in-out infinite alternate; 
}
.scn-item-thaisa-ring .ray1 { 
  position:absolute; bottom:40%; left:40%; width:80px; height:4px; 
  background:linear-gradient(90deg, rgba(255,215,0,0.5) 0%, transparent 100%); 
  transform-origin:left center; animation:ti-ray1 6s ease-in-out infinite; 
}
.scn-item-thaisa-ring .ray2 { 
  position:absolute; bottom:40%; left:48%; width:80px; height:4px; 
  background:linear-gradient(270deg, rgba(255,215,0,0.5) 0%, transparent 100%); 
  transform-origin:right center; animation:ti-ray2 6s ease-in-out infinite 2s; 
}
@keyframes ti-hand {
  0% { transform:translate(0,0) rotate(0deg); }
  50% { transform:translate(2px,-1px) rotate(2deg); }
  100% { transform:translate(0,0) rotate(0deg); }
}
@keyframes ti-ring {
  0% { box-shadow:0 0 12px 3px rgba(255,215,0,0.4); transform:scale(1); }
  50% { box-shadow:0 0 24px 8px rgba(255,215,0,0.7); transform:scale(1.1); }
  100% { box-shadow:0 0 12px 3px rgba(255,215,0,0.4); transform:scale(1); }
}
@keyframes ti-glow {
  0% { opacity:0.6; transform:scale(0.8); }
  100% { opacity:1; transform:scale(1.2); }
}
@keyframes ti-ray1 {
  0% { transform:rotate(-30deg); opacity:0.3; }
  50% { transform:rotate(0deg); opacity:0.8; }
  100% { transform:rotate(30deg); opacity:0.3; }
}
@keyframes ti-ray2 {
  0% { transform:rotate(30deg); opacity:0.3; }
  50% { transform:rotate(0deg); opacity:0.8; }
  100% { transform:rotate(-30deg); opacity:0.3; }
}

.scn-pericles-beautifies {
  background: linear-gradient(180deg, #e8d5b0 0%, #c9b48a 100%), radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 50%);
}
.scn-pericles-beautifies .bg-wall { 
  position:absolute; inset:0; background:linear-gradient(135deg, #d8c8a0 0%, #b8a070 100%); 
}
.scn-pericles-beautifies .col-left { 
  position:absolute; top:10%; left:15%; width:20px; height:80%; 
  background:linear-gradient(180deg, #a09070 0%, #7a6a4a 100%); border-radius:10%; 
  box-shadow:inset 0 0 15px rgba(0,0,0,0.2); 
}
.scn-pericles-beautifies .col-right { 
  position:absolute; top:10%; right:15%; width:20px; height:80%; 
  background:linear-gradient(180deg, #a09070 0%, #7a6a4a 100%); border-radius:10%; 
  box-shadow:inset 0 0 15px rgba(0,0,0,0.2); 
}
.scn-pericles-beautifies .altar { 
  position:absolute; bottom:25%; left:38%; width:80px; height:40px; 
  background:linear-gradient(180deg, #c8a870 0%, #a8885a 100%); border-radius:10% 10% 5% 5%; 
  box-shadow:0 -4px 10px rgba(0,0,0,0.3); animation:pe-altar 8s ease-in-out infinite; 
}
.scn-pericles-beautifies .statue { 
  position:absolute; bottom:30%; left:42%; width:20px; height:60px; 
  background:linear-gradient(180deg, #f5e5c0 0%, #d0b88a 100%); 
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; 
  box-shadow:0 0 20px 6px rgba(255,232,192,0.3); animation:pe-statue 6s ease-in-out infinite; 
}
.scn-pericles-beautifies .figure { 
  position:absolute; bottom:28%; left:30%; width:30px; height:80px; 
  background:linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); 
  border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; 
  transform-origin:bottom center; animation:pe-figure 10s ease-in-out infinite; 
}
.scn-pericles-beautifies .light-beam { 
  position:absolute; top:0; left:40%; width:30px; height:100%; 
  background:linear-gradient(180deg, rgba(255,232,192,0.4) 0%, transparent 80%); 
  clip-path:polygon(30% 0, 70% 0, 80% 100%, 20% 100%); animation:pe-beam 4s ease-in-out infinite alternate; 
}
@keyframes pe-altar {
  0% { box-shadow:0 -4px 10px rgba(0,0,0,0.3); }
  50% { box-shadow:0 -4px 20px rgba(0,0,0,0.4); }
  100% { box-shadow:0 -4px 10px rgba(0,0,0,0.3); }
}
@keyframes pe-statue {
  0% { opacity:0.9; transform:translateY(0); }
  50% { opacity:1; transform:translateY(-2px); }
  100% { opacity:0.9; transform:translateY(0); }
}
@keyframes pe-figure {
  0% { transform:translate(0,0) rotate(0deg); }
  25% { transform:translate(1px,-1px) rotate(1deg); }
  50% { transform:translate(0,0) rotate(0deg); }
  75% { transform:translate(-1px,-1px) rotate(-1deg); }
  100% { transform:translate(0,0) rotate(0deg); }
}
@keyframes pe-beam {
  0% { opacity:0.3; transform:scaleX(0.9); }
  100% { opacity:0.7; transform:scaleX(1.1); }
}

.scn-departure-to-pentapolis {
  background: linear-gradient(180deg, #87ceeb 0%, #ffd580 40%, #f9a825 100%), radial-gradient(ellipse at 50% 30%, #fff4e0 0%, transparent 60%);
}
.scn-departure-to-pentapolis .sky { 
  position:absolute; inset:0 0 40% 0; 
  background:linear-gradient(180deg, #7ec8e3 0%, #f5c86a 70%, transparent 100%); 
  animation:dp-sky 15s ease-in-out infinite alternate; 
}
.scn-departure-to-pentapolis .sea { 
  position:absolute; bottom:0; left:0; right:0; height:45%; 
  background:linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 40%, #0a2a4a 100%); 
  animation:dp-sea 8s ease-in-out infinite; 
}
.scn-departure-to-pentapolis .sun { 
  position:absolute; top:20%; left:60%; width:40px; height:40px; 
  background:radial-gradient(circle, #ffe680 0%, #f9a825 70%); border-radius:50%; 
  box-shadow:0 0 30px 10px rgba(255,214,100,0.6); animation:dp-sun 6s ease-in-out infinite alternate; 
}
.scn-departure-to-pentapolis .cloud-a { 
  position:absolute; top:12%; left:10%; width:90px; height:20px; 
  background:linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); 
  border-radius:50%; filter:blur(8px); animation:dp-cloud-a 40s linear infinite; 
}
.scn-departure-to-pentapolis .cloud-b { 
  position:absolute; top:25%; right:20%; width:70px; height:15px; 
  background:linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%); 
  border-radius:50%; filter:blur(6px); animation:dp-cloud-b 30s linear infinite reverse; 
}
.scn-departure-to-pentapolis .ship { 
  position:absolute; bottom:20%; left:40%; width:60px; height:30px; 
  background:linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); 
  border-radius:20% 20% 40% 40% / 40% 40% 60% 60%; animation:dp-ship 12s ease-in-out infinite; 
}
.scn-departure-to-pentapolis .sail-fore { 
  position:absolute; bottom:28%; left:42%; width:20px; height:50px; 
  background:linear-gradient(180deg, #f5e8c0 0%, #d0b88a 100%); 
  clip-path:polygon(0 0, 100% 10%, 80% 100%, 20% 100%); animation:dp-sail-f 10s ease-in-out infinite; 
}
.scn-departure-to-pentapolis .sail-aft { 
  position:absolute; bottom:28%; left:35%; width:18px; height:45px; 
  background:linear-gradient(180deg, #f0dbb0 0%, #c8a070 100%); 
  clip-path:polygon(0% 10%, 100% 0%, 80% 100%, 20% 100%); animation:dp-sail-a 10s ease-in-out infinite 3s; 
}
@keyframes dp-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes dp-sea {
  0% { background-position:0 0; transform:translateY(0); }
  50% { background-position:10% 0; transform:translateY(-2px); }
  100% { background-position:0 0; transform:translateY(0); }
}
@keyframes dp-sun {
  0% { transform:scale(1); box-shadow:0 0 20px 5px rgba(255,214,100,0.5); }
  100% { transform:scale(1.05); box-shadow:0 0 40px 15px rgba(255,214,100,0.7); }
}
@keyframes dp-cloud-a {
  0% { transform:translateX(0); }
  100% { transform:translateX(120vw); }
}
@keyframes dp-cloud-b {
  0% { transform:translateX(0); }
  100% { transform:translateX(-80vw); }
}
@keyframes dp-ship {
  0% { transform:translate(0,0) rotate(-1deg); }
  25% { transform:translate(2px,-1px) rotate(1deg); }
  50% { transform:translate(0,0) rotate(0deg); }
  75% { transform:translate(-2px,-1px) rotate(-1deg); }
  100% { transform:translate(0,0) rotate(-1deg); }
}
@keyframes dp-sail-f {
  0% { transform:rotate(0deg); }
  50% { transform:rotate(3deg); }
  100% { transform:rotate(0deg); }
}
@keyframes dp-sail-a {
  0% { transform:rotate(0deg); }
  50% { transform:rotate(-3deg); }
  100% { transform:rotate(0deg); }
}

.scn-gower-epilogue {
  background: linear-gradient(180deg, #2c2a3a 0%, #1a1a2a 100%), radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 70%);
}
.scn-gower-epilogue .curtain-left { 
  position:absolute; top:0; left:0; width:25%; height:100%; 
  background:linear-gradient(90deg, #4a1a2a 0%, #7a3a4a 50%, #4a1a2a 100%); 
  border-radius:0 30% 30% 0 / 0 10% 10% 0; 
  animation:go-curtain 12s ease-in-out infinite alternate; 
}
.scn-gower-epilogue .curtain-right { 
  position:absolute; top:0; right:0; width:25%; height:100%; 
  background:linear-gradient(270deg, #4a1a2a 0%, #7a3a4a 50%, #4a1a2a 100%); 
  border-radius:30% 0 0 30% / 10% 0 0 10%; 
  animation:go-curtain 12s ease-in-out infinite alternate-reverse; 
}
.scn-gower-epilogue .stage-floor { 
  position:absolute; bottom:0; left:20%; right:20%; height:20%; 
  background:linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); 
  border-radius:10% 10% 0 0; box-shadow:0 -6px 20px rgba(0,0,0,0.5); 
  animation:go-floor 6s ease-in-out infinite; 
}
.scn-gower-epilogue .figure { 
  position:absolute; bottom:12%; left:38%; width:30px; height:80px; 
  background:linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); 
  border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; 
  transform-origin:bottom center; animation:go-figure 10s ease-in-out infinite; 
}
.scn-gower-epilogue .crown { 
  position:absolute; top:20%; left:46%; width:24px; height:16px; 
  background:linear-gradient(180deg, #b8860b 0%, #8a6508 100%); 
  clip-path:polygon(0 100%, 20% 0%, 50% 40%, 80% 0%, 100% 100%); 
  filter:drop-shadow(0 0 8px rgba(184,134,11,0.6)); 
  animation:go-crown 8s ease-in-out infinite; 
}
.scn-gower-epilogue .light-spot { 
  position:absolute; top:0; left:38%; width:30px; height:100%; 
  background:linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 70%); 
  clip-path:polygon(30% 0, 70% 0, 60% 100%, 40% 100%); 
  animation:go-spot 3s ease-in-out infinite alternate; 
}
.scn-gower-epilogue .shadow-arch { 
  position:absolute; top:10%; left:30%; width:40%; height:40%; 
  border:2px solid rgba(0,0,0,0.3); border-radius:50% 50% 0 0; 
  border-left-color:transparent; border-right-color:transparent; 
  animation:go-arch 15s linear infinite; 
}
@keyframes go-curtain {
  0% { transform:translateX(0); }
  100% { transform:translateX(-5px); }
}
@keyframes go-floor {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes go-figure {
  0% { transform:translate(0,0) rotate(0deg); }
  25% { transform:translate(1px,-1px) rotate(1deg); }
  50% { transform:translate(0,0) rotate(-1deg); }
  75% { transform:translate(-1px,-1px) rotate(1deg); }
  100% { transform:translate(0,0) rotate(0deg); }
}
@keyframes go-crown {
  0% { transform:translateY(0) rotate(0deg); }
  50% { transform:translateY(-10px) rotate(5deg); }
  100% { transform:translateY(0) rotate(0deg); }
}
@keyframes go-spot {
  0% { opacity:0.4; transform:scaleX(0.8); }
  100% { opacity:0.8; transform:scaleX(1.2); }
}
@keyframes go-arch {
  0% { border-color:rgba(0,0,0,0.2); }
  50% { border-color:rgba(0,0,0,0.5); }
  100% { border-color:rgba(0,0,0,0.2); }
}

.scn-item-torch-device { background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 30%, #E8F4F8 60%, #F5E6CA 100%), radial-gradient(ellipse at 70% 30%, #FFF8DC 0%, transparent 50%); }

.scn-item-torch-device .itd-sky { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #B0D4E8 0%, #D4E8F0 100%); animation: itd-sky 12s ease-in-out infinite alternate; }

.scn-item-torch-device .itd-torse { position:absolute; bottom:25%; left:44%; width:12%; height:10%; background:linear-gradient(180deg, #FFD700 0%, #DAA520 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow:0 4px 8px rgba(0,0,0,.2); transform-style:preserve-3d; animation:itd-torse 6s ease-in-out infinite alternate; }

.scn-item-torch-device .itd-gauntlet { position:absolute; bottom:32%; left:46.5%; width:7%; height:12%; background:linear-gradient(180deg, #C0C0C0 0%, #A0A0A0 60%, #808080 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow:0 2px 6px rgba(0,0,0,.3); transform-origin:bottom center; animation:itd-gauntlet 4s ease-in-out infinite alternate; }

.scn-item-torch-device .itd-stem { position:absolute; bottom:36%; left:49%; width:2%; height:20%; background:linear-gradient(180deg, #8B4513 0%, #A0522D 50%, #8B4513 100%); border-radius:20% 20% 10% 10%; box-shadow:0 2px 4px rgba(0,0,0,.4); animation:itd-stem 3s ease-in-out infinite; }

.scn-item-torch-device .itd-flame { position:absolute; bottom:54%; left:48.5%; width:3%; height:6%; background:radial-gradient(ellipse 50% 100%, #FFD700 0%, #FFA500 40%, #FF4500 70%, transparent 100%); border-radius:50% 50% 20% 20% / 60% 60% 40% 40%; filter:blur(1px); animation:itd-flame 1.5s ease-in-out infinite alternate; }

.scn-item-torch-device .itd-glow { position:absolute; bottom:52%; left:47%; width:6%; height:12%; background:radial-gradient(ellipse, rgba(255,215,0,.2) 0%, transparent 70%); border-radius:50%; filter:blur(6px); animation:itd-glow 2.5s ease-in-out infinite alternate; }

.scn-item-torch-device .itd-ribbon-l { position:absolute; bottom:15%; left:35%; width:14%; height:3%; background:linear-gradient(180deg, #B22222 0%, #8B0000 100%); border-radius:2px; transform-origin:right center; box-shadow:0 1px 3px rgba(0,0,0,.3); animation:itd-ribbon-l 8s ease-in-out infinite alternate; }

.scn-item-torch-device .itd-ribbon-r { position:absolute; bottom:15%; right:35%; width:14%; height:3%; background:linear-gradient(180deg, #B22222 0%, #8B0000 100%); border-radius:2px; transform-origin:left center; box-shadow:0 1px 3px rgba(0,0,0,.3); animation:itd-ribbon-r 8s ease-in-out infinite alternate; }

@keyframes itd-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes itd-torse { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes itd-gauntlet { 0% { transform:translateY(0) rotate(-1deg) } 50% { transform:translateY(-2px) rotate(1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes itd-stem { 0%,100% { transform:translateX(0) } 50% { transform:translateX(1px) } }
@keyframes itd-flame { 0% { transform:scaleY(1) scaleX(1) } 50% { transform:scaleY(1.15) scaleX(.9) } 100% { transform:scaleY(.95) scaleX(1.05) } }
@keyframes itd-glow { 0% { opacity:.5; transform:scale(1) } 50% { opacity:.8; transform:scale(1.2) } 100% { opacity:.6; transform:scale(.95) } }
@keyframes itd-ribbon-l { 0% { transform:rotate(-20deg) scaleX(1) } 50% { transform:rotate(-25deg) scaleX(1.05) } 100% { transform:rotate(-18deg) scaleX(.98) } }
@keyframes itd-ribbon-r { 0% { transform:rotate(20deg) scaleX(1) } 50% { transform:rotate(25deg) scaleX(1.05) } 100% { transform:rotate(18deg) scaleX(.98) } }

.scn-pericles-branch-device { background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #F0E6C0 100%), radial-gradient(ellipse at 50% 0%, #E0F0FF 0%, transparent 60%); }

.scn-pericles-branch-device .pbd-sky { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #B0D4E8 0%, #D4E8F0 60%, #E8F4F8 100%); animation:pbd-sky 15s ease-in-out infinite alternate; }

.scn-pericles-branch-device .pbd-ground { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #8B7355 0%, #6B5B45 50%, #4A3B2A 100%); border-radius:30% 70% 0 0 / 60% 40% 0 0; box-shadow:inset 0 10px 30px rgba(0,0,0,.3); animation:pbd-ground 20s ease-in-out infinite alternate; }

.scn-pericles-branch-device .pbd-stem { position:absolute; bottom:30%; left:48%; width:4%; height:40%; background:linear-gradient(180deg, #8B7355 0%, #6B5B45 40%, #5C4A33 100%); border-radius:20% 20% 10% 10%; box-shadow:2px 0 6px rgba(0,0,0,.2); transform-origin:bottom center; animation:pbd-stem 8s ease-in-out infinite alternate; }

.scn-pericles-branch-device .pbd-top { position:absolute; bottom:60%; left:46%; width:8%; height:6%; background:linear-gradient(180deg, #4CAF50 0%, #388E3C 50%, #2E7D32 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow:0 0 20px 8px rgba(76,175,80,.3), 0 0 40px 16px rgba(76,175,80,.15); animation:pbd-top 4s ease-in-out infinite alternate; }

.scn-pericles-branch-device .pbd-radiance { position:absolute; bottom:56%; left:43%; width:14%; height:16%; background:radial-gradient(ellipse, rgba(144,238,144,.15) 0%, transparent 70%); border-radius:50%; filter:blur(10px); animation:pbd-radiance 6s ease-in-out infinite alternate; }

.scn-pericles-branch-device .pbd-leaf1 { position:absolute; bottom:56%; left:44%; width:6%; height:4%; background:linear-gradient(135deg, #66BB6A 0%, #43A047 100%); border-radius:50% 20% 50% 20% / 60% 30% 70% 30%; transform:rotate(-30deg); animation:pbd-leaf1 5s ease-in-out infinite alternate; }

.scn-pericles-branch-device .pbd-leaf2 { position:absolute; bottom:58%; left:48%; width:5%; height:3.5%; background:linear-gradient(45deg, #81C784 0%, #4CAF50 100%); border-radius:20% 50% 20% 50% / 30% 60% 30% 70%; transform:rotate(20deg); animation:pbd-leaf2 5.5s ease-in-out infinite alternate-reverse; }

.scn-pericles-branch-device .pbd-leaf3 { position:absolute; bottom:62%; left:46.5%; width:4%; height:3%; background:linear-gradient(160deg, #A5D6A7 0%, #66BB6A 100%); border-radius:40% 20% 40% 20% / 50% 30% 50% 30%; transform:rotate(-10deg); animation:pbd-leaf3 4.5s ease-in-out infinite alternate; }

@keyframes pbd-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pbd-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) } 100% { transform:translateY(0) } }
@keyframes pbd-stem { 0%,100% { transform:rotate(-1deg) scaleY(1) } 50% { transform:rotate(1deg) scaleY(1.02) } }
@keyframes pbd-top { 0% { transform:scale(1) } 50% { transform:scale(1.08) } 100% { transform:scale(.97) } }
@keyframes pbd-radiance { 0% { opacity:.4; transform:scale(1) } 50% { opacity:.7; transform:scale(1.3) } 100% { opacity:.5; transform:scale(.95) } }
@keyframes pbd-leaf1 { 0% { transform:rotate(-35deg) scaleY(1) } 50% { transform:rotate(-25deg) scaleY(1.1) } 100% { transform:rotate(-30deg) scaleY(.95) } }
@keyframes pbd-leaf2 { 0% { transform:rotate(15deg) scaleY(1) } 50% { transform:rotate(25deg) scaleY(1.08) } 100% { transform:rotate(20deg) scaleY(.97) } }
@keyframes pbd-leaf3 { 0% { transform:rotate(-15deg) scaleX(1) } 50% { transform:rotate(-5deg) scaleX(1.12) } 100% { transform:rotate(-10deg) scaleX(.96) } }

.scn-withdraw-gallery { background: linear-gradient(180deg, #2C3E50 0%, #34495E 30%, #5D6D7E 60%, #7F8C8D 100%), radial-gradient(ellipse at 50% 40%, #F0E68C 0%, transparent 40%); }

.scn-withdraw-gallery .wdg-wall { position:absolute; inset:0 0 25% 0; background:linear-gradient(180deg, #5D6D7E 0%, #7F8C8D 40%, #95A5A6 100%); box-shadow:inset 0 -20px 40px rgba(0,0,0,.3); animation:wdg-wall 10s ease-in-out infinite alternate; }

.scn-withdraw-gallery .wdg-arch { position:absolute; bottom:25%; left:50%; width:40%; height:45%; transform:translateX(-50%); background:radial-gradient(ellipse 50% 60%, #F0E68C 0%, #E8D882 20%, transparent 70%); border-radius:50% 50% 0 0 / 80% 80% 0 0; box-shadow:inset 0 0 60px rgba(240,230,140,.15); animation:wdg-arch 8s ease-in-out infinite alternate; }

.scn-withdraw-gallery .wdg-floor { position:absolute; bottom:0; left:0; right:0; height:28%; background:linear-gradient(180deg, #2C3E50 0%, #1A252F 50%, #0F171E 100%); box-shadow:inset 0 20px 40px rgba(0,0,0,.5); animation:wdg-floor 12s ease-in-out infinite alternate; }

.scn-withdraw-gallery .wdg-shadow { position:absolute; bottom:25%; left:30%; width:40%; height:8%; background:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 30%, rgba(0,0,0,.5) 50%, rgba(0,0,0,.3) 70%, transparent 100%); border-radius:50%; filter:blur(4px); animation:wdg-shadow 7s ease-in-out infinite alternate; }

.scn-withdraw-gallery .wdg-knight1 { position:absolute; bottom:25%; left:20%; width:6%; height:14%; background:linear-gradient(180deg, #4A4A4A 0%, #2C2C2C 50%, #1A1A1A 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; box-shadow:2px 0 6px rgba(0,0,0,.4); animation:wdg-knight1 5s ease-in-out infinite alternate; }

.scn-withdraw-gallery .wdg-knight2 { position:absolute; bottom:25%; left:35%; width:5%; height:13%; background:linear-gradient(180deg, #3A3A3A 0%, #222222 50%, #111111 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; box-shadow:2px 0 6px rgba(0,0,0,.4); animation:wdg-knight2 5.5s ease-in-out infinite alternate-reverse; }

.scn-withdraw-gallery .wdg-knight3 { position:absolute; bottom:25%; left:50%; width:8%; height:16%; background:linear-gradient(180deg, #5A5A5A 0%, #3C3C3C 50%, #2A2A2A 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; box-shadow:2px 0 6px rgba(0,0,0,.4); transform:translateX(-50%); animation:wdg-knight3 6s ease-in-out infinite alternate; }

.scn-withdraw-gallery .wdg-column-l { position:absolute; bottom:0; left:20%; width:4%; height:75%; background:linear-gradient(90deg, #4A4A4A 0%, #6A6A6A 30%, #5A5A5A 60%, #3A3A3A 100%); box-shadow:4px 0 12px rgba(0,0,0,.3); animation:wdg-column-l 15s ease-in-out infinite alternate; }

.scn-withdraw-gallery .wdg-column-r { position:absolute; bottom:0; right:20%; width:4%; height:75%; background:linear-gradient(90deg, #3A3A3A 0%, #5A5A5A 30%, #6A6A6A 60%, #4A4A4A 100%); box-shadow:-4px 0 12px rgba(0,0,0,.3); animation:wdg-column-r 15s ease-in-out infinite alternate-reverse; }

@keyframes wdg-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes wdg-arch { 0% { opacity:.7; filter:brightness(.95) } 50% { opacity:1; filter:brightness(1.08) } 100% { opacity:.8; filter:brightness(.98) } }
@keyframes wdg-floor { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes wdg-shadow { 0% { transform:scaleX(1); opacity:.5 } 50% { transform:scaleX(1.05); opacity:.7 } 100% { transform:scaleX(.98); opacity:.55 } }
@keyframes wdg-knight1 { 0% { transform:translateX(0) translateY(0) rotate(-.5deg) } 30% { transform:translateX(-4px) translateY(1px) rotate(.3deg) } 60% { transform:translateX(-8px) translateY(-1px) rotate(-.2deg) } 100% { transform:translateX(-12px) translateY(0) rotate(0deg) } }
@keyframes wdg-knight2 { 0% { transform:translateX(0) translateY(0) rotate(.3deg) } 30% { transform:translateX(-3px) translateY(1px) rotate(-.2deg) } 70% { transform:translateX(-7px) translateY(-1px) rotate(.4deg) } 100% { transform:translateX(-10px) translateY(0) rotate(0deg) } }
@keyframes wdg-knight3 { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-3px) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes wdg-column-l { 0% { filter:brightness(.9) } 50% { filter:brightness(1) } 100% { filter:brightness(.92) } }
@keyframes wdg-column-r { 0% { filter:brightness(.92) } 50% { filter:brightness(1) } 100% { filter:brightness(.9) } }

.scn-banquet-welcome { background: linear-gradient(180deg, #1A0A00 0%, #3A1A00 20%, #6B3A1A 50%, #8B5A2B 80%, #A07040 100%), radial-gradient(ellipse at 50% 40%, #FFD700 0%, transparent 50%); }

.scn-banquet-welcome .bqw-wall { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #5C3A1E 0%, #8B5A2B 30%, #A07040 60%, #C08A5A 100%); box-shadow:inset 0 -30px 60px rgba(0,0,0,.4); animation:bqw-wall 12s ease-in-out infinite alternate; }

.scn-banquet-welcome .bqw-table { position:absolute; bottom:20%; left:15%; width:70%; height:8%; background:linear-gradient(180deg, #6B3A1A 0%, #4A2A0A 50%, #3A1A00 100%); border-radius:4px; box-shadow:0 8px 20px rgba(0,0,0,.5); animation:bqw-table 8s ease-in-out infinite alternate; }

.scn-banquet-welcome .bqw-cloth { position:absolute; bottom:20%; left:20%; width:60%; height:15%; background:linear-gradient(180deg, #F5F5DC 0%, #E8E0C8 50%, #D4C8A8 100%); border-radius:0 0 20% 20% / 0 0 40% 40%; box-shadow:0 4px 12px rgba(0,0,0,.2); animation:bqw-cloth 10s ease-in-out infinite alternate; }

.scn-banquet-welcome .bqw-goblet { position:absolute; bottom:26%; left:35%; width:4%; height:10%; background:linear-gradient(180deg, #FFD700 0%, #DAA520 50%, #B8860B 100%); border-radius:10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow:0 0 12px 4px rgba(255,215,0,.2); transform-origin:bottom center; animation:bqw-goblet 6s ease-in-out infinite alternate; }

.scn-banquet-welcome .bqw-platter { position:absolute; bottom:24%; left:55%; width:10%; height:4%; background:linear-gradient(180deg, #C0C0C0 0%, #A0A0A0 50%, #808080 100%); border-radius:30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow:0 2px 6px rgba(0,0,0,.3); animation:bqw-platter 7s ease-in-out infinite alternate-reverse; }

.scn-banquet-welcome .bqw-figure1 { position:absolute; bottom:22%; left:28%; width:6%; height:16%; background:linear-gradient(180deg, #5C3A1E 0%, #3A1A00 60%, #1A0A00 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; box-shadow:2px 0 8px rgba(0,0,0,.4); animation:bqw-figure1 5s ease-in-out infinite alternate; }

.scn-banquet-welcome .bqw-figure2 { position:absolute; bottom:22%; right:30%; width:6%; height:16%; background:linear-gradient(180deg, #5C3A1E 0%, #3A1A00 60%, #1A0A00 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; box-shadow:-2px 0 8px rgba(0,0,0,.4); animation:bqw-figure2 5.5s ease-in-out infinite alternate-reverse; }

.scn-banquet-welcome .bqw-candle { position:absolute; bottom:36%; left:48%; width:2%; height:14%; background:linear-gradient(180deg, #F5F5DC 0%, #E8E0C8 60%, #D4C8A8 100%); border-radius:10% 10% 20% 20%; box-shadow:0 0 16px 8px rgba(255,215,0,.3); animation:bqw-candle 4s ease-in-out infinite alternate; }

.scn-banquet-welcome .bqw-glow { position:absolute; bottom:38%; left:46%; width:8%; height:16%; background:radial-gradient(ellipse, rgba(255,215,0,.12) 0%, transparent 70%); border-radius:50%; filter:blur(8px); animation:bqw-glow 3s ease-in-out infinite alternate; }

@keyframes bqw-wall { 0% { filter:brightness(.9) } 50% { filter:brightness(1.05) } 100% { filter:brightness(.95) } }
@keyframes bqw-table { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes bqw-cloth { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(-3px) scaleX(1.02) } 100% { transform:translateY(0) scaleX(.98) } }
@keyframes bqw-goblet { 0% { transform:translateY(0) rotate(-2deg) scaleY(1) } 50% { transform:translateY(-2px) rotate(0deg) scaleY(1.04) } 100% { transform:translateY(0) rotate(2deg) scaleY(.98) } }
@keyframes bqw-platter { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(-1px) scaleX(1.03) } 100% { transform:translateY(0) scaleX(.98) } }
@keyframes bqw-figure1 { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 30% { transform:translateX(2px) translateY(-2px) rotate(.5deg) } 70% { transform:translateX(5px) translateY(-1px) rotate(-.3deg) } 100% { transform:translateX(8px) translateY(0) rotate(0deg) } }
@keyframes bqw-figure2 { 0% { transform:translateX(0) translateY(0) rotate(1deg) } 30% { transform:translateX(-2px) translateY(-2px) rotate(-.5deg) } 70% { transform:translateX(-5px) translateY(-1px) rotate(.3deg) } 100% { transform:translateX(-8px) translateY(0) rotate(0deg) } }
@keyframes bqw-candle { 0% { opacity:.85; filter:drop-shadow(0 0 6px #FFD700) } 50% { opacity:1; filter:drop-shadow(0 0 12px #FFD700) } 100% { opacity:.9; filter:drop-shadow(0 0 8px #FFD700) } }
@keyframes bqw-glow { 0% { opacity:.5; transform:scale(1) } 50% { opacity:.8; transform:scale(1.15) } 100% { opacity:.6; transform:scale(.95) } }

/* cerimon-grief (dawn, dark mood) */
.scn-cerimon-grief {
  background:
    linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 30%, #0e0e1a 70%),
    radial-gradient(ellipse at 30% 60%, #3a2a4a 0%, transparent 60%);
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.scn-cerimon-grief .room-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2e2e3e 0%, #1e1e2e 50%, #2e2e3e 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-cerimon-grief .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-cerimon-grief .window {
  position: absolute;
  top: 15%;
  left: 65%;
  width: 80px;
  height: 120px;
  background: #1a1a3e;
  border: 4px solid #3e2e1e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(100,80,200,0.3);
  animation: cg-window 20s ease-in-out infinite alternate;
}
.scn-cerimon-grief .dawn-sky {
  position: absolute;
  top: 15%;
  left: 65%;
  width: 76px;
  height: 116px;
  margin: 2px;
  background: linear-gradient(180deg, #5a4a7a 0%, #8a7aaa 40%, #c0a070 70%, #e0b060 100%);
  border-radius: 2px;
  opacity: 0.7;
  animation: cg-dawn 30s ease-in-out infinite alternate;
}
.scn-cerimon-grief .fireplace {
  position: absolute;
  bottom: 30%;
  left: 25%;
  width: 120px;
  height: 140px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 20% 20% 8% 8% / 40% 40% 8% 8%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
}
.scn-cerimon-grief .fire {
  position: absolute;
  bottom: 34%;
  left: 32%;
  width: 60px;
  height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #803010 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: cg-fire 2s ease-in-out infinite alternate;
  filter: blur(2px);
}
.scn-cerimon-grief .figure {
  position: absolute;
  bottom: 27%;
  left: 10%;
  width: 28px;
  height: 70px;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cg-figure 6s ease-in-out infinite;
}
.scn-cerimon-grief .box {
  position: absolute;
  bottom: 26%;
  left: 18%;
  width: 40px;
  height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: cg-box 12s ease-in-out infinite;
}
@keyframes cg-window {
  0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(100,80,200,0.2); }
  50% { opacity: 0.9; box-shadow: inset 0 0 40px rgba(180,140,240,0.4); }
  100% { opacity: 0.7; box-shadow: inset 0 0 25px rgba(100,80,200,0.3); }
}
@keyframes cg-dawn {
  0% { opacity: 0.5; background-position: 0 0; }
  50% { opacity: 0.9; background-position: 0 -20px; }
  100% { opacity: 0.6; background-position: 0 10px; }
}
@keyframes cg-fire {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.08) translateY(-4px); opacity: 1; }
  100% { transform: scale(0.95) translateY(2px); opacity: 0.7; }
}
@keyframes cg-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cg-box {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(1); }
}

/* miracle-revival (firelit, tense) */
.scn-miracle-revival {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1a0e0a 100%),
    radial-gradient(ellipse at 60% 80%, #5a2a0a 0%, transparent 70%);
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.scn-miracle-revival .bg-chamber {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0e 50%, #1a0e0a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
}
.scn-miracle-revival .fire {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 80px;
  height: 120px;
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #a04010 50%, transparent 80%);
  border-radius: 50% 50% 10% 10%;
  animation: mr-fire 1.5s ease-in-out infinite alternate;
  filter: blur(3px);
}
.scn-miracle-revival .queen {
  position: absolute;
  bottom: 10%;
  left: 45%;
  width: 40px;
  height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mr-queen 4s ease-in-out infinite;
}
.scn-miracle-revival .cerimon {
  position: absolute;
  bottom: 15%;
  right: 15%;
  width: 30px;
  height: 80px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mr-cerimon 6s ease-in-out infinite;
}
.scn-miracle-revival .cloth {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 60px;
  height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20%;
  transform: rotate(-15deg);
  animation: mr-cloth 5s ease-in-out infinite;
}
.scn-miracle-revival .viol {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 18px;
  height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 20% 20% 60% 60%;
  transform: rotate(-20deg);
  animation: mr-viol 3s ease-in-out infinite;
}
.scn-miracle-revival .glow {
  position: absolute;
  top: 10%;
  left: 50%;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, rgba(255,200,150,0.4) 0%, transparent 70%);
  animation: mr-glow 2s ease-in-out infinite alternate;
}
@keyframes mr-fire {
  0% { transform: scale(1) rotate(-2deg); opacity: 0.8; }
  50% { transform: scale(1.12) rotate(2deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(-1deg); opacity: 0.7; }
}
@keyframes mr-queen {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mr-cerimon {
  0% { transform: translateX(0) rotate(-2deg); }
  33% { transform: translateX(4px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mr-cloth {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(-10deg) translateX(3px); }
  100% { transform: rotate(-18deg) translateX(-2px); }
}
@keyframes mr-viol {
  0% { transform: rotate(-20deg) scale(1); }
  50% { transform: rotate(-15deg) scale(1.03); }
  100% { transform: rotate(-22deg) scale(0.98); }
}
@keyframes mr-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}

/* thaisa-awakes (firelit, warm) */
.scn-thaisa-awakes {
  background:
    linear-gradient(180deg, #4a2a0e 0%, #3a1a0a 40%, #2a0e06 100%),
    radial-gradient(ellipse at 40% 70%, #7a3a0a 0%, transparent 60%);
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.scn-thaisa-awakes .bg-chamber {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #5a2a0a 0%, #3a1a06 50%, #1a0a02 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.6);
}
.scn-thaisa-awakes .fire {
  position: absolute;
  bottom: 15%;
  left: 10%;
  width: 100px;
  height: 130px;
  background: radial-gradient(ellipse at 50% 100%, #ffa050 0%, #b05020 50%, transparent 80%);
  border-radius: 50% 50% 10% 10%;
  animation: ta-fire 3s ease-in-out infinite alternate;
  filter: blur(4px);
}
.scn-thaisa-awakes .bed {
  position: absolute;
  bottom: 5%;
  left: 30%;
  width: 200px;
  height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-thaisa-awakes .thaisa {
  position: absolute;
  bottom: 8%;
  left: 35%;
  width: 45px;
  height: 55px;
  background: linear-gradient(180deg, #6a3a1a 0%, #4a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ta-thaisa 8s ease-in-out infinite;
}
.scn-thaisa-awakes .hands {
  position: absolute;
  bottom: 14%;
  left: 40%;
  width: 30px;
  height: 20px;
  background: linear-gradient(180deg, #6a3a1a 0%, #4a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: rotate(-30deg);
  animation: ta-hands 5s ease-in-out infinite;
}
.scn-thaisa-awakes .linen {
  position: absolute;
  bottom: 15%;
  left: 50%;
  width: 50px;
  height: 15px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 20%;
  transform: rotate(10deg);
  animation: ta-linen 6s ease-in-out infinite;
}
.scn-thaisa-awakes .glow {
  position: absolute;
  top: 5%;
  left: 50%;
  width: 150px;
  height: 150px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 60%);
  animation: ta-glow 4s ease-in-out infinite alternate;
}
@keyframes ta-fire {
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.06) translateY(-3px); opacity: 1; }
  100% { transform: scale(0.97) translateY(2px); opacity: 0.85; }
}
@keyframes ta-thaisa {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ta-hands {
  0% { transform: rotate(-30deg) translateX(0); }
  50% { transform: rotate(-25deg) translateX(3px); }
  100% { transform: rotate(-35deg) translateX(-2px); }
}
@keyframes ta-linen {
  0% { transform: rotate(10deg) scale(1); }
  50% { transform: rotate(15deg) scale(1.04); }
  100% { transform: rotate(8deg) scale(0.98); }
}
@keyframes ta-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.08); }
  100% { opacity: 0.5; transform: scale(0.95); }
}

/* leaving-marina-cleons (sunlit, tense) */
.scn-leaving-marina-cleons {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0d4f0 40%, #e8f0ff 70%),
    radial-gradient(ellipse at 50% 100%, #f0e0b0 0%, transparent 70%);
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.scn-leaving-marina-cleons .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8fc8f0 0%, #c0e0ff 50%, #f0f8ff 100%);
  animation: lm-sky 20s ease-in-out infinite alternate;
}
.scn-leaving-marina-cleons .sun {
  position: absolute;
  top: 8%;
  right: 20%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #ffdd88 0%, #ffaa44 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,200,80,0.4);
  animation: lm-sun 30s ease-in-out infinite alternate;
}
.scn-leaving-marina-cleons .city {
  position: absolute;
  bottom: 30%;
  left: 5%;
  right: 5%;
  height: 35%;
  background: linear-gradient(180deg, #b0a080 0%, #7a6a5a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-leaving-marina-cleons .figure-left {
  position: absolute;
  bottom: 22%;
  left: 20%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lm-figure-l 5s ease-in-out infinite;
}
.scn-leaving-marina-cleons .figure-right {
  position: absolute;
  bottom: 22%;
  right: 20%;
  width: 35px;
  height: 75px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lm-figure-r 5s ease-in-out infinite;
  animation-delay: -2.5s;
}
.scn-leaving-marina-cleons .ship {
  position: absolute;
  bottom: 25%;
  right: 10%;
  width: 80px;
  height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  animation: lm-ship 10s ease-in-out infinite;
}
.scn-leaving-marina-cleons .path {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 80%;
  height: 10px;
  background: linear-gradient(90deg, #c0a080 0%, #a08060 50%, #c0a080 100%);
  border-radius: 20%;
  animation: lm-path 12s ease-in-out infinite;
}
@keyframes lm-sky {
  0% { opacity: 0.8; background-position: 0 0; }
  50% { opacity: 1; background-position: 0 -20px; }
  100% { opacity: 0.9; background-position: 0 10px; }
}
@keyframes lm-sun {
  0% { transform: scale(1) translateX(0); box-shadow: 0 0 50px 15px rgba(255,200,80,0.3); }
  50% { transform: scale(1.05) translateX(5px); box-shadow: 0 0 70px 25px rgba(255,200,80,0.5); }
  100% { transform: scale(0.98) translateX(-3px); box-shadow: 0 0 55px 18px rgba(255,200,80,0.4); }
}
@keyframes lm-figure-l {
  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 lm-figure-r {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  50% { transform: translateX(-6px) rotate(0deg); }
  75% { transform: translateX(-9px) rotate(2deg); }
  100% { transform: translateX(-12px) rotate(0deg); }
}
@keyframes lm-ship {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(-5px) rotate(-1deg); }
}
@keyframes lm-path {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.2); }
  100% { opacity: 0.8; transform: scaleY(0.9); }
}

/* brothel-leonine-threatens */
.scn-brothel-leonine-threatens {
  background: linear-gradient(180deg, #0a0a1a 0%, #15152a 40%, #1a1a3e 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a3e 0%, transparent 70%);
}
.scn-brothel-leonine-threatens .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #12122a 0%, #0a0a18 100%);
  animation: blt-bg 12s ease-in-out infinite alternate;
}
.scn-brothel-leonine-threatens .moonbeam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, rgba(200,220,255,0.08) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: blt-beam 10s linear infinite alternate;
}
.scn-brothel-leonine-threatens .leonine {
  position: absolute; bottom: 10%; left: 25%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: blt-leo 6s ease-in-out infinite alternate;
}
.scn-brothel-leonine-threatens .marina {
  position: absolute; bottom: 18%; left: 50%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: blt-marina 4s ease-in-out infinite;
}
.scn-brothel-leonine-threatens .sword {
  position: absolute; bottom: 55%; left: 32%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: blt-sword 6s ease-in-out infinite;
}
.scn-brothel-leonine-threatens .candle {
  position: absolute; bottom: 20%; left: 55%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffcc66 0%, #cc8833 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 12px 4px #ffcc6633, 0 0 24px 8px #ffcc661a;
  animation: blt-candle 3s ease-in-out infinite alternate;
}
.scn-brothel-leonine-threatens .hands {
  position: absolute; bottom: 22%; left: 48%; width: 16px; height: 10px;
  background: transparent;
  border: 2px solid #5a4a4a;
  border-radius: 50% 50% 0 0;
  transform: translateX(-50%);
  animation: blt-hands 4s ease-in-out infinite;
}
.scn-brothel-leonine-threatens .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 120px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: blt-shadow 8s ease-in-out infinite alternate;
}
@keyframes blt-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes blt-beam { 0% { opacity: 0.3; transform: skewX(-10deg) translateX(0) } 50% { opacity: 0.5; transform: skewX(-8deg) translateX(5px) } 100% { opacity: 0.2; transform: skewX(-12deg) translateX(-3px) } }
@keyframes blt-leo { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes blt-marina { 0%, 100% { transform: translateY(0) rotate(-1deg) scaleY(1) } 25% { transform: translateY(-3px) rotate(1deg) scaleY(0.95) } 50% { transform: translateY(0) rotate(0deg) scaleY(1) } 75% { transform: translateY(-2px) rotate(-1deg) scaleY(1.02) } }
@keyframes blt-sword { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(4px) } 100% { transform: rotate(-18deg) translateX(-2px) } }
@keyframes blt-candle { 0% { opacity: 0.8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.1) } 100% { opacity: 0.85; transform: scaleY(0.95) } }
@keyframes blt-hands { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) scale(1.05) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes blt-shadow { 0% { opacity: 0.4; transform: scaleX(1) } 50% { opacity: 0.6; transform: scaleX(1.1) } 100% { opacity: 0.3; transform: scaleX(0.9) } }

/* brothel-marina-innocence */
.scn-brothel-marina-innocence {
  background: linear-gradient(180deg, #0e0e20 0%, #161630 40%, #1c1c3c 100%),
              radial-gradient(ellipse at 30% 70%, #1c1c3c 0%, transparent 70%);
}
.scn-brothel-marina-innocence .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #141428 0%, #0a0a18 100%);
  animation: bmi-bg 15s ease-in-out infinite alternate;
}
.scn-brothel-marina-innocence .spotlight {
  position: absolute; top: 0; left: 25%; width: 50%; height: 80%;
  background: radial-gradient(ellipse at 50% 0%, rgba(180,200,255,0.06) 0%, transparent 70%);
  animation: bmi-spot 12s linear infinite alternate;
}
.scn-brothel-marina-innocence .figure {
  position: absolute; bottom: 15%; left: 40%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bmi-fig 6s ease-in-out infinite;
}
.scn-brothel-marina-innocence .hands {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 12px;
  background: transparent;
  border: 2px solid #4a3a4a;
  border-radius: 60% 60% 0 0;
  transform: translateX(-50%);
  animation: bmi-hands 5s ease-in-out infinite;
}
.scn-brothel-marina-innocence .teardrop {
  position: absolute; bottom: 48%; left: 42%; width: 4px; height: 6px;
  background: radial-gradient(circle, #a0b8ff 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #a0b8ff44;
  animation: bmi-tear 4s ease-in-out infinite;
}
.scn-brothel-marina-innocence .mouse {
  position: absolute; bottom: 12%; left: 55%; width: 10px; height: 6px;
  background: #3a2a2a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: bmi-mouse 10s linear infinite alternate;
}
.scn-brothel-marina-innocence .fly {
  position: absolute; top: 45%; left: 35%; width: 3px; height: 3px;
  background: #4a4a4a;
  border-radius: 50%;
  box-shadow: 0 0 0 1px #4a4a4a33;
  animation: bmi-fly 7s ease-in-out infinite alternate;
}
.scn-brothel-marina-innocence .shadow {
  position: absolute; bottom: 10%; left: 30%; width: 100px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 70%);
  animation: bmi-shadow 9s ease-in-out infinite alternate;
}
@keyframes bmi-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes bmi-spot { 0% { opacity: 0.2; transform: translateX(-5%) } 50% { opacity: 0.4; transform: translateX(0) } 100% { opacity: 0.3; transform: translateX(5%) } }
@keyframes bmi-fig { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(2deg) scaleY(0.98) } 60% { transform: translateY(2px) rotate(-1deg) scaleY(1.02) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bmi-hands { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(3deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg) } }
@keyframes bmi-tear { 0% { opacity: 0; transform: translateY(0) scale(1) } 30% { opacity: 0.8; transform: translateY(10px) scale(1.2) } 60% { opacity: 0.6; transform: translateY(20px) scale(0.9) } 100% { opacity: 0; transform: translateY(30px) scale(0.5) } }
@keyframes bmi-mouse { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(5px) translateY(-1px) } 100% { transform: translateX(-3px) translateY(1px) } }
@keyframes bmi-fly { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(10px,-8px) rotate(30deg) } 50% { transform: translate(-5px,5px) rotate(-20deg) } 75% { transform: translate(8px,3px) rotate(45deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes bmi-shadow { 0% { opacity: 0.4; transform: scaleX(1) } 50% { opacity: 0.6; transform: scaleX(1.1) } 100% { opacity: 0.3; transform: scaleX(0.95) } }

/* brothel-leonine-no-reason */
.scn-brothel-leonine-no-reason {
  background: linear-gradient(180deg, #0a0a1a 0%, #14142a 40%, #1a1a36 100%),
              radial-gradient(ellipse at 70% 30%, #1a1a36 0%, transparent 60%);
}
.scn-brothel-leonine-no-reason .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #12122a 0%, #080818 100%);
  animation: bln-bg 14s ease-in-out infinite alternate;
}
.scn-brothel-leonine-no-reason .light-door {
  position: absolute; bottom: 0; left: 0; width: 30%; height: 80%;
  background: linear-gradient(180deg, rgba(200,190,170,0.08) 0%, transparent 100%);
  border-right: 2px solid #2a2a3e;
  transform: skewY(2deg);
  animation: bln-door 9s linear infinite alternate;
}
.scn-brothel-leonine-no-reason .leo-figure {
  position: absolute; bottom: 10%; left: 20%; width: 26px; height: 76px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bln-leo 7s ease-in-out infinite;
}
.scn-brothel-leonine-no-reason .marina-figure {
  position: absolute; bottom: 12%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bln-marina 5s ease-in-out infinite alternate;
}
.scn-brothel-leonine-no-reason .sword {
  position: absolute; bottom: 60%; left: 22%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  animation: bln-sword 7s ease-in-out infinite;
}
.scn-brothel-leonine-no-reason .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #0a0a12 0%, transparent);
  animation: bln-ground 11s ease-in-out infinite alternate;
}
.scn-brothel-leonine-no-reason .beads {
  position: absolute; bottom: 25%; left: 47%; width: 8px; height: 14px;
  background: transparent;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #4a3a3a, 3px 4px 0 0 #4a3a3a, -2px 7px 0 0 #4a3a3a;
  animation: bln-beads 4s ease-in-out infinite;
}
.scn-brothel-leonine-no-reason .shadow {
  position: absolute; bottom: 10%; left: 15%; width: 140px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: bln-shadow 10s ease-in-out infinite alternate;
}
@keyframes bln-bg { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes bln-door { 0% { opacity: 0.2; transform: skewY(2deg) scaleX(1) } 50% { opacity: 0.4; transform: skewY(0deg) scaleX(1.02) } 100% { opacity: 0.3; transform: skewY(4deg) scaleX(0.98) } }
@keyframes bln-leo { 0% { transform: translateY(0) rotate(0deg) } 40% { transform: translateY(-2px) rotate(-1deg) scaleY(1.01) } 80% { transform: translateY(1px) rotate(2deg) scaleY(0.99) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bln-marina { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(3px) translateY(-2px) rotate(1deg) scale(1.02) } 100% { transform: translateX(-2px) translateY(1px) rotate(-1deg) scale(0.98) } }
@keyframes bln-sword { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(15deg) translateX(3px) } 100% { transform: rotate(8deg) translateX(-2px) } }
@keyframes bln-ground { 0% { opacity: 0.6; transform: scaleY(1) } 50% { opacity: 0.8; transform: scaleY(1.05) } 100% { opacity: 0.7; transform: scaleY(0.95) } }
@keyframes bln-beads { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(2px) rotate(5deg) } 100% { transform: translateY(-1px) rotate(-3deg) } }
@keyframes bln-shadow { 0% { opacity: 0.4; transform: scaleX(1) } 50% { opacity: 0.7; transform: scaleX(1.15) } 100% { opacity: 0.5; transform: scaleX(0.9) } }

/* brothel-leonine-seizes */
.scn-brothel-leonine-seizes {
  background: linear-gradient(180deg, #0a0a1e 0%, #12122e 40%, #181838 100%),
              radial-gradient(ellipse at 60% 80%, #181838 0%, transparent 60%);
}
.scn-brothel-leonine-seizes .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #10102a 0%, #08081a 100%);
  animation: bls-bg 13s ease-in-out infinite alternate;
}
.scn-brothel-leonine-seizes .door {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #1a1a30 0%, #0e0e20 100%);
  border-left: 2px solid #2a2a44;
  animation: bls-door 11s ease-in-out infinite alternate;
}
.scn-brothel-leonine-seizes .leo-arm {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 100%);
  border-radius: 20% 80% 50% 50%;
  transform-origin: right center;
  animation: bls-arm 4s ease-in-out infinite;
}
.scn-brothel-leonine-seizes .marina {
  position: absolute; bottom: 18%; left: 38%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1e1e2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bls-marina 5s ease-in-out infinite;
}
.scn-brothel-leonine-seizes .pirate-1 {
  position: absolute; bottom: 12%; left: 55%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: bls-pir1 8s ease-in-out infinite;
}
.scn-brothel-leonine-seizes .pirate-2 {
  position: absolute; bottom: 10%; left: 65%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #2e2e3e 0%, #1c1c2c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: bls-pir2 9s ease-in-out infinite;
}
.scn-brothel-leonine-seizes .ropes {
  position: absolute; bottom: 20%; left: 15%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  border-radius: 1px;
  transform: rotate(20deg);
  animation: bls-ropes 6s ease-in-out infinite;
}
.scn-brothel-leonine-seizes .dust {
  position: absolute; bottom: 5%; left: 10%; width: 60%; height: 10px;
  background: radial-gradient(ellipse at 50% 100%, rgba(100,90,70,0.15) 0%, transparent 100%);
  animation: bls-dust 8s linear infinite;
}
@keyframes bls-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes bls-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }
@keyframes bls-arm { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(-20deg) translateX(-5px) } 50% { transform: rotate(10deg) translateX(3px) } 75% { transform: rotate(-10deg) translateX(-2px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes bls-marina { 0% { transform: translateY(0) rotate(0deg) scale(1) } 30% { transform: translateY(-4px) rotate(5deg) scale(1.05) } 60% { transform: translateY(2px) rotate(-3deg) scale(0.95) } 100% { transform: translateY(0) rotate(0deg) scale(1) } }
@keyframes bls-pir1 { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(8deg) translateX(5px) scaleY(1.02) } 100% { transform: rotate(2deg) translateX(-3px) scaleY(0.98) } }
@keyframes bls-pir2 { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(-4px) scaleY(1.03) } 100% { transform: rotate(-12deg) translateX(2px) scaleY(0.97) } }
@keyframes bls-ropes { 0% { transform: rotate(20deg) scaleY(1) } 50% { transform: rotate(25deg) scaleY(1.1) } 100% { transform: rotate(15deg) scaleY(0.9) } }
@keyframes bls-dust { 0% { opacity: 0; transform: translateX(0) } 50% { opacity: 0.3; transform: translateX(20px) } 100% { opacity: 0; transform: translateX(50px) } }

.scn-pericles-entrusts-marina { background: linear-gradient(180deg, #1a2a4e 0%, #2c3e6e 40%, #4a6a8e 100%), radial-gradient(ellipse at 70% 20%, #f0c060 0%, transparent 60%); }
.scn-pericles-entrusts-marina .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a4a6e 0%, #4a7a9e 100%); animation: pe-sky 15s ease-in-out infinite alternate; }
.scn-pericles-entrusts-marina .sun { position:absolute; top:8%; right:15%; width:60px; height:60px; background: radial-gradient(circle, #ffd080 0%, #f0a040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px #f0a040, 0 0 120px 40px rgba(240,160,64,0.3); animation: pe-sun 8s ease-in-out infinite alternate; }
.scn-pericles-entrusts-marina .sea { position:absolute; bottom:20%; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a4a6e 0%, #1a2a4e 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; animation: pe-sea 12s ease-in-out infinite; }
.scn-pericles-entrusts-marina .shore { position:absolute; bottom:15%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 60% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,0.5); }
.scn-pericles-entrusts-marina .ship { position:absolute; bottom:32%; left:5%; width:120px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 10% 40% 10% 10% / 50% 80% 30% 30%; transform: rotate(-5deg); animation: pe-ship 20s ease-in-out infinite alternate; }
.scn-pericles-entrusts-marina .ship::after { content:''; position:absolute; top:-25px; left:20px; width:0; height:0; border-left:30px solid transparent; border-right:10px solid transparent; border-bottom:40px solid #1a1a2a; transform: rotate(-10deg); }
.scn-pericles-entrusts-marina .figure-pericles { position:absolute; bottom:18%; left:38%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe-figure1 6s ease-in-out infinite; }
.scn-pericles-entrusts-marina .figure-marina { position:absolute; bottom:18%; left:44%; width:14px; height:30px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe-figure2 6s ease-in-out infinite 0.5s; }
.scn-pericles-entrusts-marina .figure-cleon { position:absolute; bottom:18%; left:50%; width:20px; height:42px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe-figure1 6s ease-in-out infinite 1s; }
.scn-pericles-entrusts-marina .cloud { position:absolute; top:12%; left:30%; width:100px; height:25px; background: linear-gradient(180deg, rgba(200,220,240,0.6) 0%, rgba(200,220,240,0.1) 100%); border-radius:50%; filter: blur(8px); animation: pe-cloud 40s linear infinite; }

@keyframes pe-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes pe-sun { 0% { transform: scale(0.9); box-shadow: 0 0 40px 15px #f0a040; } 50% { transform: scale(1.05); box-shadow: 0 0 80px 25px #ffc060; } 100% { transform: scale(0.95); box-shadow: 0 0 50px 18px #e89030; } }
@keyframes pe-sea { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes pe-ship { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-7deg) translateX(-10px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes pe-figure1 { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-3px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes pe-figure2 { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes pe-cloud { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }

.scn-cleon-vows-care { background: linear-gradient(180deg, #3a2a1a 0%, #6a4a2a 40%, #8a6a4a 100%), radial-gradient(ellipse at 50% 30%, #ffd080 0%, transparent 70%); }
.scn-cleon-vows-care .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.4); }
.scn-cleon-vows-care .window { position:absolute; top:15%; left:25%; width:80px; height:100px; background: linear-gradient(180deg, #c0d0e0 0%, #a0b0c0 100%); border: 4px solid #3a2a1a; border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 20px rgba(255,255,200,0.3), 0 0 40px 10px rgba(255,200,100,0.2); animation: cv-window 5s ease-in-out infinite alternate; }
.scn-cleon-vows-care .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-cleon-vows-care .table { position:absolute; bottom:22%; left:35%; width:60px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: cv-table 9s ease-in-out infinite; }
.scn-cleon-vows-care .figure-cleon { position:absolute; bottom:15%; left:30%; width:22px; height:48px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cv-gesture 4s ease-in-out infinite; }
.scn-cleon-vows-care .figure-pericles { position:absolute; bottom:15%; left:45%; width:20px; height:46px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cv-gesture 4s ease-in-out infinite 1s; }
.scn-cleon-vows-care .light-beam { position:absolute; top:10%; left:22%; width:90px; height:200px; background: linear-gradient(180deg, rgba(255,220,150,0.3) 0%, rgba(255,220,150,0.05) 100%); transform: rotate(15deg); filter: blur(10px); animation: cv-beam 7s ease-in-out infinite alternate; }

@keyframes cv-window { 0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3), 0 0 40px 10px rgba(255,200,100,0.2); } 50% { box-shadow: inset 0 0 40px rgba(255,255,200,0.6), 0 0 60px 20px rgba(255,200,100,0.4); } 100% { box-shadow: inset 0 0 15px rgba(255,255,200,0.2), 0 0 30px 8px rgba(255,200,100,0.15); } }
@keyframes cv-table { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cv-gesture { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(5px) rotate(0deg); } 50% { transform: translateX(0) rotate(3deg); } 75% { transform: translateX(-5px) rotate(0deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes cv-beam { 0% { opacity:0.3; transform: rotate(15deg) scaleY(0.95); } 50% { opacity:0.7; transform: rotate(18deg) scaleY(1); } 100% { opacity:0.4; transform: rotate(12deg) scaleY(0.98); } }

.scn-dionyza-promises { background: linear-gradient(180deg, #4a6a4a 0%, #6a8a6a 40%, #8aaa8a 100%), radial-gradient(ellipse at 60% 20%, #f0e0a0 0%, transparent 60%); }
.scn-dionyza-promises .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a7a6a 0%, #8ababa 100%); animation: dp-sky 18s ease-in-out infinite alternate; }
.scn-dionyza-promises .grass { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: dp-grass 10s ease-in-out infinite; }
.scn-dionyza-promises .tree { position:absolute; bottom:35%; left:20%; width:30px; height:120px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 10% 10% 5% 5%; transform-origin: bottom center; animation: dp-tree 15s ease-in-out infinite; }
.scn-dionyza-promises .tree::after { content:''; position:absolute; top:-50px; left:-20px; width:80px; height:80px; background: radial-gradient(circle at 50% 50%, #3a5a3a 0%, #2a4a2a 60%, transparent 100%); border-radius:50%; }
.scn-dionyza-promises .flowers-a { position:absolute; bottom:30%; left:30%; width:25px; height:25px; background: radial-gradient(circle, #d08060 0%, #b06040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 15px 5px rgba(208,128,96,0.3); animation: dp-flowers 6s ease-in-out infinite alternate; }
.scn-dionyza-promises .flowers-b { position:absolute; bottom:28%; left:45%; width:20px; height:20px; background: radial-gradient(circle, #d0a080 0%, #b08060 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(208,160,128,0.3); animation: dp-flowers 6s ease-in-out infinite alternate-reverse 0.5s; }
.scn-dionyza-promises .figure-dionyza { position:absolute; bottom:15%; left:35%; width:20px; height:44px; background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-figure 5s ease-in-out infinite; }
.scn-dionyza-promises .figure-marina { position:absolute; bottom:15%; left:42%; width:14px; height:30px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-figure 5s ease-in-out infinite 0.75s; }

@keyframes dp-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes dp-grass { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes dp-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes dp-flowers { 0% { transform: scale(0.9) rotate(-5deg); } 50% { transform: scale(1.1) rotate(0deg); } 100% { transform: scale(0.95) rotate(5deg); } }
@keyframes dp-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-4px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }

.scn-ephesus-temple-vow { background: linear-gradient(180deg, #1a1a2e 0%, #3a3a5e 30%, #5a5a7e 100%), radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, transparent 70%); }
.scn-ephesus-temple-vow .col-left { position:absolute; top:5%; left:15%; width:20px; height:90%; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); border-radius: 5% 5% 0 0; box-shadow: 4px 0 15px rgba(0,0,0,0.3); animation: et-column 12s ease-in-out infinite alternate; }
.scn-ephesus-temple-vow .col-right { position:absolute; top:5%; right:15%; width:20px; height:90%; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); border-radius: 5% 5% 0 0; box-shadow: -4px 0 15px rgba(0,0,0,0.3); animation: et-column 12s ease-in-out infinite alternate-reverse; }
.scn-ephesus-temple-vow .altar { position:absolute; bottom:25%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 -4px 15px rgba(0,0,0,0.5); animation: et-altar 8s ease-in-out infinite; }
.scn-ephesus-temple-vow .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-ephesus-temple-vow .light-beam { position:absolute; top:5%; left:40%; width:80px; height:80%; background: linear-gradient(180deg, rgba(240,224,192,0.3) 0%, rgba(240,224,192,0.05) 100%); transform: rotate(5deg); filter: blur(8px); animation: et-beam 9s ease-in-out infinite alternate; }
.scn-ephesus-temple-vow .figure-thaisa { position:absolute; bottom:20%; left:45%; width:18px; height:38px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: et-kneel 6s ease-in-out infinite; }
.scn-ephesus-temple-vow .figure-pericles { position:absolute; bottom:20%; left:52%; width:20px; height:44px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: et-stand 6s ease-in-out infinite 0.5s; }

@keyframes et-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes et-altar { 0% { box-shadow: 0 -4px 15px rgba(0,0,0,0.5); } 50% { box-shadow: 0 -8px 30px rgba(0,0,0,0.7); } 100% { box-shadow: 0 -4px 15px rgba(0,0,0,0.5); } }
@keyframes et-beam { 0% { opacity:0.4; transform: rotate(5deg) scaleY(0.95); } 50% { opacity:0.8; transform: rotate(8deg) scaleY(1); } 100% { opacity:0.5; transform: rotate(3deg) scaleY(0.97); } }
@keyframes et-kneel { 0% { transform: scaleY(1) translateY(0); } 25% { transform: scaleY(0.95) translateY(2px); } 50% { transform: scaleY(0.9) translateY(4px); } 75% { transform: scaleY(0.95) translateY(2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes et-stand { 0% { transform: rotate(-2deg); } 25% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 75% { transform: rotate(0deg); } 100% { transform: rotate(-2deg); } }

/* boult-ravish – tense, dim interior */
.scn-boult-ravish {
  background: linear-gradient(180deg, #1a1208 0%, #2a1a10 40%, #3a2a1a 70%, #1a1208 100%), 
              radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 60%);
}
.scn-boult-ravish .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, transparent 0%, rgba(10,6,2,0.6) 100%);
  animation: br-bg 8s ease-in-out infinite alternate;
}
.scn-boult-ravish .bed {
  position: absolute; bottom: 10%; left: 10%; width: 55%; height: 30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 8% 8% 4% 4%; 
  box-shadow: inset 0 -12px 20px rgba(0,0,0,0.7);
  animation: br-bed 12s ease-in-out infinite;
}
.scn-boult-ravish .figure-boult {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1208 0%, #0d0905 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-boult 4s ease-in-out infinite;
}
.scn-boult-ravish .figure-marina {
  position: absolute; bottom: 30%; right: 20%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation: br-marina 5s ease-in-out infinite alternate;
  filter: brightness(0.7);
}
.scn-boult-ravish .window-bars {
  position: absolute; top: 8%; right: 8%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
  animation: br-window 9s ease-in-out infinite;
}
.scn-boult-ravish .candle {
  position: absolute; bottom: 38%; left: 22%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #d08030 0%, #8a5a20 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 6px #d08030, 0 0 40px 12px rgba(208,128,48,0.5);
  animation: br-candle 2s ease-in-out infinite alternate;
}
.scn-boult-ravish .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 60%, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: br-shadow 10s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes br-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes br-bed {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes br-boult {
  0%, 100% { transform: translateX(0) rotate(-1deg); }
  33% { transform: translateX(6px) rotate(1deg); }
  66% { transform: translateX(10px) rotate(-2deg); }
}
@keyframes br-marina {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(0.95) translateY(-3px); opacity: 0.7; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.9; }
}
@keyframes br-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 8px rgba(0,0,0,0.6); }
  50% { opacity: 1; box-shadow: inset 0 0 15px rgba(0,0,0,0.9); }
  100% { opacity: 0.8; }
}
@keyframes br-candle {
  0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 15px 4px #d08030; }
  50% { transform: scaleY(1.1) translateY(-1px); box-shadow: 0 0 25px 8px #e09040; }
  100% { transform: scaleY(0.95) translateY(0); box-shadow: 0 0 18px 5px #d08030; }
}
@keyframes br-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}

/* lysistratus-virginities – funny, dim interior */
.scn-lysistratus-virginities {
  background: linear-gradient(180deg, #2a1a10 0%, #4a2a1a 30%, #3a1a0e 70%, #1a0a06 100%),
              radial-gradient(ellipse at 60% 70%, #5a2a1a 0%, transparent 50%);
}
.scn-lysistratus-virginities .bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, transparent 40%, rgba(0,0,0,0.3) 100%);
  animation: lv-bg 6s ease-in-out infinite alternate;
}
.scn-lysistratus-virginities .table {
  position: absolute; bottom: 12%; left: 5%; width: 35%; height: 18%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 6px;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,0.7);
}
.scn-lysistratus-virginities .bawd {
  position: absolute; bottom: 22%; left: 12%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a1a0e 0%, #1a0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lv-bawd 3s ease-in-out infinite;
}
.scn-lysistratus-virginities .virgin-a {
  position: absolute; bottom: 22%; left: 50%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation: lv-virgin 2.5s ease-in-out infinite;
}
.scn-lysistratus-virginities .virgin-b {
  position: absolute; bottom: 22%; left: 60%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation: lv-virgin 2.5s ease-in-out infinite;
  animation-delay: 0.3s;
}
.scn-lysistratus-virginities .virgin-c {
  position: absolute; bottom: 22%; left: 70%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation: lv-virgin 2.5s ease-in-out infinite;
  animation-delay: 0.6s;
}
.scn-lysistratus-virginities .coin-pile {
  position: absolute; bottom: 16%; left: 20%; width: 10px; height: 6px;
  background: radial-gradient(circle, #d08030 0%, #8a5a20 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #d08030;
  animation: lv-coin 4s ease-in-out infinite alternate;
}
.scn-lysistratus-virginities .lantern {
  position: absolute; top: 10%; right: 15%; width: 8px; height: 12px;
  background: radial-gradient(circle, #e09040 0%, #8a5a20 70%);
  border-radius: 30%;
  box-shadow: 0 0 30px 8px #e09040;
  animation: lv-lantern 5s ease-in-out infinite alternate;
}
@keyframes lv-bg {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}
@keyframes lv-bawd {
  0%, 100% { transform: translateX(0) rotate(-2deg) scaleY(1); }
  25% { transform: translateX(3px) rotate(2deg) scaleY(1.02); }
  50% { transform: translateX(-2px) rotate(-3deg) scaleY(0.98); }
  75% { transform: translateX(4px) rotate(1deg) scaleY(1.01); }
}
@keyframes lv-virgin {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(-4px) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(3deg); }
}
@keyframes lv-coin {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-3px) scale(1.1); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.8; }
}
@keyframes lv-lantern {
  0% { transform: scale(1) translateY(0); box-shadow: 0 0 20px 6px #e09040; }
  50% { transform: scale(1.05) translateY(-2px); box-shadow: 0 0 40px 12px #f0a050; }
  100% { transform: scale(0.95) translateY(0); box-shadow: 0 0 25px 8px #e09040; }
}

/* lysistratus-darkness – funny, dim interior */
.scn-lysistratus-darkness {
  background: linear-gradient(180deg, #1a0a06 0%, #2a1a0e 40%, #1a0a06 100%),
              radial-gradient(ellipse at 50% 30%, #3a1a0e 0%, transparent 60%);
}
.scn-lysistratus-darkness .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 50%, rgba(0,0,0,0.4) 100%);
  animation: ld-bg 10s ease-in-out infinite alternate;
}
.scn-lysistratus-darkness .pedestal {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,0.8);
}
.scn-lysistratus-darkness .rose {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #c8553d 0%, #702243 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(200,85,61,0.5);
  animation: ld-rose 4s ease-in-out infinite;
}
.scn-lysistratus-darkness .hand {
  position: absolute; bottom: 28%; left: 30%; width: 12px; height: 22px;
  background: linear-gradient(180deg, #3a1a0e 0%, #1a0a04 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ld-hand 5s ease-in-out infinite alternate;
}
.scn-lysistratus-darkness .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, transparent 0%, rgba(0,0,0,0.7) 100%);
  pointer-events: none;
}
.scn-lysistratus-darkness .glow {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 60px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(200,85,61,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: ld-glow 3s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes ld-bg {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes ld-rose {
  0%, 100% { transform: translateX(-50%) rotate(0deg) scale(1); }
  25% { transform: translateX(-45%) rotate(-5deg) scale(1.02); }
  50% { transform: translateX(-55%) rotate(5deg) scale(0.98); }
  75% { transform: translateX(-48%) rotate(-3deg) scale(1.01); }
}
@keyframes ld-hand {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-5px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ld-glow {
  0% { opacity: 0.3; transform: translate(-50%, 0) scale(0.9); }
  50% { opacity: 0.7; transform: translate(-50%, -2px) scale(1.1); }
  100% { opacity: 0.4; transform: translate(-50%, 0) scale(0.95); }
}

/* lysistratus-chaste – funny, dim interior */
.scn-lysistratus-chaste {
  background: linear-gradient(180deg, #1a0a06 0%, #3a1a0e 40%, #2a1a0e 80%, #1a0a06 100%),
              radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, transparent 60%);
}
.scn-lysistratus-chaste .bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 40%, rgba(0,0,0,0.4) 100%);
  animation: lc-bg 8s ease-in-out infinite alternate;
}
.scn-lysistratus-chaste .curtain-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #5e1a1d 0%, #2a0a0c 100%);
  border-radius: 0 20% 20% 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.6);
  animation: lc-curtain 12s ease-in-out infinite alternate;
}
.scn-lysistratus-chaste .curtain-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #5e1a1d 0%, #2a0a0c 100%);
  border-radius: 20% 0 0 20%;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.6);
  animation: lc-curtain 12s ease-in-out infinite alternate;
  animation-delay: -6s;
}
.scn-lysistratus-chaste .marina {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lc-marina 6s ease-in-out infinite alternate;
}
.scn-lysistratus-chaste .bawd {
  position: absolute; bottom: 25%; left: 15%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #3a1a0e 0%, #1a0a04 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: lc-bawd 3s ease-in-out infinite;
}
.scn-lysistratus-chaste .spotlight {
  position: absolute; top: 0; left: 50%; width: 120px; height: 80%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, rgba(208,128,48,0.15) 0%, transparent 70%);
  pointer-events: none;
  animation: lc-spotlight 5s ease-in-out infinite alternate;
}
@keyframes lc-bg {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes lc-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(3%); }
  100% { transform: translateX(0); }
}
@keyframes lc-marina {
  0%, 100% { transform: translateX(-50%) rotate(0deg) scaleY(1); }
  25% { transform: translateX(-48%) rotate(2deg) scaleY(0.98); }
  50% { transform: translateX(-52%) rotate(-1deg) scaleY(1.02); }
  75% { transform: translateX(-50%) rotate(1deg) scaleY(0.99); }
}
@keyframes lc-bawd {
  0%, 100% { transform: translateX(0) rotate(-3deg) scaleY(1); }
  33% { transform: translateX(4px) rotate(2deg) scaleY(1.03); }
  66% { transform: translateX(-2px) rotate(-4deg) scaleY(0.97); }
}
@keyframes lc-spotlight {
  0% { opacity: 0.3; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 0.7; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.4; transform: translateX(-50%) scale(0.95); }
}

.scn-simonides-compliments {
  background: linear-gradient(180deg, #d4a84a 0%, #b88a3a 40%, #8a6a2a 100%), radial-gradient(ellipse at 50% 20%, #f0d080 0%, transparent 60%);
}
.scn-simonides-compliments .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #6e5032 0%, #8a6a3e 30%, #a88650 50%, #8a6a3e 70%, #6e5032 100%);
  border-bottom: 8px solid #5a3e20;
  animation: sc-wall 20s ease-in-out infinite alternate;
}
.scn-simonides-compliments .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #4a3520 0%, #6e5032 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-simonides-compliments .table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(0deg, #5a4020 0%, #7a5a30 100%);
  border-radius: 20% / 50% 50% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: sc-table 6s ease-in-out infinite;
}
.scn-simonides-compliments .goblet {
  position: absolute; bottom: 32%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #c8a84c 0%, #a08030 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  box-shadow: 0 0 10px 2px rgba(200,168,76,0.4);
}
.scn-simonides-compliments .goblet-left {
  left: 30%;
  animation: sc-goblet-l 4s ease-in-out infinite alternate;
}
.scn-simonides-compliments .goblet-right {
  right: 30%;
  animation: sc-goblet-r 4s ease-in-out infinite alternate-reverse;
}
.scn-simonides-compliments .figure {
  position: absolute; bottom: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-simonides-compliments .simonides {
  left: 25%;
  animation: sc-figure-s 5s ease-in-out infinite;
}
.scn-simonides-compliments .thaisa {
  right: 25%;
  width: 28px; height: 58px;
  background: linear-gradient(180deg, #8a6040 0%, #4a3020 100%);
  animation: sc-figure-t 5s ease-in-out infinite 0.5s;
}
.scn-simonides-compliments .crown {
  position: absolute; bottom: 68%; left: 28%; width: 20px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, #f0d080 0%, #c8a030 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 0 16px 4px rgba(200,160,48,0.6);
  animation: sc-crown 3s ease-in-out infinite alternate;
}
@keyframes sc-wall {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.85; transform: scaleX(0.98); }
}
@keyframes sc-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(0); }
}
@keyframes sc-goblet-l {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-1px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes sc-goblet-r {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(4deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes sc-figure-s {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes sc-figure-t {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(-2px) rotate(-2deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(1deg) scaleY(1); }
}
@keyframes sc-crown {
  0% { opacity: 0.7; transform: rotate(-3deg) scale(0.95); }
  50% { opacity: 1; transform: rotate(0deg) scale(1.05); }
  100% { opacity: 0.8; transform: rotate(3deg) scale(1); }
}

.scn-thaisa-toast {
  background: linear-gradient(180deg, #e4c060 0%, #c8a040 40%, #8a6a20 100%), radial-gradient(ellipse at 50% 30%, #ffe080 0%, transparent 60%);
}
.scn-thaisa-toast .bg-arch {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #9a7a4a 0%, #7a5a30 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
  animation: tt-arch 15s ease-in-out infinite alternate;
}
.scn-thaisa-toast .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #3a2518 0%, #5a3e28 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
}
.scn-thaisa-toast .table {
  position: absolute; bottom: 28%; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(0deg, #6a4a28 0%, #8a6838 100%);
  border-radius: 30% / 60% 60% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: tt-table 7s ease-in-out infinite;
}
.scn-thaisa-toast .goblet {
  position: absolute; bottom: 36%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #d8b050 0%, #b89030 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  box-shadow: 0 0 12px 3px rgba(216,176,80,0.5);
}
.scn-thaisa-toast .raised {
  left: 48%;
  transform-origin: bottom center;
  animation: tt-raise 4s ease-in-out infinite;
}
.scn-thaisa-toast .figure {
  position: absolute; bottom: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-thaisa-toast .thaisa {
  left: 30%;
  animation: tt-figure-t 5s ease-in-out infinite;
}
.scn-thaisa-toast .simonides {
  right: 30%;
  width: 32px; height: 64px;
  background: linear-gradient(180deg, #8a6040 0%, #4a3020 100%);
  animation: tt-figure-s 5s ease-in-out infinite 0.5s;
}
.scn-thaisa-toast .plate {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #c0a070 0%, #907050 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: tt-plate 8s ease-in-out infinite alternate;
}
.scn-thaisa-toast .bread {
  position: absolute; bottom: 33%; left: 23%; width: 16px; height: 12px;
  background: linear-gradient(180deg, #c09050 0%, #a07040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tt-bread 3s ease-in-out infinite;
}
@keyframes tt-arch {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.03); }
  100% { opacity: 0.9; transform: scaleY(0.98); }
}
@keyframes tt-table {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(0.98); }
}
@keyframes tt-raise {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-4px) scale(1.05); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes tt-figure-t {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes tt-figure-s {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes tt-plate {
  0% { opacity: 0.8; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes tt-bread {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

.scn-pericles-melancholy {
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #8a7a5a 0%, transparent 60%);
}
.scn-pericles-melancholy .bg-darkwall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  animation: pm-wall 25s ease-in-out infinite alternate;
}
.scn-pericles-melancholy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a1008 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.8);
}
.scn-pericles-melancholy .table {
  position: absolute; bottom: 28%; left: 10%; right: 10%; height: 14%;
  background: linear-gradient(0deg, #3a2a18 0%, #5a3e28 100%);
  border-radius: 20% / 40% 40% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  animation: pm-table 10s ease-in-out infinite;
}
.scn-pericles-melancholy .plate {
  position: absolute; bottom: 32%; left: 30%; width: 40px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #7a5a3a 0%, #4a3018 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: pm-plate 12s ease-in-out infinite alternate;
}
.scn-pericles-melancholy .goblet {
  position: absolute; bottom: 35%; right: 30%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  box-shadow: 0 0 8px 2px rgba(138,122,90,0.3);
  animation: pm-goblet 6s ease-in-out infinite;
}
.scn-pericles-melancholy .figure {
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-figure 8s ease-in-out infinite;
}
.scn-pericles-melancholy .shadow {
  position: absolute; bottom: 10%; left: 35%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: pm-shadow 8s ease-in-out infinite;
}
.scn-pericles-melancholy .candle {
  position: absolute; bottom: 40%; left: 55%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e0c060 0%, #c0a040 50%, #8a6a20 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(224,192,96,0.5);
  animation: pm-candle 3s ease-in-out infinite alternate;
}
@keyframes pm-wall {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.01); }
  100% { opacity: 0.7; transform: scaleY(0.99); }
}
@keyframes pm-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes pm-plate {
  0% { opacity: 0.5; transform: scale(0.9); }
  50% { opacity: 0.7; transform: scale(1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes pm-goblet {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(3deg); }
}
@keyframes pm-figure {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(-2px) rotate(-2deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(1deg) scaleY(1); }
}
@keyframes pm-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.1); opacity: 0.8; }
  100% { transform: scaleX(0.9); opacity: 0.5; }
}
@keyframes pm-candle {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.8; transform: scaleY(0.95); }
}

.scn-simonides-rebuke {
  background: linear-gradient(180deg, #c8a040 0%, #a08030 40%, #6a5020 100%), radial-gradient(ellipse at 30% 50%, #e0c060 0%, transparent 60%);
}
.scn-simonides-rebuke .bg-harsh {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #6e5030 0%, #4a3020 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: sr-bg 8s ease-in-out infinite alternate;
}
.scn-simonides-rebuke .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #3a2010 0%, #5a3820 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.7);
}
.scn-simonides-rebuke .table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(0deg, #4a3020 0%, #6a4a30 100%);
  border-radius: 20% / 40% 40% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: sr-table 4s ease-in-out infinite;
}
.scn-simonides-rebuke .goblet {
  position: absolute; bottom: 30%; left: 35%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #c8a040 0%, #a08030 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  box-shadow: 0 0 10px 2px rgba(200,160,64,0.5);
}
.scn-simonides-rebuke .shattered {
  animation: sr-shatter 1.5s ease-in-out infinite alternate;
  clip-path: polygon(20% 0%, 80% 10%, 70% 60%, 30% 50%);
}
.scn-simonides-rebuke .figure {
  position: absolute; bottom: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5a3820 0%, #2a1808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-simonides-rebuke .simonides-angry {
  left: 20%;
  width: 35px; height: 65px;
  animation: sr-figure-a 3s ease-in-out infinite;
}
.scn-simonides-rebuke .pericles {
  right: 20%;
  width: 28px; height: 58px;
  animation: sr-figure-p 3s ease-in-out infinite 0.5s;
}
.scn-simonides-rebuke .sceptre {
  position: absolute; bottom: 50%; left: 22%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c8a040 0%, #a08030 100%);
  border-radius: 50% / 20% 20% 10% 10%;
  box-shadow: 0 0 8px 2px rgba(200,160,64,0.4);
  transform-origin: bottom center;
  animation: sr-sceptre 2s ease-in-out infinite;
}
.scn-simonides-rebuke .glass-shard {
  position: absolute; bottom: 30%; right: 30%; width: 12px; height: 18px;
  background: linear-gradient(135deg, #e0d0a0 0%, #c0b080 100%);
  clip-path: polygon(50% 0%, 100% 40%, 80% 100%, 20% 80%);
  filter: drop-shadow(0 0 6px rgba(200,180,120,0.6));
  animation: sr-shard 0.8s ease-in-out infinite alternate;
}
@keyframes sr-bg {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.8; transform: scaleX(0.98); }
}
@keyframes sr-table {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes sr-shatter {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(15deg) scale(1.1); }
  100% { transform: rotate(-10deg) scale(0.9); }
}
@keyframes sr-figure-a {
  0% { transform: translateX(0) rotate(0deg) scaleX(1); }
  50% { transform: translateX(3px) rotate(5deg) scaleX(1.05); }
  100% { transform: translateX(0) rotate(-2deg) scaleX(0.95); }
}
@keyframes sr-figure-p {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(-3px) rotate(-3deg) scaleY(1.03); }
  100% { transform: translateX(0) rotate(2deg) scaleY(1); }
}
@keyframes sr-sceptre {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes sr-shard {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(20deg); }
  100% { transform: translateY(0) rotate(10deg); }
}

/* fisherman-bell-joke - funny, sunlit */
.scn-fisherman-bell-joke {
  background: linear-gradient(180deg, #87ceeb 0%, #f9d442 60%, #e8a317 100%),
              radial-gradient(ellipse at 50% 30%, #fff4d0 0%, transparent 60%);
}
.scn-fisherman-bell-joke .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b0e0ff 0%, transparent 100%); animation: fbj-sky 12s ease-in-out infinite alternate; }
.scn-fisherman-bell-joke .bell-body { position:absolute; top:15%; left:30%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 30%, #d4a843 0%, #b8860b 60%, #8b6914 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 10px 25px rgba(0,0,0,.3); animation: fbj-bell 3s ease-in-out infinite; }
.scn-fisherman-bell-joke .bell-rim { position:absolute; top:60%; left:28%; width:44%; height:15%; background: linear-gradient(180deg, #c59a35 0%, #a07818 100%); border-radius: 50%; box-shadow: inset 0 4px 8px rgba(0,0,0,.2); animation: fbj-rim 3s ease-in-out infinite; }
.scn-fisherman-bell-joke .clapper { position:absolute; top:50%; left:44%; width:12%; height:25%; background: linear-gradient(180deg, #5c4033 0%, #3b281e 100%); border-radius: 40% 40% 20% 20%; animation: fbj-clapper 3s ease-in-out infinite; }
.scn-fisherman-bell-joke .figure { position:absolute; top:46%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #2c1a0e 0%, #1c0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fbj-figure 3s ease-in-out infinite; }
.scn-fisherman-bell-joke .rope { position:absolute; top:10%; left:49%; width:2%; height:30%; background: linear-gradient(180deg, #a07818 0%, #705010 100%); border-radius: 10%; animation: fbj-rope 3s ease-in-out infinite; }
.scn-fisherman-bell-joke .fish { position:absolute; top:20%; right:10%; width:30px; height:15px; background: linear-gradient(90deg, #f4a460 0%, #d2691e 50%, #f4a460 100%); border-radius: 50%; transform: rotate(-20deg); animation: fbj-fish 4s ease-in-out infinite; }
@keyframes fbj-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes fbj-bell { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes fbj-rim { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes fbj-clapper { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(5px) rotate(1deg) } 50% { transform: translateY(0) rotate(3deg) } 75% { transform: translateY(5px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes fbj-figure { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(3px, -2px) rotate(2deg) } 50% { transform: translate(-2px,0) rotate(-1deg) } 75% { transform: translate(2px, -1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes fbj-rope { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes fbj-fish { 0% { transform: translate(0,0) rotate(-20deg) } 50% { transform: translate(-40px, -10px) rotate(10deg) } 100% { transform: translate(0,0) rotate(-20deg) } }

/* pericles-pleads-help - tense, sunlit */
.scn-pericles-pleads-help {
  background: linear-gradient(180deg, #4a90d9 0%, #7ec8e3 40%, #ffd700 70%, #ff8c00 100%),
              radial-gradient(ellipse at 50% 20%, #fff7c0 0%, transparent 60%);
}
.scn-pericles-pleads-help .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d0e8ff 0%, #b0d4ff 100%); animation: pph-sky 8s ease-in-out infinite alternate; }
.scn-pericles-pleads-help .sun { position:absolute; top:8%; left:70%; width:12%; height:12%; background: radial-gradient(circle, #fff5b0 0%, #ffd700 40%, #ff8c00 100%); border-radius:50%; box-shadow: 0 0 40px 15px #ffd700, 0 0 80px 30px rgba(255,215,0,.3); animation: pph-sun 6s ease-in-out infinite; }
.scn-pericles-pleads-help .figure-pericles { position:absolute; bottom:20%; left:15%; width:16%; height:40%; background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pph-figure 2s ease-in-out infinite; }
.scn-pericles-pleads-help .boat { position:absolute; bottom:15%; left:45%; width:35%; height:12%; background: linear-gradient(180deg, #5c3a1e 0%, #3a2212 100%); border-radius: 20% 20% 40% 40% / 50% 50% 30% 30%; box-shadow: 0 -4px 8px rgba(0,0,0,.3); animation: pph-boat 4s ease-in-out infinite; }
.scn-pericles-pleads-help .sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1e5a99 0%, #0d2b4a 100%); animation: pph-sea 12s ease-in-out infinite; }
.scn-pericles-pleads-help .net { position:absolute; bottom:20%; left:48%; width:30%; height:20%; background: radial-gradient(ellipse, rgba(255,255,255,.15) 0%, transparent 60%); border-radius: 40%; animation: pph-net 3s ease-in-out infinite; }
.scn-pericles-pleads-help .fish-school { position:absolute; top:60%; left:20%; width:40px; height:10px; background: linear-gradient(90deg, #c0c0c0 0%, #808080 100%); border-radius:50%; filter: blur(2px); animation: pph-fish 5s linear infinite; }
@keyframes pph-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes pph-sun { 0% { transform: scale(0.95); box-shadow: 0 0 30px 10px #ffd700; } 50% { transform: scale(1.05); box-shadow: 0 0 50px 20px #ffc125; } 100% { transform: scale(0.95); box-shadow: 0 0 30px 10px #ffd700; } }
@keyframes pph-figure { 0% { transform: translateX(0) rotate(-5deg) scaleY(1) } 25% { transform: translateX(5px) rotate(3deg) scaleY(1.02) } 50% { transform: translateX(-3px) rotate(-2deg) scaleY(0.98) } 75% { transform: translateX(4px) rotate(2deg) scaleY(1.01) } 100% { transform: translateX(0) rotate(-5deg) scaleY(1) } }
@keyframes pph-boat { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes pph-sea { 0% { background-position: 0 0 } 50% { background-position: 10% 5% } 100% { background-position: 0 0 } }
@keyframes pph-net { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.05) rotate(5deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes pph-fish { 0% { transform: translateX(-50px) } 100% { transform: translateX(150vw) } }

/* fishermen-gift-gown - warm, sunlit */
.scn-fishermen-gift-gown {
  background: linear-gradient(180deg, #f5deb3 0%, #f4a460 50%, #d2b48c 100%),
              radial-gradient(ellipse at 50% 30%, #ffdab9 0%, transparent 70%);
}
.scn-fishermen-gift-gown .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffefd5 0%, #ffe0b0 100%); animation: fgg-sky 15s ease-in-out infinite alternate; }
.scn-fishermen-gift-gown .sun { position:absolute; top:12%; left:48%; width:10%; height:10%; background: radial-gradient(circle, #fff8d0 0%, #ffd700 40%, #ff8c00 100%); border-radius:50%; box-shadow: 0 0 30px 10px #ffd700, 0 0 60px 20px rgba(255,215,0,.3); animation: fgg-sun 7s ease-in-out infinite; }
.scn-fishermen-gift-gown .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c2a080 0%, #8b6f4c 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; animation: fgg-ground 20s ease-in-out infinite; }
.scn-fishermen-gift-gown .figure-left { position:absolute; bottom:20%; left:25%; width:18%; height:40%; background: linear-gradient(180deg, #4a2c1a 0%, #2c1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fgg-figureL 6s ease-in-out infinite; }
.scn-fishermen-gift-gown .figure-right { position:absolute; bottom:20%; right:25%; width:18%; height:40%; background: linear-gradient(180deg, #3a2212 0%, #1c0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fgg-figureR 6s ease-in-out infinite; animation-delay: 3s; }
.scn-fishermen-gift-gown .gown { position:absolute; bottom:45%; left:38%; width:24%; height:30%; background: linear-gradient(180deg, #daa520 0%, #b8860b 50%, #8b6914 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: fgg-gown 8s ease-in-out infinite; }
.scn-fishermen-gift-gown .hands { position:absolute; bottom:52%; left:42%; width:10%; height:8%; background: radial-gradient(ellipse, #d2a679 0%, #a67c52 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: fgg-hands 6s ease-in-out infinite; }
@keyframes fgg-sky { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes fgg-sun { 0% { transform: scale(1) translate(0,0); box-shadow: 0 0 25px 10px #ffd700; } 50% { transform: scale(1.03) translate(2px,-2px); box-shadow: 0 0 35px 15px #ffc125; } 100% { transform: scale(1) translate(0,0); box-shadow: 0 0 25px 10px #ffd700; } }
@keyframes fgg-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fgg-figureL { 0% { transform: translate(0,0) rotate(-3deg) } 25% { transform: translate(2px,-1px) rotate(1deg) } 50% { transform: translate(0,0) rotate(-3deg) } 75% { transform: translate(-2px,-1px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(-3deg) } }
@keyframes fgg-figureR { 0% { transform: translate(0,0) rotate(2deg) } 25% { transform: translate(-2px,-1px) rotate(-1deg) } 50% { transform: translate(0,0) rotate(2deg) } 75% { transform: translate(2px,-1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(2deg) } }
@keyframes fgg-gown { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(2deg) scale(1.02) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fgg-hands { 0% { transform: translate(0,0) rotate(-5deg) } 50% { transform: translate(3px,-2px) rotate(5deg) } 100% { transform: translate(0,0) rotate(-5deg) } }

/* fishermen-offer-shelter - warm, sunlit */
.scn-fishermen-offer-shelter {
  background: linear-gradient(180deg, #f4a460 0%, #d2b48c 50%, #c2a080 100%),
              radial-gradient(ellipse at 50% 40%, #ffe4b5 0%, transparent 70%);
}
.scn-fishermen-offer-shelter .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe0b0 0%, #f5deb3 100%); animation: fos-sky 20s ease-in-out infinite alternate; }
.scn-fishermen-offer-shelter .cottage { position:absolute; bottom:15%; left:30%; width:40%; height:40%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: fos-cottage 10s ease-in-out infinite; }
.scn-fishermen-offer-shelter .door { position:absolute; bottom:15%; left:45%; width:10%; height:25%; background: linear-gradient(180deg, #6b4226 0%, #4a2c1a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: inset 0 2px 6px rgba(0,0,0,.4); animation: fos-door 6s ease-in-out infinite; }
.scn-fishermen-offer-shelter .light-spill { position:absolute; bottom:15%; left:44%; width:12%; height:30%; background: radial-gradient(ellipse at 50% 0%, #ffd700 0%, #ff8c00 40%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: fos-light 5s ease-in-out infinite; }
.scn-fishermen-offer-shelter .figure-inside { position:absolute; bottom:30%; left:46%; width:12%; height:25%; background: linear-gradient(180deg, #2c1a0e 0%, #1c0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fos-inside 8s ease-in-out infinite; }
.scn-fishermen-offer-shelter .figure-outside { position:absolute; bottom:20%; left:26%; width:14%; height:30%; background: linear-gradient(180deg, #3a2212 0%, #1c0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fos-outside 8s ease-in-out infinite; animation-delay: 4s; }
.scn-fishermen-offer-shelter .path { position:absolute; bottom:0; left:38%; width:24%; height:20%; background: linear-gradient(180deg, #b8967a 0%, #8b7355 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; animation: fos-path 15s ease-in-out infinite; }
.scn-fishermen-offer-shelter .tree { position:absolute; top:12%; right:15%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 20%, #6b8e23 0%, #556b2f 60%, #2e4a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: fos-tree 12s ease-in-out infinite; }
@keyframes fos-sky { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes fos-cottage { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fos-door { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes fos-light { 0% { opacity:0.6; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.6; transform: scale(0.95); } }
@keyframes fos-inside { 0% { transform: translate(0,0) scale(1) } 25% { transform: translate(2px,-1px) scale(1.01) } 50% { transform: translate(0,0) scale(1) } 75% { transform: translate(-2px,-1px) scale(0.99) } 100% { transform: translate(0,0) scale(1) } }
@keyframes fos-outside { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(3px,-2px) rotate(1deg) } 50% { transform: translate(0,0) rotate(-2deg) } 75% { transform: translate(-3px,-2px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes fos-path { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes fos-tree { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }

.scn-gower-foretells-shipwreck {
  background: linear-gradient(180deg, #2c3e4a 0%, #1a2a3a 50%, #0f1f2f 100%), radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 70%);
}
.scn-gower-foretells-shipwreck .sky    { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a4e5a 0%, #2a3a4a 100%); animation: gw-sky 10s ease-in-out infinite alternate; }
.scn-gower-foretells-shipwreck .sea    { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a2a3a 0%, #2a3a4a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: gw-sea 8s ease-in-out infinite alternate; }
.scn-gower-foretells-shipwreck .ship   { position:absolute; bottom:30%; left:60%; width:90px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: gw-ship 6s ease-in-out infinite; }
.scn-gower-foretells-shipwreck .sail   { position:absolute; bottom:38%; left:58%; width:40px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 70% 20%, #c8c8c0 0%, #909090 100%); border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: gw-sail 4s ease-in-out infinite alternate; }
.scn-gower-foretells-shipwreck .lightning-flash { position:absolute; top:15%; left:70%; width:20px; height:60px; background: radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, #ccc 40%, transparent 100%); border-radius: 20%; box-shadow: 0 0 40px 20px rgba(240,232,208,.4), 0 0 80px 40px rgba(240,232,208,.1); animation: gw-lightning 3s step-end infinite; }
.scn-gower-foretells-shipwreck .wave-a { position:absolute; bottom:10%; left:0; right:0; height:15%; background: linear-gradient(180deg, transparent 0%, #1a3a4a 100%); filter: blur(4px); animation: gw-wave 10s ease-in-out infinite alternate; }
.scn-gower-foretells-shipwreck .wave-b { position:absolute; bottom:5%; left:0; right:0; height:12%; background: linear-gradient(180deg, transparent 0%, #2a4a5a 100%); filter: blur(3px); animation: gw-wave 14s ease-in-out infinite alternate-reverse; }
@keyframes gw-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes gw-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes gw-ship { 0%,100% { transform: translateX(-50%) rotate(-3deg) } 25% { transform: translateX(-48%) rotate(0deg) translateY(-2px) } 50% { transform: translateX(-50%) rotate(3deg) } 75% { transform: translateX(-52%) rotate(0deg) translateY(-2px) } }
@keyframes gw-sail { 0% { transform: translateX(-50%) scaleX(0.8) rotate(-5deg) } 50% { transform: translateX(-50%) scaleX(1.1) rotate(3deg) } 100% { transform: translateX(-50%) scaleX(0.9) rotate(-2deg) } }
@keyframes gw-lightning { 0%,80%,100% { opacity:0; transform: scale(0.5) } 10%,30% { opacity:1; transform: scale(1) } 15%,35% { opacity:0.5; transform: scale(0.8) } }
@keyframes gw-wave { 0% { transform: translateX(0) } 50% { transform: translateX(20px) } 100% { transform: translateX(-20px) } }

.scn-shipwreck-pericles-wet {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f1020 50%, #050510 100%), radial-gradient(ellipse at 70% 30%, #1a1a2e 0%, transparent 80%);
}
.scn-shipwreck-pericles-wet .sky   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a40 0%, #1a1a30 100%); animation: sp-sky 12s ease-in-out infinite alternate; }
.scn-shipwreck-pericles-wet .sea   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #050515 0%, #101025 100%); border-radius: 40% 60% 0 0 / 30% 70% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.7); animation: sp-sea 14s ease-in-out infinite alternate; }
.scn-shipwreck-pericles-wet .rocks { position:absolute; bottom:28%; left:20%; width:120px; height:60px; background: linear-gradient(135deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 60% 40% 20% 80% / 40% 20% 80% 60%; box-shadow: 0 6px 12px rgba(0,0,0,.6); animation: sp-rocks 20s ease-in-out infinite alternate; }
.scn-shipwreck-pericles-wet .figure{ position:absolute; bottom:30%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #2aaa 0%, #111 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sp-figure 5s ease-in-out infinite; }
.scn-shipwreck-pericles-wet .rain  { position:absolute; inset:0; background: repeating-linear-gradient(0deg, rgba(180,200,220,0.1) 0px, rgba(180,200,220,0.1) 2px, transparent 2px, transparent 8px); filter: blur(1px); animation: sp-rain 1.5s linear infinite; }
.scn-shipwreck-pericles-wet .spray { position:absolute; bottom:0; left:0; right:0; height:10%; background: radial-gradient(ellipse at 50% 0%, rgba(200,220,240,0.3) 0%, transparent 70%); filter: blur(8px); animation: sp-spray 6s ease-in-out infinite alternate; }
@keyframes sp-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sp-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes sp-rocks { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(2deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes sp-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(3px) translateY(-1px) rotate(2deg) } }
@keyframes sp-rain { 0% { background-position: 0 0 } 100% { background-position: 0 30px } }
@keyframes sp-spray { 0% { opacity:0.4; transform: scaleX(1) } 50% { opacity:0.7; transform: scaleX(1.1) } 100% { opacity:0.3; transform: scaleX(0.9) } }

.scn-fishermen-banter {
  background: linear-gradient(180deg, #7ac8d4 0%, #f0e6b0 40%, #f5c06a 100%), radial-gradient(ellipse at 50% 100%, #f5c06a 0%, transparent 60%);
}
.scn-fishermen-banter .sky    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8ad4e4 0%, #e8dfb0 100%); animation: fb-sky 20s ease-in-out infinite alternate; }
.scn-fishermen-banter .sea    { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #3a7a8a 0%, #5ab0c0 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 5px 15px rgba(0,40,60,.4); animation: fb-sea 12s ease-in-out infinite alternate; }
.scn-fishermen-banter .sun    { position:absolute; top:12%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fff4c8 20%, #f0d060 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 50px 20px rgba(240,208,96,0.3); animation: fb-sun 8s ease-in-out infinite alternate; }
.scn-fishermen-banter .fisher-a { position:absolute; bottom:28%; left:25%; width:22px; 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: fb-figure-a 4s ease-in-out infinite; }
.scn-fishermen-banter .fisher-b { position:absolute; bottom:30%; left:46%; width:22px; height:42px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fb-figure-b 4.5s ease-in-out infinite 0.5s; }
.scn-fishermen-banter .fisher-c { position:absolute; bottom:26%; left:65%; width:20px; height:38px; background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fb-figure-c 3.8s ease-in-out infinite 1s; }
.scn-fishermen-banter .nets   { position:absolute; bottom:32%; left:35%; width:80px; height:10px; background: repeating-linear-gradient(90deg, #c0b090 0px, #c0b090 2px, transparent 2px, transparent 10px); border-radius: 40% 60% 40% 60% / 50% 50% 50% 50%; filter: blur(1px); animation: fb-nets 6s ease-in-out infinite alternate; }
@keyframes fb-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fb-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes fb-sun { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.1) translateX(5px) } 100% { transform: scale(0.95) translateX(-5px) } }
@keyframes fb-figure-a { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(8deg) } 50% { transform: rotate(-5deg) } 75% { transform: rotate(4deg) } }
@keyframes fb-figure-b { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(4px) rotate(-6deg) } 60% { transform: translateX(-2px) rotate(5deg) } }
@keyframes fb-figure-c { 0%,100% { transform: translateY(0) rotate(0deg) } 40% { transform: translateY(-3px) rotate(3deg) } 80% { transform: translateY(1px) rotate(-2deg) } }
@keyframes fb-nets { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.15) } 100% { transform: scaleX(0.9) } }

.scn-fishermen-philosophy {
  background: linear-gradient(180deg, #6ab8c8 0%, #e8d6a0 40%, #f0b060 100%), radial-gradient(ellipse at 50% 100%, #f0b060 0%, transparent 70%);
}
.scn-fishermen-philosophy .sky    { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #7ac8d8 0%, #e0d4a8 100%); animation: fp-sky 18s ease-in-out infinite alternate; }
.scn-fishermen-philosophy .sea    { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #2a6a7a 0%, #4a9aaa 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 5px 15px rgba(0,30,45,.5); animation: fp-sea 15s ease-in-out infinite alternate; }
.scn-fishermen-philosophy .whale  { position:absolute; bottom:20%; left:10%; width:140px; height:60px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 60% 40% 30% 70% / 50% 50% 50% 50%; box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: fp-whale 10s ease-in-out infinite alternate; }
.scn-fishermen-philosophy .fisherman { position:absolute; bottom:22%; left:60%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fp-fisherman 4.5s ease-in-out infinite; }
.scn-fishermen-philosophy .fish-1 { position:absolute; bottom:18%; left:35%; width:18px; height:8px; background: linear-gradient(90deg, #d89050 0%, #f0a060 100%); border-radius: 50% 50% 50% 50%; animation: fp-fish 7s ease-in-out infinite alternate; }
.scn-fishermen-philosophy .fish-2 { position:absolute; bottom:14%; left:45%; width:14px; height:6px; background: linear-gradient(90deg, #c08040 0%, #e09050 100%); border-radius: 50% 50% 50% 50%; animation: fp-fish 9s ease-in-out infinite alternate-reverse; }
.scn-fishermen-philosophy .bubbles{ position:absolute; bottom:15%; left:20%; width:10px; height:10px; background: radial-gradient(circle, rgba(200,220,240,0.5) 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: fp-bubbles 4s ease-in-out infinite; }
@keyframes fp-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fp-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fp-whale { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(15px) scaleY(1.03) } 100% { transform: translateX(-15px) scaleY(0.97) } }
@keyframes fp-fisherman { 0%,100% { transform: rotate(0deg) } 30% { transform: rotate(10deg) } 60% { transform: rotate(-5deg) } }
@keyframes fp-fish { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(20px) rotate(10deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fp-bubbles { 0% { transform: translateY(0) scale(0.8); opacity:0.8 } 50% { transform: translateY(-20px) scale(1.2); opacity:0.5 } 100% { transform: translateY(-40px) scale(0.6); opacity:0 } }

.scn-item-riddle-parsing { background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 60%); }
.scn-item-riddle-parsing .wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); animation: irp-wall 12s ease-in-out infinite alternate; }
.scn-item-riddle-parsing .desk { position:absolute; bottom:15%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:inset 0 4px 8px rgba(0,0,0,.5); }
.scn-item-riddle-parsing .mirror { position:absolute; bottom:30%; left:30%; width:40%; height:40%; background: linear-gradient(135deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:4px; box-shadow:0 0 30px 10px rgba(200,180,150,.3); animation: irp-mirror 8s ease-in-out infinite alternate; }
.scn-item-riddle-parsing .reflection { position:absolute; bottom:32%; left:32%; width:36%; height:36%; background: radial-gradient(circle, #fff8e0 0%, #c0b090 70%, transparent 100%); border-radius:4px; opacity:.6; animation: irp-glow 4s ease-in-out infinite alternate; }
.scn-item-riddle-parsing .candle { position:absolute; bottom:28%; left:48%; width:10px; height:30px; background: linear-gradient(180deg, #e0d0c0 0%, #8a7a6a 100%); border-radius:2px; }
.scn-item-riddle-parsing .flame { position:absolute; bottom:58%; left:48.5%; width:6px; height:20px; background: radial-gradient(ellipse, #ffc080 0%, #ff8040 50%, transparent 100%); border-radius:50%; animation: irp-flame .5s ease-in-out infinite alternate; }
.scn-item-riddle-parsing .eye-a, .scn-item-riddle-parsing .eye-b { position:absolute; width:12px; height:12px; background: radial-gradient(circle, #fff 0%, #000 100%); border-radius:50%; animation: irp-blink 3s ease-in-out infinite; }
.scn-item-riddle-parsing .eye-a { top:20%; left:20%; }
.scn-item-riddle-parsing .eye-b { top:20%; right:20%; animation-delay:.5s; }
.scn-item-riddle-parsing .shadow-layer { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 60%, rgba(0,0,0,.3) 100%); animation: irp-shadow 8s ease-in-out infinite alternate; }
@keyframes irp-wall { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes irp-mirror { 0% { box-shadow:0 0 20px 5px rgba(200,180,150,.2); } 50% { box-shadow:0 0 40px 15px rgba(200,180,150,.4); } 100% { box-shadow:0 0 25px 8px rgba(200,180,150,.25); } }
@keyframes irp-glow { 0% { opacity:.4; transform:scale(.95); } 50% { opacity:.7; transform:scale(1.05); } 100% { opacity:.5; transform:scale(1); } }
@keyframes irp-flame { 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(1.2) translateY(-2px); } 100% { transform:scaleY(.9) translateY(1px); } }
@keyframes irp-blink { 0%,90%,100% { transform:scaleY(1); } 95% { transform:scaleY(.1); } }
@keyframes irp-shadow { 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.2; } }

.scn-pericles-rejection { background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%), radial-gradient(ellipse at 50% 40%, #2a1a1a 0%, transparent 70%); }
.scn-pericles-rejection .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%); animation: pr-bg 10s ease-in-out infinite alternate; }
.scn-pericles-rejection .stand { position:absolute; bottom:20%; left:35%; width:30%; height:6%; background:#4a3a2a; border-radius:2px; }
.scn-pericles-rejection .body { position:absolute; bottom:25%; left:30%; width:40%; height:35%; background: radial-gradient(ellipse, #8a6030 0%, #5a3a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow:inset 0 4px 10px rgba(0,0,0,.6), 0 0 20px rgba(0,0,0,.3); animation: pr-body 6s ease-in-out infinite alternate; }
.scn-pericles-rejection .neck { position:absolute; bottom:50%; left:43%; width:14%; height:20%; background: linear-gradient(180deg, #8a6030 0%, #4a2a1a 100%); border-radius:2px; }
.scn-pericles-rejection .string-a, .scn-pericles-rejection .string-b, .scn-pericles-rejection .string-c { position:absolute; width:2px; background: linear-gradient(180deg, #c0a080 0%, #f0e0c0 100%); border-radius:1px; animation: pr-string 1.5s ease-in-out infinite alternate; }
.scn-pericles-rejection .string-a { bottom:50%; left:44%; height:30%; }
.scn-pericles-rejection .string-b { bottom:50%; left:47%; height:30%; animation-delay:.3s; }
.scn-pericles-rejection .string-c { bottom:50%; left:50%; height:30%; animation-delay:.6s; }
.scn-pericles-rejection .glow { position:absolute; bottom:25%; left:30%; width:40%; height:35%; background: radial-gradient(ellipse, rgba(200,150,80,.2) 0%, transparent 70%); animation: pr-glow 4s ease-in-out infinite alternate; }
@keyframes pr-bg { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes pr-body { 0% { transform:scaleX(1) rotate(0deg); } 50% { transform:scaleX(1.02) rotate(1deg); } 100% { transform:scaleX(.98) rotate(-1deg); } }
@keyframes pr-string { 0% { transform:translateX(0) scaleY(1); } 50% { transform:translateX(1px) scaleY(1.05); } 100% { transform:translateX(-1px) scaleY(.95); } }
@keyframes pr-glow { 0% { opacity:.3; transform:scale(.95); } 50% { opacity:.6; transform:scale(1.05); } 100% { opacity:.4; transform:scale(1); } }

.scn-antioch-last-warning { background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%), radial-gradient(ellipse at 50% 20%, #5a3a2a 0%, transparent 60%); }
.scn-antioch-last-warning .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); animation: alw-bg 12s ease-in-out infinite alternate; }
.scn-antioch-last-warning .desk { position:absolute; bottom:15%; left:10%; right:10%; height:8%; background:#4a3a2a; border-radius:2px; }
.scn-antioch-last-warning .scroll { position:absolute; bottom:30%; left:20%; width:60%; height:30%; background: linear-gradient(90deg, #c0a070 0%, #e0c090 50%, #c0a070 100%); border-radius:4px; animation: alw-scroll 8s ease-in-out infinite alternate; }
.scn-antioch-last-warning .seal { position:absolute; bottom:45%; left:25%; width:20px; height:20px; background: radial-gradient(circle, #800000 0%, #400000 100%); border-radius:50%; animation: alw-seal 12s ease-in-out infinite alternate; }
.scn-antioch-last-warning .hourglass { position:absolute; bottom:40%; left:55%; width:24px; height:36px; background:#a08060; border-radius:4px; border:2px solid #6a5030; animation: alw-time 10s ease-in-out infinite alternate; }
.scn-antioch-last-warning .hand { position:absolute; bottom:48%; left:15%; width:30px; height:40px; background: linear-gradient(180deg, #d0b090 0%, #a08060 100%); border-radius:50% 30% 40% 40% / 60% 40% 50% 50%; animation: alw-hand 5s ease-in-out infinite alternate; }
.scn-antioch-last-warning .shadow-layer { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 60%, rgba(0,0,0,.3) 100%); animation: alw-shadow 8s ease-in-out infinite alternate; }
@keyframes alw-bg { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes alw-scroll { 0% { transform:translateX(0) scaleX(1); } 50% { transform:translateX(3px) scaleX(1.02); } 100% { transform:translateX(-2px) scaleX(.98); } }
@keyframes alw-seal { 0% { opacity:.6; transform:rotate(-5deg); } 50% { opacity:1; transform:rotate(5deg); } 100% { opacity:.8; transform:rotate(0deg); } }
@keyframes alw-time { 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(1.05) translateY(2px); } 100% { transform:scaleY(.95) translateY(-1px); } }
@keyframes alw-hand { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(8px) rotate(5deg); } 100% { transform:translateX(0) rotate(-2deg); } }
@keyframes alw-shadow { 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.2; } }

.scn-antioch-riddle-response { background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%), radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 60%); }
.scn-antioch-riddle-response .bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); animation: arr-bg 15s ease-in-out infinite alternate; }
.scn-antioch-riddle-response .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:70% 70% 0 0; animation: arr-ground 8s ease-in-out infinite alternate; }
.scn-antioch-riddle-response .mole-body { position:absolute; bottom:30%; left:40%; width:30%; height:20%; background: radial-gradient(ellipse, #3a2a1a 0%, #1a0a00 100%); border-radius:60% 60% 40% 40% / 70% 70% 30% 30%; animation: arr-mole 4s ease-in-out infinite alternate; }
.scn-antioch-riddle-response .mole-claw { position:absolute; bottom:28%; left:38%; width:10px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 40% 40%; animation: arr-claw 2s ease-in-out infinite alternate; }
.scn-antioch-riddle-response .dust-a, .scn-antioch-riddle-response .dust-b { position:absolute; border-radius:50%; filter:blur(8px); animation: arr-dust 5s ease-in-out infinite alternate; }
.scn-antioch-riddle-response .dust-a { top:30%; left:30%; width:30px; height:30px; background:rgba(200,180,150,.3); }
.scn-antioch-riddle-response .dust-b { top:40%; left:60%; width:40px; height:40px; background:rgba(200,180,150,.2); animation-delay:2s; }
.scn-antioch-riddle-response .sky-glow { position:absolute; bottom:50%; left:0; right:0; height:60%; background: radial-gradient(ellipse at 50% 0, rgba(255,200,100,.2) 0%, transparent 70%); animation: arr-glow 12s ease-in-out infinite alternate; }
@keyframes arr-bg { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes arr-ground { 0% { transform:translateY(0); } 50% { transform:translateY(2px); } 100% { transform:translateY(-1px); } }
@keyframes arr-mole { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-3px) scaleY(1.05); } 100% { transform:translateY(2px) scaleY(.95); } }
@keyframes arr-claw { 0% { transform:rotate(-10deg) translateY(0); } 50% { transform:rotate(10deg) translateY(-2px); } 100% { transform:rotate(-5deg) translateY(1px); } }
@keyframes arr-dust { 0% { opacity:0; transform:translate(0,0); } 50% { opacity:.8; transform:translate(-10px,-10px); } 100% { opacity:0; transform:translate(10px,10px); } }
@keyframes arr-glow { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.2; } }

.scn-tarsus-famine-horror {
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 40%, #1a1a2a 100%) , radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
}
.scn-tarsus-famine-horror .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 60%, #2a2a3a 100%);
  animation: tfh-sky 15s ease-in-out infinite alternate;
}
.scn-tarsus-famine-horror .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: tfh-ground 20s ease-in-out infinite alternate;
}
.scn-tarsus-famine-horror .ruined-house {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: tfh-house 8s ease-in-out infinite;
}
.scn-tarsus-famine-horror .skeletal-tree {
  position: absolute; bottom: 40%; right: 20%; width: 20px; height: 120px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: tfh-tree 12s ease-in-out infinite;
}
.scn-tarsus-famine-horror .figure-starved {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tfh-figure 6s ease-in-out infinite;
}
.scn-tarsus-famine-horror .crow {
  position: absolute; top: 30%; right: 40%; width: 24px; height: 10px;
  background: #1a1a1a;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: tfh-crow 18s linear infinite;
}
.scn-tarsus-famine-horror .bowl-empty {
  position: absolute; bottom: 15%; left: 60%; width: 30px; height: 14px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 70%);
  border-radius: 50% / 30% 30% 70% 70%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: tfh-bowl 10s ease-in-out infinite;
}
@keyframes tfh-sky { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.6 } }
@keyframes tfh-ground { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes tfh-house { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(1deg) translateY(-2px) } 75% { transform: rotate(-1deg) translateY(-1px) } }
@keyframes tfh-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) scaleY(1.02) } 100% { transform: rotate(-3deg) } }
@keyframes tfh-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-5px) rotate(-2deg) scaleX(0.95) } 60% { transform: translateY(2px) rotate(2deg) } }
@keyframes tfh-crow { 0% { transform: translateX(-50px) translateY(0) rotate(0deg) } 50% { transform: translateX(80vw) translateY(-20px) rotate(10deg) } 100% { transform: translateX(120vw) translateY(0) rotate(0deg) } }
@keyframes tfh-bowl { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(5deg) translateY(-1px) } }

.scn-tarsus-death-expected {
  background: linear-gradient(180deg, #3a3a4a 0%, #252535 50%, #151525 100%) , radial-gradient(ellipse at 50% 20%, #2a2a3a 0%, transparent 80%);
}
.scn-tarsus-death-expected .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  animation: tde-sky 20s ease-in-out infinite alternate;
}
.scn-tarsus-death-expected .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: tde-ground 25s ease-in-out infinite alternate;
}
.scn-tarsus-death-expected .lord-figure {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tde-figure-lord 14s ease-in-out infinite;
}
.scn-tarsus-death-expected .lady-figure {
  position: absolute; bottom: 25%; left: 42%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tde-figure-lady 14s ease-in-out infinite;
  animation-delay: -7s;
}
.scn-tarsus-death-expected .grave-mound {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #3a3a2a 0%, #1a1a1a 70%);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: tde-mound 30s ease-in-out infinite;
}
.scn-tarsus-death-expected .cross {
  position: absolute; bottom: 30%; left: 55%; width: 4px; height: 50px;
  background: #2a2a2a;
  border-radius: 2px;
  transform: translateX(-50%);
  animation: tde-cross 18s ease-in-out infinite;
}
.scn-tarsus-death-expected .weeping-willow {
  position: absolute; bottom: 40%; right: 15%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%);
  border-radius: 60% 40% 30% 70% / 80% 70% 30% 20%;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  transform-origin: top center;
  animation: tde-willow 22s ease-in-out infinite;
}
.scn-tarsus-death-expected .fog {
  position: absolute; top: 20%; left: 0; right: 0; height: 60%;
  background: linear-gradient(90deg, rgba(200,200,220,0.15) 0%, rgba(200,200,220,0.05) 50%, transparent 100%);
  filter: blur(40px);
  animation: tde-fog 40s linear infinite alternate;
}
@keyframes tde-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes tde-ground { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(3px) scaleY(0.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes tde-figure-lord { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(2deg) } 75% { transform: translateY(2px) rotate(-2deg) } }
@keyframes tde-figure-lady { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(-3deg) } 75% { transform: translateY(1px) rotate(1deg) } }
@keyframes tde-mound { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) scaleY(0.95) } 100% { transform: scaleX(1) } }
@keyframes tde-cross { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px) } }
@keyframes tde-willow { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.03) } 100% { transform: rotate(-3deg) scaleY(0.97) } }
@keyframes tde-fog { 0% { transform: translateX(-10%) } 100% { transform: translateX(10%) } }

.scn-tarsus-ships-descried {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%) , radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, transparent 70%);
}
.scn-tarsus-ships-descried .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  animation: tsd-sky 18s ease-in-out infinite alternate;
}
.scn-tarsus-ships-descried .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: tsd-sea 30s ease-in-out infinite alternate;
}
.scn-tarsus-ships-descried .cliff {
  position: absolute; bottom: 35%; left: 0; width: 30%; height: 30%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 0 60% 40% 0 / 0 80% 20% 0;
  box-shadow: 8px 0 15px rgba(0,0,0,0.4);
  animation: tsd-cliff 25s ease-in-out infinite;
}
.scn-tarsus-ships-descried .watching-figure {
  position: absolute; bottom: 45%; left: 10%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tsd-figure 12s ease-in-out infinite;
}
.scn-tarsus-ships-descried .ship-a {
  position: absolute; bottom: 30%; right: 15%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 50% 50% / 10% 10% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: tsd-ship-a 40s linear infinite;
}
.scn-tarsus-ships-descried .ship-b {
  position: absolute; bottom: 25%; right: 40%; width: 60px; height: 32px;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 20% 20% 50% 50% / 10% 10% 40% 40%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
  animation: tsd-ship-b 50s linear infinite;
  animation-delay: -20s;
}
.scn-tarsus-ships-descried .sail-fore {
  position: absolute; bottom: 30%; right: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: tsd-sail-fore 8s ease-in-out infinite;
}
.scn-tarsus-ships-descried .sail-aft {
  position: absolute; bottom: 25%; right: 45%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: tsd-sail-aft 8s ease-in-out infinite;
  animation-delay: -4s;
}
.scn-tarsus-ships-descried .wave-1 {
  position: absolute; bottom: 10%; left: 0; width: 100%; height: 20px;
  background: linear-gradient(90deg, #1a2a2a 0%, #2a3a3a 50%, #1a2a2a 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: tsd-wave-1 6s ease-in-out infinite;
}
.scn-tarsus-ships-descried .wave-2 {
  position: absolute; bottom: 5%; left: 0; width: 100%; height: 15px;
  background: linear-gradient(90deg, #0a1a1a 0%, #1a2a2a 50%, #0a1a1a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: tsd-wave-2 8s ease-in-out infinite;
  animation-delay: -3s;
}
@keyframes tsd-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes tsd-sea { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(-2px) } }
@keyframes tsd-cliff { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(-1px) } }
@keyframes tsd-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-4px) rotate(3deg) } 60% { transform: translateY(1px) rotate(-2deg) } }
@keyframes tsd-ship-a { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes tsd-ship-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes tsd-sail-fore { 0%,100% { transform: rotate(0deg) scaleY(1) } 25% { transform: rotate(5deg) scaleY(1.05) } 75% { transform: rotate(-5deg) scaleY(0.95) } }
@keyframes tsd-sail-aft { 0%,100% { transform: rotate(0deg) scaleY(1) } 25% { transform: rotate(-5deg) scaleY(1.05) } 75% { transform: rotate(5deg) scaleY(0.95) } }
@keyframes tsd-wave-1 { 0% { transform: translateX(-10%) scaleX(1) } 50% { transform: translateX(0) scaleX(1.05) } 100% { transform: translateX(10%) scaleX(0.95) } }
@keyframes tsd-wave-2 { 0% { transform: translateX(10%) scaleX(1) } 50% { transform: translateX(0) scaleX(1.02) } 100% { transform: translateX(-10%) scaleX(0.98) } }

.scn-tarsus-white-flags {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 100%) , radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, transparent 70%);
}
.scn-tarsus-white-flags .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  animation: twf-sky 25s ease-in-out infinite alternate;
}
.scn-tarsus-white-flags .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 0 0 10% 10% / 0 0 5% 5%;
  animation: twf-sea 35s ease-in-out infinite alternate;
}
.scn-tarsus-white-flags .ship {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 50% 50% / 10% 10% 40% 40%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.3);
  transform: translateX(-50%);
  animation: twf-ship 45s ease-in-out infinite;
}
.scn-tarsus-white-flags .white-flag {
  position: absolute; bottom: 50%; left: 55%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #e0e0e0 0%, #b0b0b0 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 8px 4px rgba(220,220,230,0.2);
  animation: twf-flag 6s ease-in-out infinite;
}
.scn-tarsus-white-flags .sailor {
  position: absolute; bottom: 28%; left: 48%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: twf-sailor 14s ease-in-out infinite;
}
.scn-tarsus-white-flags .dove-1 {
  position: absolute; top: 25%; left: 20%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #e8e8e8 0%, #c0c0c0 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: twf-dove-1 20s linear infinite;
}
.scn-tarsus-white-flags .dove-2 {
  position: absolute; top: 30%; right: 25%; width: 25px; height: 16px;
  background: linear-gradient(180deg, #f0f0f0 0%, #d0d0d0 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: twf-dove-2 25s linear infinite;
  animation-delay: -10s;
}
.scn-tarsus-white-flags .calm-wave {
  position: absolute; bottom: 10%; left: 0; width: 100%; height: 12px;
  background: linear-gradient(90deg, transparent 0%, #3a4a4a 30%, transparent 60%, #2a3a3a 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: twf-calm-wave 10s ease-in-out infinite;
}
@keyframes twf-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes twf-sea { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes twf-ship { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(1deg) } 75% { transform: translateX(-52%) rotate(-1deg) } }
@keyframes twf-flag { 0%,100% { transform: rotate(0deg) scaleY(1) } 25% { transform: rotate(8deg) scaleY(1.05) } 75% { transform: rotate(-8deg) scaleY(0.95) } }
@keyframes twf-sailor { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(2deg) } 75% { transform: translateY(1px) rotate(-2deg) } }
@keyframes twf-dove-1 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 100% { transform: translateX(100vw) translateY(-50px) rotate(15deg) } }
@keyframes twf-dove-2 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 100% { transform: translateX(-100vw) translateY(-30px) rotate(-10deg) } }
@keyframes twf-calm-wave { 0% { transform: translateX(-10%) scaleX(1) } 50% { transform: translateX(0) scaleX(1.03) } 100% { transform: translateX(10%) scaleX(0.97) } }

.scn-pericles-trusts-helianus {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4b896 100%),
    radial-gradient(ellipse at 30% 20%, #fff7e0 0%, transparent 60%);
  /* warm bright interior */
}
.scn-pericles-trusts-helianus .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #c9b28a 100%);
  animation: pt-wall-breathe 8s ease-in-out infinite alternate;
}
.scn-pericles-trusts-helianus .floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #a0875a 0%, #7c6438 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-pericles-trusts-helianus .window {
  position: absolute; left: 10%; top: 15%; width: 120px; height: 160px;
  background: radial-gradient(ellipse at 50% 30%, #c3e4ff 0%, #96bcd4 70%);
  border: 8px solid #6b4f2e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,220,0.6), 0 4px 12px rgba(0,0,0,0.3);
  animation: pt-window-light 6s ease-in-out infinite alternate;
}
.scn-pericles-trusts-helianus .table {
  position: absolute; bottom: 20%; left: 25%; width: 160px; height: 30px;
  background: linear-gradient(180deg, #8b6f4a 0%, #5a4526 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-pericles-trusts-helianus .map {
  position: absolute; bottom: 24%; left: 30%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #dac29c 25%, #b89a70 50%, #dac29c 75%);
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: pt-map-shimmer 12s ease-in-out infinite;
}
.scn-pericles-trusts-helianus .figure-left {
  position: absolute; bottom: 15%; left: 20%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2b4a6b 0%, #1a2e4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pt-figure-l 5s ease-in-out infinite alternate;
}
.scn-pericles-trusts-helianus .figure-right {
  position: absolute; bottom: 15%; right: 25%; width: 38px; height: 88px;
  background: linear-gradient(180deg, #4a3c2b 0%, #2e221a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pt-figure-r 5s ease-in-out infinite alternate;
  animation-delay: 0.5s;
}
.scn-pericles-trusts-helianus .lantern {
  position: absolute; top: 25%; right: 15%; width: 14px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #b07030 80%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 40px 10px rgba(255,200,100,0.5);
  animation: pt-lantern-swing 4s ease-in-out infinite;
}
.scn-pericles-trusts-helianus .dust {
  position: absolute; top: 20%; left: 10%; width: 100px; height: 80px;
  background: radial-gradient(circle, rgba(255,255,200,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pt-dust-drift 20s linear infinite;
}
@keyframes pt-wall-breathe {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pt-window-light {
  0% { background: radial-gradient(ellipse at 50% 30%, #c3e4ff 0%, #96bcd4 70%); box-shadow: inset 0 0 30px rgba(255,255,220,0.6); }
  50% { background: radial-gradient(ellipse at 50% 30%, #e0f2ff 0%, #b0d0e8 70%); box-shadow: inset 0 0 40px rgba(255,255,250,0.8); }
  100% { background: radial-gradient(ellipse at 50% 30%, #c3e4ff 0%, #96bcd4 70%); box-shadow: inset 0 0 30px rgba(255,255,220,0.6); }
}
@keyframes pt-map-shimmer {
  0% { background: linear-gradient(135deg, #dac29c 25%, #b89a70 50%, #dac29c 75%); }
  50% { background: linear-gradient(135deg, #e7d4b1 25%, #c4a882 50%, #e7d4b1 75%); }
  100% { background: linear-gradient(135deg, #dac29c 25%, #b89a70 50%, #dac29c 75%); }
}
@keyframes pt-figure-l {
  0% { transform: translateX(0px) translateY(0px) rotate(0deg); }
  50% { transform: translateX(2px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0px) translateY(0px) rotate(0deg); }
}
@keyframes pt-figure-r {
  0% { transform: translateX(0px) translateY(0px) rotate(0deg); }
  50% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0px) translateY(0px) rotate(0deg); }
}
@keyframes pt-lantern-swing {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes pt-dust-drift {
  0% { transform: translateY(0px) translateX(0px); opacity: 0.3; }
  25% { transform: translateY(-10px) translateX(30px); opacity: 0.6; }
  50% { transform: translateY(-20px) translateX(60px); opacity: 0.2; }
  75% { transform: translateY(-5px) translateX(90px); opacity: 0.5; }
  100% { transform: translateY(0px) translateX(120px); opacity: 0.3; }
}

.scn-tyrc-assassins-arrive {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a44 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 70% 20%, #3a3a5a 0%, transparent 50%);
  /* dim, cool interior */
}
.scn-tyrc-assassins-arrive .back-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2e2e4a 0%, #1a1a2e 100%);
  animation: ta-wall-darken 10s ease-in-out infinite alternate;
}
.scn-tyrc-assassins-arrive .corridor-floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #1e1e32 0%, #0e0e1a 100%);
  border-radius: 30% 70% 0 0 / 10% 20% 0 0;
}
.scn-tyrc-assassins-arrive .side-arch {
  position: absolute; left: 5%; top: 30%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a3a5a 0%, #1e1e32 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
}
.scn-tyrc-assassins-arrive .door {
  position: absolute; right: 10%; bottom: 40%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e2218 100%);
  border: 3px solid #1a1a2e;
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
  animation: ta-door-creak 15s ease-in-out infinite;
}
.scn-tyrc-assassins-arrive .assassin {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #0e0e1a 0%, #05050c 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 2px rgba(0,0,0,0.8);
  animation: ta-assassin-creep 8s ease-in-out infinite;
}
.scn-tyrc-assassins-arrive .knife-glimmer {
  position: absolute; bottom: 42%; left: 48%; width: 4px; height: 16px;
  background: radial-gradient(circle, #c0c0c0 0%, #505050 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 2px rgba(200,200,200,0.6);
  animation: ta-knife-flash 2s ease-in-out infinite alternate;
}
.scn-tyrc-assassins-arrive .shadow-shaft {
  position: absolute; top: 0; left: 20%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0) 80%);
  filter: blur(6px);
  animation: ta-shadow-sway 6s ease-in-out infinite alternate;
}
@keyframes ta-wall-darken {
  0% { background: linear-gradient(180deg, #2e2e4a 0%, #1a1a2e 100%); }
  50% { background: linear-gradient(180deg, #3a3a5a 0%, #22223a 100%); }
  100% { background: linear-gradient(180deg, #2e2e4a 0%, #1a1a2e 100%); }
}
@keyframes ta-door-creak {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ta-assassin-creep {
  0% { transform: translateX(0px) translateY(0px) scale(1); }
  25% { transform: translateX(5px) translateY(-3px) scale(1.02); }
  50% { transform: translateX(10px) translateY(-1px) scale(1); }
  75% { transform: translateX(15px) translateY(-4px) scale(1.01); }
  100% { transform: translateX(20px) translateY(0px) scale(1); }
}
@keyframes ta-knife-flash {
  0% { opacity: 0.3; box-shadow: 0 0 8px 1px rgba(200,200,200,0.4); }
  50% { opacity: 1; box-shadow: 0 0 20px 4px rgba(255,255,255,0.8); }
  100% { opacity: 0.2; box-shadow: 0 0 6px 1px rgba(200,200,200,0.3); }
}
@keyframes ta-shadow-sway {
  0% { transform: translateX(-10px); opacity: 0.6; }
  50% { transform: translateX(10px); opacity: 0.4; }
  100% { transform: translateX(-5px); opacity: 0.7; }
}

.scn-helicanus-answers-lords {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%),
    radial-gradient(ellipse at 50% 10%, #fff5e0 0%, transparent 70%);
  /* bright, warm council chamber */
}
.scn-helicanus-answers-lords .pillar-left {
  position: absolute; left: 5%; top: 0; bottom: 0; width: 30px;
  background: linear-gradient(180deg, #b8a080 0%, #8a6e50 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
}
.scn-helicanus-answers-lords .pillar-right {
  position: absolute; right: 5%; top: 0; bottom: 0; width: 30px;
  background: linear-gradient(180deg, #b8a080 0%, #8a6e50 100%);
  border-radius: 4px;
  box-shadow: -2px 0 8px rgba(0,0,0,0.2);
}
.scn-helicanus-answers-lords .floor-tiles {
  position: absolute; inset: 70% 0 0 0;
  background: repeating-linear-gradient(90deg, #c8b898 0px, #c8b898 20px, #b8a080 20px, #b8a080 40px);
  border-radius: 40% 40% 0 0 / 10% 10% 0 0;
  animation: ha-tiles-shimmer 25s linear infinite;
}
.scn-helicanus-answers-lords .throne {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 60px;
  background: linear-gradient(180deg, #6b4f3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 6% 6%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: ha-throne-settle 12s ease-in-out infinite;
}
.scn-helicanus-answers-lords .helicanus {
  position: absolute; bottom: 18%; left: 44%; width: 36px; height: 85px;
  background: linear-gradient(180deg, #3a4a6b 0%, #1a2e4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-figure-speak 6s ease-in-out infinite;
}
.scn-helicanus-answers-lords .lord-left {
  position: absolute; bottom: 22%; left: 22%; width: 32px; height: 78px;
  background: linear-gradient(180deg, #4a3c2b 0%, #2e221a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-lord-left 7s ease-in-out infinite alternate;
}
.scn-helicanus-answers-lords .lord-right {
  position: absolute; bottom: 22%; right: 20%; width: 32px; height: 78px;
  background: linear-gradient(180deg, #4a3c2b 0%, #2e221a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-lord-right 7s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-helicanus-answers-lords .banner {
  position: absolute; top: 10%; left: 30%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #8a2e1a 100%); /* terracotta banner */
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ha-banner-wave 4s ease-in-out infinite;
}
.scn-helicanus-answers-lords .light-ray {
  position: absolute; top: 0; left: 20%; width: 100px; height: 300px;
  background: linear-gradient(180deg, rgba(255,255,200,0.15) 0%, transparent 100%);
  transform: rotate(10deg);
  filter: blur(10px);
  animation: ha-ray-sweep 18s linear infinite;
}
@keyframes ha-tiles-shimmer {
  0% { background-position: 0 0; }
  100% { background-position: 40px 0; }
}
@keyframes ha-throne-settle {
  0% { transform: translateX(-50%) translateY(0px); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0px); }
}
@keyframes ha-figure-speak {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(0) translateY(-1px) rotate(0deg); }
  75% { transform: translateX(-2px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ha-lord-left {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ha-lord-right {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ha-banner-wave {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes ha-ray-sweep {
  0% { transform: rotate(5deg) translateX(-20px); opacity: 0.3; }
  50% { transform: rotate(15deg) translateX(20px); opacity: 0.6; }
  100% { transform: rotate(5deg) translateX(-20px); opacity: 0.3; }
}

.scn-helicanus-explains-departure {
  background:
    linear-gradient(180deg, #e3d4b8 0%, #b89a70 100%),
    radial-gradient(ellipse at 80% 30%, #fbe8c0 0%, transparent 60%);
  /* warm cabin interior */
}
.scn-helicanus-explains-departure .cabin-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c8b08a 0%, #a0805a 100%);
  border-radius: 0 0 30% 30% / 0 0 8% 8%;
  animation: he-wall-rock 10s ease-in-out infinite alternate;
}
.scn-helicanus-explains-departure .porthole {
  position: absolute; left: 20%; top: 12%; width: 60px; height: 60px;
  background: radial-gradient(circle at 30% 30%, #b0d4f0 0%, #7088a0 80%);
  border: 6px solid #6b4f2e;
  border-radius: 50%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.4), 0 4px 8px rgba(0,0,0,0.3);
  animation: he-porthole-light 8s ease-in-out infinite alternate;
}
.scn-helicanus-explains-departure .table-desk {
  position: absolute; bottom: 18%; left: 30%; width: 140px; height: 20px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-helicanus-explains-departure .map-scroll {
  position: absolute; bottom: 22%; left: 35%; width: 70px; height: 50px;
  background: linear-gradient(135deg, #dac29c 30%, #b89a70 70%);
  border-radius: 2px;
  transform: rotate(-4deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: he-map-unroll 15s ease-in-out infinite;
}
.scn-helicanus-explains-departure .figure-writing {
  position: absolute; bottom: 14%; left: 28%; width: 34px; height: 80px;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: he-figure-write 6s ease-in-out infinite;
}
.scn-helicanus-explains-departure .swaying-lamp {
  position: absolute; top: 20%; right: 20%; width: 12px; height: 18px;
  background: radial-gradient(ellipse at 50% 40%, #ffd080 0%, #b07030 80%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(255,200,100,0.5);
  animation: he-lamp-sway 5s ease-in-out infinite;
}
.scn-helicanus-explains-departure .sea-swell {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #305070 0%, #1a2a40 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  animation: he-sea-swell 12s ease-in-out infinite;
}
@keyframes he-wall-rock {
  0% { transform: translateY(0px) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(0.5deg); }
  100% { transform: translateY(0px) rotate(0deg); }
}
@keyframes he-porthole-light {
  0% { background: radial-gradient(circle at 30% 30%, #b0d4f0 0%, #7088a0 80%); box-shadow: inset 0 0 20px rgba(255,255,200,0.4); }
  50% { background: radial-gradient(circle at 30% 30%, #c0e4ff 0%, #8098b0 80%); box-shadow: inset 0 0 30px rgba(255,255,220,0.6); }
  100% { background: radial-gradient(circle at 30% 30%, #b0d4f0 0%, #7088a0 80%); box-shadow: inset 0 0 20px rgba(255,255,200,0.4); }
}
@keyframes he-map-unroll {
  0% { transform: rotate(-6deg) scaleX(1); }
  50% { transform: rotate(-2deg) scaleX(1.1); }
  100% { transform: rotate(-6deg) scaleX(1); }
}
@keyframes he-figure-write {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-1px) translateY(-2px) rotate(-1deg); }
  75% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes he-lamp-sway {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-8deg); }
}
@keyframes he-sea-swell {
  0% { transform: translateY(0px) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.05); }
  100% { transform: translateY(0px) scaleY(1); }
}

.scn-boult-wars { background: linear-gradient(180deg, #1a1515 0%, #2a2020 50%, #3a2a20 100%), radial-gradient(ellipse at 60% 40%, #7a5a3a 0%, transparent 60%); }
.scn-boult-wars .bw-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 4px, #5a4a3a 4px, #5a4a3a 8px); }
.scn-boult-wars .bw-table { position:absolute; bottom:30%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 2px 6px rgba(0,0,0,.6); }
.scn-boult-wars .bw-window { position:absolute; top:20%; left:30%; width:25%; height:35%; background: linear-gradient(180deg, rgba(100,80,60,.6) 0%, rgba(60,40,20,.4) 100%); border: 4px solid #4a3a2a; border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: bw-window 15s ease-in-out infinite alternate; }
.scn-boult-wars .bw-candle { position:absolute; bottom:42%; left:45%; width:8px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #b06020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 0 30px 8px rgba(255,200,100,.5); animation: bw-candle-flicker 4s ease-in-out infinite; }
.scn-boult-wars .bw-figure { position:absolute; bottom:25%; left:40%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bw-figure-sway 5s ease-in-out infinite; }
.scn-boult-wars .bw-crutch { position:absolute; bottom:25%; left:46%; width:4px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(-15deg); transform-origin: bottom center; animation: bw-crutch 5s ease-in-out infinite; }
.scn-boult-wars .bw-shadow { position:absolute; bottom:0; left:35%; width:30px; height:20px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(4px); animation: bw-shadow-stretch 5s ease-in-out infinite; }
@keyframes bw-candle-flicker { 0% { transform: scaleY(1) scaleX(1); opacity: .9; box-shadow: 0 0 25px 6px rgba(255,200,100,.4); } 30% { transform: scaleY(1.1) scaleX(.95); opacity: 1; box-shadow: 0 0 40px 12px rgba(255,200,100,.6); } 70% { transform: scaleY(.95) scaleX(1.05); opacity: .8; box-shadow: 0 0 20px 4px rgba(255,200,100,.3); } 100% { transform: scaleY(1) scaleX(1); opacity: .9; box-shadow: 0 0 25px 6px rgba(255,200,100,.4); } }
@keyframes bw-figure-sway { 0% { transform: translateX(0) rotate(-2deg); } 33% { transform: translateX(4px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes bw-crutch { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(2px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes bw-shadow-stretch { 0% { transform: scaleX(1) scaleY(1); opacity: .5; } 50% { transform: scaleX(1.2) scaleY(.8); opacity: .4; } 100% { transform: scaleX(1) scaleY(1); opacity: .5; } }
@keyframes bw-window { 0% { opacity: .6; } 100% { opacity: .8; } }

.scn-marina-suggest { background: linear-gradient(180deg, #2a2020 0%, #3a2a2a 50%, #4a3a3a 100%), radial-gradient(ellipse at 40% 50%, #7a5a4a 0%, transparent 70%); }
.scn-marina-suggest .ms-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 6px, #5a4a3a 6px, #5a4a3a 12px); }
.scn-marina-suggest .ms-wall { position:absolute; top:0; left:0; right:0; bottom:20%; background: linear-gradient(135deg, #1a1515 0%, #2a2020 100%); }
.scn-marina-suggest .ms-window { position:absolute; top:15%; right:20%; width:20%; height:30%; background: linear-gradient(180deg, rgba(80,60,40,.6) 0%, rgba(40,30,20,.4) 100%); border: 3px solid #4a3a2a; border-radius: 4px; animation: ms-window-light 10s ease-in-out infinite alternate; }
.scn-marina-suggest .ms-table { position:absolute; bottom:28%; left:25%; right:25%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 3px 8px rgba(0,0,0,.5); }
.scn-marina-suggest .ms-candle { position:absolute; bottom:35%; left:42%; width:6px; height:16px; background: linear-gradient(180deg, #ffd080 0%, #b06020 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 20px 6px rgba(255,200,100,.4); animation: ms-candle-glow 6s ease-in-out infinite; }
.scn-marina-suggest .ms-figure { position:absolute; bottom:22%; left:50%; width:24px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ms-figure-sway 8s ease-in-out infinite; }
.scn-marina-suggest .ms-book { position:absolute; bottom:30%; left:35%; width:30px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; transform: rotateY(10deg); animation: ms-book-page 12s ease-in-out infinite alternate; }
@keyframes ms-candle-glow { 0% { transform: scaleY(1); opacity: .9; box-shadow: 0 0 18px 4px rgba(255,200,100,.3); } 50% { transform: scaleY(1.05); opacity: 1; box-shadow: 0 0 30px 8px rgba(255,200,100,.5); } 100% { transform: scaleY(1); opacity: .9; box-shadow: 0 0 18px 4px rgba(255,200,100,.3); } }
@keyframes ms-figure-sway { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ms-book-page { 0% { transform: rotateY(10deg) scaleX(1); } 50% { transform: rotateY(25deg) scaleX(.95); } 100% { transform: rotateY(10deg) scaleX(1); } }
@keyframes ms-window-light { 0% { opacity: .5; } 100% { opacity: .7; } }

.scn-boult-place { background: linear-gradient(180deg, #1a1515 0%, #2a2020 50%, #3a2a20 100%), radial-gradient(ellipse at 30% 50%, #6a4a3a 0%, transparent 70%); }
.scn-boult-place .bp-floor { position:absolute; bottom:0; left:0; right:0; height:22%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 5px, #5a4a3a 5px, #5a4a3a 10px); }
.scn-boult-place .bp-wall { position:absolute; top:0; left:0; right:0; bottom:22%; background: linear-gradient(135deg, #1a1515 0%, #2a2020 100%); }
.scn-boult-place .bp-door { position:absolute; bottom:22%; left:15%; width:30%; height:78%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 2px 0 6px rgba(0,0,0,.6); transform-origin: left center; animation: bp-door-creak 20s ease-in-out infinite; }
.scn-boult-place .bp-threshold { position:absolute; bottom:22%; left:15%; width:30%; height:6px; background: #3a2a1a; }
.scn-boult-place .bp-figure-a { position:absolute; bottom:24%; left:55%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bp-figure-a-gesture 7s ease-in-out infinite; }
.scn-boult-place .bp-figure-b { position:absolute; bottom:24%; left:30%; width:20px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bp-figure-b-stand 7s ease-in-out infinite; }
.scn-boult-place .bp-purse { position:absolute; bottom:40%; left:40%; width:10px; height:14px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: bp-purse-swing 3s ease-in-out infinite; }
.scn-boult-place .bp-candle { position:absolute; bottom:34%; left:48%; width:6px; height:16px; background: linear-gradient(180deg, #ffd080 0%, #b06020 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 20px 6px rgba(255,200,100,.4); animation: bp-candle-flicker 5s ease-in-out infinite; }
@keyframes bp-door-creak { 0% { transform: rotateY(0deg); } 25% { transform: rotateY(-5deg); } 50% { transform: rotateY(0deg); } 75% { transform: rotateY(3deg); } 100% { transform: rotateY(0deg); } }
@keyframes bp-figure-a-gesture { 0% { transform: rotate(0) translateX(0); } 30% { transform: rotate(8deg) translateX(4px); } 60% { transform: rotate(-2deg) translateX(2px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes bp-figure-b-stand { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bp-purse-swing { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(15deg) translateY(2px); } 50% { transform: rotate(-15deg) translateY(-1px); } 75% { transform: rotate(10deg) translateY(1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes bp-candle-flicker { 0% { transform: scaleY(1); opacity: .85; } 40% { transform: scaleY(1.08); opacity: 1; } 80% { transform: scaleY(.95); opacity: .75; } 100% { transform: scaleY(1); opacity: .85; } }

.scn-gower-marina-brothel { background: linear-gradient(180deg, #4a4a4a 0%, #6a6a6a 50%, #8a8a8a 100%), radial-gradient(ellipse at 50% 0%, #9a9a9a 0%, transparent 70%); }
.scn-gower-marina-brothel .gmb-sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #5a5a5a 0%, #7a7a7a 100%); animation: gmb-sky 30s ease-in-out infinite alternate; }
.scn-gower-marina-brothel .gmb-building { position:absolute; bottom:0; left:10%; width:80%; height:70%; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 6px 6px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-gower-marina-brothel .gmb-door { position:absolute; bottom:0; left:40%; width:20%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 10px rgba(0,0,0,.4); animation: gmb-door-open 25s ease-in-out infinite; }
.scn-gower-marina-brothel .gmb-figure-marina { position:absolute; bottom:10%; left:30%; width:20px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: gmb-marina-dance 8s ease-in-out infinite; }
.scn-gower-marina-brothel .gmb-figure-gower { position:absolute; bottom:10%; left:60%; width:22px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: gmb-gower-drift 12s ease-in-out infinite; }
.scn-gower-marina-brothel .gmb-needle { position:absolute; bottom:30%; left:50%; width:2px; height:25px; background: linear-gradient(180deg, #b0b0c0 0%, #808090 100%); border-radius: 1px; transform: rotate(20deg); animation: gmb-needle-shimmer 4s ease-in-out infinite; }
.scn-gower-marina-brothel .gmb-thread { position:absolute; bottom:30%; left:52%; width:20px; height:2px; background: #c0b080; border-radius: 1px; transform-origin: left center; animation: gmb-thread-wobble 5s ease-in-out infinite; }
@keyframes gmb-sky { 0% { opacity: .7; } 100% { opacity: 1; } }
@keyframes gmb-door-open { 0% { transform: rotateY(0deg); } 20% { transform: rotateY(-20deg); } 40% { transform: rotateY(0deg); } 80% { transform: rotateY(10deg); } 100% { transform: rotateY(0deg); } }
@keyframes gmb-marina-dance { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes gmb-gower-drift { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gmb-needle-shimmer { 0% { transform: rotate(20deg) scaleY(1); opacity: .8; } 50% { transform: rotate(25deg) scaleY(1.1); opacity: 1; } 100% { transform: rotate(20deg) scaleY(1); opacity: .8; } }
@keyframes gmb-thread-wobble { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(10deg) translateX(3px); } 70% { transform: rotate(-5deg) translateX(1px); } 100% { transform: rotate(0deg) translateX(0); } }

.scn-tyre-anticipating-war { background: linear-gradient(180deg, #1a1a3e 0%, #0a0a2e 40%, #2a2a4e 100%), radial-gradient(ellipse at 60% 30%, #3a3a5e 0%, transparent 70%); }
.scn-tyre-anticipating-war .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); }
.scn-tyre-anticipating-war .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-tyre-anticipating-war .table { position:absolute; bottom:30%; left:45%; width:80px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-tyre-anticipating-war .map { position:absolute; bottom:38%; left:47%; width:60px; height:40px; background: linear-gradient(135deg, #5a4a3a 0%, #6a5a4a 50%, #5a4a3a 100%); border-radius: 2%/5%; transform: rotate(-5deg); animation: ta-map 8s ease-in-out infinite; box-shadow: 0 0 4px rgba(0,0,0,.3); }
.scn-tyre-anticipating-war .candle { position:absolute; bottom:45%; left:42%; width:4px; height:14px; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 20% 20% 0 0; animation: ta-candle 3s ease-in-out infinite; }
.scn-tyre-anticipating-war .candle::after { content:''; position:absolute; top:-6px; left:-1px; width:6px; height:6px; background: radial-gradient(circle, #ffd040 0%, transparent 70%); border-radius:50%; }
.scn-tyre-anticipating-war .figure { position:absolute; bottom:30%; left:55%; 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: ta-figure 4s ease-in-out infinite; }
.scn-tyre-anticipating-war .shadow { position:absolute; bottom:25%; left:54%; width:30px; height:4px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(2px); animation: ta-shadow 6s ease-in-out infinite; }
@keyframes ta-map { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(-5deg); } }
@keyframes ta-candle { 0% { opacity:.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:.9; transform: scaleY(1); } }
@keyframes ta-figure { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-2deg); } }
@keyframes ta-shadow { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }

.scn-helicanus-entrance { background: linear-gradient(180deg, #f0e0c0 0%, #e0d0b0 50%, #c0a080 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%); }
.scn-helicanus-entrance .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%); }
.scn-helicanus-entrance .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b0a080 0%, #908060 100%); }
.scn-helicanus-entrance .pillar-l { position:absolute; left:10%; top:0; width:20px; height:70%; background: linear-gradient(180deg, #d0c0a0 0%, #c0b0a0 100%); border-radius: 10% 10% 0 0; animation: he-pillar-l 20s ease-in-out infinite; }
.scn-helicanus-entrance .pillar-r { position:absolute; right:10%; top:0; width:20px; height:70%; background: linear-gradient(180deg, #d0c0a0 0%, #c0b0a0 100%); border-radius: 10% 10% 0 0; animation: he-pillar-r 20s ease-in-out infinite; }
.scn-helicanus-entrance .throne { position:absolute; bottom:32%; left:38%; width:60px; height:50px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: he-throne 8s ease-in-out infinite; }
.scn-helicanus-entrance .figure { position:absolute; bottom:28%; left:44%; width:18px; height:36px; background: linear-gradient(180deg, #c8a878 0%, #a08860 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: he-figure 6s ease-in-out infinite; }
.scn-helicanus-entrance .rays { position:absolute; inset:0; background: radial-gradient(circle at 50% 10%, rgba(255,255,200,0.3) 0%, transparent 40%); animation: he-rays 5s ease-in-out infinite; }
@keyframes he-pillar-l { 0% { transform: rotate(0); } 50% { transform: rotate(0.3deg); } 100% { transform: rotate(0); } }
@keyframes he-pillar-r { 0% { transform: rotate(0); } 50% { transform: rotate(-0.3deg); } 100% { transform: rotate(0); } }
@keyframes he-throne { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes he-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes he-rays { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.7; } }

.scn-helicanus-reproof { background: linear-gradient(180deg, #e8d0a0 0%, #d0b080 50%, #b09060 100%), radial-gradient(ellipse at 50% 30%, #ffeedd 0%, transparent 50%); }
.scn-helicanus-reproof .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d0b880 0%, #c0a870 100%); }
.scn-helicanus-reproof .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); }
.scn-helicanus-reproof .shadow { position:absolute; bottom:25%; left:30%; width:40px; height:10px; background: rgba(0,0,0,.2); border-radius: 50%; filter: blur(3px); animation: hr-shadow 6s ease-in-out infinite; }
.scn-helicanus-reproof .king { position:absolute; bottom:30%; left:35%; width:22px; height:44px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hr-king 5s ease-in-out infinite; }
.scn-helicanus-reproof .helicanus { position:absolute; bottom:20%; left:55%; width:18px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hr-helicanus 8s ease-in-out infinite; }
.scn-helicanus-reproof .sceptre { position:absolute; bottom:45%; left:38%; width:3px; height:18px; background: #8a7a6a; border-radius: 10%; transform: rotate(-10deg); animation: hr-sceptre 4s ease-in-out infinite; }
@keyframes hr-shadow { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(3px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }
@keyframes hr-king { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes hr-helicanus { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes hr-sceptre { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(-10deg); } }

.scn-king-helianus-test { background: linear-gradient(180deg, #e0c080 0%, #c0a060 50%, #a08040 100%), radial-gradient(ellipse at 40% 20%, #ffddbb 0%, transparent 50%); }
.scn-king-helianus-test .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c0a060 0%, #b09050 100%); }
.scn-king-helianus-test .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a08040 0%, #806030 100%); }
.scn-king-helianus-test .king { position:absolute; bottom:35%; left:40%; width:24px; height:48px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kt-king 6s ease-in-out infinite; }
.scn-king-helianus-test .helicanus { position:absolute; bottom:25%; left:55%; width:18px; height:32px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: kt-helicanus 7s ease-in-out infinite; }
.scn-king-helianus-test .axe { position:absolute; bottom:25%; left:46%; width:4px; height:20px; background: #8a7a6a; border-radius: 10%; transform-origin: bottom; animation: kt-axe 5s ease-in-out infinite; }
.scn-king-helianus-test .axe::after { content:''; position:absolute; top:-8px; left:-5px; width:14px; height:8px; background: linear-gradient(180deg, #a09080 0%, #808070 100%); border-radius: 20% 20% 0 0; }
.scn-king-helianus-test .shadow { position:absolute; bottom:20%; left:50%; width:50px; height:6px; background: rgba(0,0,0,.2); border-radius: 50%; filter: blur(3px); animation: kt-shadow 8s ease-in-out infinite; }
@keyframes kt-king { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes kt-helicanus { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes kt-axe { 0% { transform: rotate(-20deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-20deg); } }
@keyframes kt-shadow { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.1); } 100% { transform: translateX(0) scale(1); } }

/* Scene: boult-lodge */
.scn-boult-lodge {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1f18 50%, #3a2820 100%),
    radial-gradient(ellipse at 30% 60%, #4a3020 0%, transparent 60%);
}
.scn-boult-lodge .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1210 0%, #2a1f18 100%); }
.scn-boult-lodge .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1f18 0%, #1a1210 100%); }
.scn-boult-lodge .sign {
  position:absolute; top:12%; left:45%; width:40px; height:30px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 4px;
  transform-origin: top center;
  animation: bl-sign 6s ease-in-out infinite;
}
.scn-boult-lodge .window {
  position:absolute; top:18%; right:20%; width:40px; height:50px;
  background: radial-gradient(circle, #d4a050 0%, #7a5020 70%);
  border-radius: 4px;
  box-shadow: 0 0 18px 8px rgba(212,160,80,0.3);
  animation: bl-window 4s ease-in-out infinite alternate;
}
.scn-boult-lodge .candle {
  position:absolute; bottom:24%; left:35%; width:6px; height:20px;
  background: linear-gradient(180deg, #f0e8d0, #c0a060);
  border-radius: 2px;
  box-shadow: 0 0 10px 4px #f0d080;
  animation: bl-candle 2s ease-in-out infinite alternate;
}
.scn-boult-lodge .figure-boult {
  position:absolute; bottom:30%; left:25%; width:22px; height:50px;
  background: linear-gradient(180deg, #2a1f18 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bl-figure1 5s ease-in-out infinite;
}
.scn-boult-lodge .figure-marina {
  position:absolute; bottom:30%; left:55%; width:18px; height:46px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bl-figure2 5s ease-in-out infinite 0.5s;
}
@keyframes bl-sign {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes bl-window {
  0% { opacity: 0.7; box-shadow: 0 0 12px 4px rgba(212,160,80,0.2); }
  50% { opacity: 1; box-shadow: 0 0 28px 12px rgba(212,160,80,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 16px 6px rgba(212,160,80,0.3); }
}
@keyframes bl-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.08); opacity: 1; box-shadow: 0 0 14px 6px #f0d080; }
  100% { transform: scaleY(1); opacity: 0.95; box-shadow: 0 0 10px 4px #f0d080; }
}
@keyframes bl-figure1 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(1px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes bl-figure2 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-1px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

/* Scene: marina-ignorant */
.scn-marina-ignorant {
  background:
    linear-gradient(180deg, #1e1412 0%, #2a1e18 40%, #3a2820 100%),
    radial-gradient(ellipse at 50% 30%, #3a2820 0%, transparent 60%);
}
.scn-marina-ignorant .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1e1412 0%, #2a1e18 100%); }
.scn-marina-ignorant .bg-curtain {
  position:absolute; top:0; left:10%; width:30%; height:80%;
  background: linear-gradient(180deg, #3a2020 0%, #1e0e0e 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: mi-curtain 12s ease-in-out infinite alternate;
}
.scn-marina-ignorant .figure-marina {
  position:absolute; bottom:20%; left:40%; width:16px; height:44px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mi-figure1 4s ease-in-out infinite;
}
.scn-marina-ignorant .figure-bawd {
  position:absolute; bottom:20%; left:55%; width:26px; height:60px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mi-figure2 5s ease-in-out infinite 0.5s;
}
.scn-marina-ignorant .candle {
  position:absolute; bottom:24%; left:48%; width:6px; height:18px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a060 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 6px #e0c080;
  animation: mi-candle 3s ease-in-out infinite alternate;
}
.scn-marina-ignorant .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
}
.scn-marina-ignorant .table {
  position:absolute; bottom:20%; left:35%; width:30%; height:6%;
  background: linear-gradient(180deg, #3a2820 0%, #1e1412 100%);
  border-radius: 2px;
}
@keyframes mi-curtain {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes mi-figure1 {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes mi-figure2 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mi-candle {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.06); box-shadow: 0 0 18px 8px #e0c080; }
  100% { opacity: 0.9; transform: scaleY(1); box-shadow: 0 0 12px 6px #e0c080; }
}

/* Scene: boult-morsel */
.scn-boult-morsel {
  background:
    linear-gradient(180deg, #1a0e08 0%, #2a1a10 50%, #3a2820 100%),
    radial-gradient(ellipse at 40% 70%, #4a3020 0%, transparent 60%);
}
.scn-boult-morsel .bg-hearth {
  position:absolute; bottom:20%; left:20%; width:60%; height:50%;
  background: linear-gradient(180deg, #3a2018 0%, #1a0e08 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 0 20px 4px rgba(0,0,0,0.6);
}
.scn-boult-morsel .spit {
  position:absolute; bottom:42%; left:30%; width:40%; height:2px;
  background: #2a1a10;
  border-radius: 1px;
}
.scn-boult-morsel .meat {
  position:absolute; bottom:40%; left:48%; width:14px; height:14px;
  background: radial-gradient(circle, #6a4030 0%, #3a2018 100%);
  border-radius: 50%;
  animation: bm-meat 4s linear infinite;
}
.scn-boult-morsel .flame-glow {
  position:absolute; bottom:35%; left:45%; width:30px; height:30px;
  background: radial-gradient(circle, #f0a050 0%, #d07020 50%, transparent 70%);
  border-radius: 50%;
  opacity: 0.6;
  animation: bm-flame 1s ease-in-out infinite alternate;
}
.scn-boult-morsel .figure-boult {
  position:absolute; bottom:20%; left:20%; width:24px; height:52px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bm-figure 5s ease-in-out infinite;
}
.scn-boult-morsel .knife {
  position:absolute; bottom:38%; left:22%; width:2px; height:20px;
  background: linear-gradient(180deg, #d0c0a0 0%, #8a7a6a 100%);
  transform: rotate(15deg);
  transform-origin: bottom left;
  animation: bm-knife 3s ease-in-out infinite alternate;
}
@keyframes bm-meat {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(4px) translateY(-2px); }
  50% { transform: translateX(6px) translateY(0); }
  75% { transform: translateX(4px) translateY(2px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes bm-flame {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes bm-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg) translateY(-1px); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bm-knife {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(25deg); }
  100% { transform: rotate(10deg); }
}

/* Scene: bawd-spend */
.scn-bawd-spend {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a2018 50%, #3a2a22 100%),
    radial-gradient(ellipse at 70% 20%, #3a2a22 0%, transparent 50%);
}
.scn-bawd-spend .bg-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 100%);
}
.scn-bawd-spend .door {
  position:absolute; bottom:0; left:30%; width:20%; height:80%;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a12 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
  animation: bs-door 8s ease-in-out infinite alternate;
}
.scn-bawd-spend .window {
  position:absolute; top:20%; right:15%; width:40px; height:50px;
  background: radial-gradient(circle, #4a4a6a 0%, #1a1a3a 100%);
  border-radius: 4px;
  box-shadow: 0 0 12px 4px rgba(50,50,80,0.3);
  animation: bs-window 5s ease-in-out infinite alternate;
}
.scn-bawd-spend .figure-bawd {
  position:absolute; bottom:20%; right:25%; width:22px; height:56px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a100e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bs-figure1 6s ease-in-out infinite;
}
.scn-bawd-spend .figure-boult {
  position:absolute; bottom:20%; left:25%; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bs-figure2 5s ease-in-out infinite 1s;
}
.scn-bawd-spend .candle {
  position:absolute; bottom:26%; right:35%; width:6px; height:18px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a060 100%);
  border-radius: 2px;
  box-shadow: 0 0 14px 6px #e0c080;
  animation: bs-candle 2.5s ease-in-out infinite alternate;
}
.scn-bawd-spend .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
}
@keyframes bs-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
  100% { transform: scaleX(1); }
}
@keyframes bs-window {
  0% { opacity: 0.8; box-shadow: 0 0 8px 2px rgba(50,50,80,0.2); }
  50% { opacity: 1; box-shadow: 0 0 20px 8px rgba(50,50,80,0.5); }
  100% { opacity: 0.9; box-shadow: 0 0 12px 4px rgba(50,50,80,0.3); }
}
@keyframes bs-figure1 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bs-figure2 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bs-candle {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.07); box-shadow: 0 0 18px 8px #e0c080; }
  100% { opacity: 0.9; transform: scaleY(1); box-shadow: 0 0 14px 6px #e0c080; }
}

.scn-dumb-show-letters { background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%), radial-gradient(ellipse at 50% 50%, #7a5a3a 0%, transparent 60%); }
.scn-dumb-show-letters .wall-back { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: dsl-wall 20s ease-in-out infinite alternate; }
.scn-dumb-show-letters .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%); border-radius: 30% 30% 0 0 / 10% 10% 0 0; }
.scn-dumb-show-letters .letter { position:absolute; bottom:45%; left:45%; width:40px; height:30px; background: radial-gradient(circle, #f0d080 0%, #d0a060 100%); border: 2px solid #a07030; border-radius: 4px; box-shadow: 0 0 20px 5px rgba(240,208,128,.5); animation: dsl-glow 3s ease-in-out infinite; }
.scn-dumb-show-letters .figure-kneeling { position:absolute; bottom:20%; left:30%; width:20px; height:40px; background: #1a1a1a; border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dsl-kneel 4s ease-in-out infinite; }
.scn-dumb-show-letters .figure-pericles { position:absolute; bottom:22%; left:55%; width:22px; height:50px; background: #2a2a2a; border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%; animation: dsl-stand 5s ease-in-out infinite; }
.scn-dumb-show-letters .figure-queen { position:absolute; bottom:22%; left:48%; width:24px; height:48px; background: #3a2a2a; border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: dsl-queen 6s ease-in-out infinite; }
.scn-dumb-show-letters .candle { position:absolute; bottom:42%; left:15%; width:4px; height:12px; background: linear-gradient(180deg, #ffe0a0 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 12px 3px #ffd080; animation: dsl-candle 2s ease-in-out infinite alternate; }
@keyframes dsl-wall { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes dsl-glow { 0% { opacity:.7; box-shadow:0 0 15px 3px #f0d080; } 50% { opacity:1; box-shadow:0 0 25px 8px #f0d080; } 100% { opacity:.8; box-shadow:0 0 18px 4px #d0a060; } }
@keyframes dsl-kneel { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes dsl-stand { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes dsl-queen { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes dsl-candle { 0% { opacity:.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.9; transform: scaleY(1); } }

.scn-gower-search-tyre { background: linear-gradient(135deg, #0a1a2a 0%, #1a2a3a 50%, #0a1a1a 100%), radial-gradient(ellipse at 50% 50%, #2a3a4a 0%, transparent 70%); }
.scn-gower-search-tyre .map-back { position:absolute; inset:10%; background: linear-gradient(135deg, #1a2a1a 0%, #2a3a2a 50%, #1a2a1a 100%); border-radius: 0% 20% 0% 20% / 0% 10% 0% 10%; box-shadow: inset 0 0 40px rgba(0,0,0,.6); animation: gst-map 25s linear infinite; }
.scn-gower-search-tyre .compass-rose { position:absolute; top:20%; left:20%; width:40px; height:40px; background: radial-gradient(circle, #d0b080 0%, #906040 50%, #604020 100%); clip-path: polygon(50% 0%, 70% 30%, 100% 50%, 70% 70%, 50% 100%, 30% 70%, 0% 50%, 30% 30%); border-radius:50%; animation: gst-compass 10s ease-in-out infinite alternate; }
.scn-gower-search-tyre .ship-token { position:absolute; top:45%; left:60%; width:20px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: gst-ship 8s ease-in-out infinite; }
.scn-gower-search-tyre .coign { position:absolute; width:10px; height:10px; background: #c0a060; border-radius:50%; box-shadow: 0 0 8px #c0a060; animation: gst-coign 4s ease-in-out infinite alternate; }
.scn-gower-search-tyre .coign-n { top:12%; left:48%; }
.scn-gower-search-tyre .coign-s { bottom:12%; left:48%; }
.scn-gower-search-tyre .coign-e { top:48%; right:12%; }
.scn-gower-search-tyre .coign-w { top:48%; left:12%; }
.scn-gower-search-tyre .search-lines { position:absolute; top:10%; left:10%; right:10%; bottom:10%; background: linear-gradient(45deg, transparent 30%, rgba(192,160,96,.2) 30%, transparent 35%, transparent 65%, rgba(192,160,96,.2) 65%, transparent 70%); background-size: 40px 40px; animation: gst-lines 20s linear infinite; }
@keyframes gst-map { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes gst-compass { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes gst-ship { 0% { transform: translate(0,0) rotate(-5deg); } 50% { transform: translate(4px,-2px) rotate(5deg); } 100% { transform: translate(0,0) rotate(-5deg); } }
@keyframes gst-coign { 0% { opacity:.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:.7; transform: scale(1); } }
@keyframes gst-lines { 0% { background-position: 0 0; } 50% { background-position: 20px 20px; } 100% { background-position: 40px 40px; } }

.scn-pericles-departure { background: linear-gradient(180deg, #0a1220 0%, #1a2a3a 50%, #2a3a4a 100%), radial-gradient(ellipse at 70% 20%, #3a5a7a 0%, transparent 60%); }
.scn-pericles-departure .night-sky { position:absolute; inset:0 0 40% 0; background: transparent; }
.scn-pericles-departure .city-wall { position:absolute; bottom:40%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 50% 80%, 0% 100%); animation: pd-wall 1s ease-in-out infinite; }
.scn-pericles-departure .ship { position:absolute; bottom:10%; left:20%; width:60px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); clip-path: polygon(0% 30%, 20% 0%, 80% 0%, 100% 30%, 80% 100%, 20% 100%); animation: pd-ship 5s ease-in-out infinite alternate; }
.scn-pericles-departure .pericles-figure { position:absolute; bottom:8%; left:35%; width:14px; height:40px; background: #1a1a2a; border-radius:45% 45% 35% 35% / 60% 60% 35% 35%; animation: pd-pericles 4s ease-in-out infinite; }
.scn-pericles-departure .queen-figure { position:absolute; bottom:42%; left:55%; width:16px; height:38px; background: #2a2a3a; border-radius:50% 50% 40% 40% / 65% 65% 30% 30%; animation: pd-queen 6s ease-in-out infinite; }
.scn-pericles-departure .crowd-left { position:absolute; bottom:38%; left:5%; width:30px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); clip-path: polygon(0% 100%, 5% 0%, 15% 30%, 25% 0%, 35% 30%, 45% 0%, 55% 40%, 100% 100%); animation: pd-crowd 7s ease-in-out infinite alternate; }
.scn-pericles-departure .crowd-right { position:absolute; bottom:38%; right:5%; width:30px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); clip-path: polygon(0% 100%, 5% 40%, 45% 0%, 55% 30%, 65% 0%, 75% 30%, 85% 0%, 100% 100%); animation: pd-crowd 7s ease-in-out infinite alternate 0.5s; }
.scn-pericles-departure .torch-left { position:absolute; bottom:48%; left:12%; width:4px; height:16px; background: linear-gradient(180deg, #ffd080 0%, #a06020 100%); border-radius:50%; box-shadow: 0 0 20px 6px #ffb040; animation: pd-torch 1s ease-in-out infinite alternate; }
.scn-pericles-departure .torch-right { position:absolute; bottom:48%; right:12%; width:4px; height:16px; background: linear-gradient(180deg, #ffd080 0%, #a06020 100%); border-radius:50%; box-shadow: 0 0 20px 6px #ffb040; animation: pd-torch 1.2s ease-in-out infinite alternate; }
@keyframes pd-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes pd-ship { 0% { transform: translate(0,0) rotate(-3deg); } 50% { transform: translate(2px,-1px) rotate(0deg); } 100% { transform: translate(-2px,0) rotate(-3deg); } }
@keyframes pd-pericles { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pd-queen { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes pd-crowd { 0% { opacity:.6; transform: translateY(0); } 50% { opacity:1; transform: translateY(-2px); } 100% { opacity:.7; transform: translateY(0); } }
@keyframes pd-torch { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.15); } 100% { opacity:.8; transform: scaleY(1); } }

.scn-storm-travail { background: linear-gradient(180deg, #0a0a0a 0%, #1a2a3a 30%, #0a1a2a 60%, #000 100%), radial-gradient(ellipse at 80% 80%, #2a4a5a 0%, transparent 70%); }
.scn-storm-travail .storm-sky { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(255,255,255,.03) 2px, rgba(255,255,255,.03) 4px); animation: st-rain 1s linear infinite; }
.scn-storm-travail .ship-storm { position:absolute; bottom:30%; left:40%; width:70px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); clip-path: polygon(0% 40%, 20% 0%, 80% 0%, 100% 40%, 80% 100%, 20% 100%); animation: st-ship 0.8s ease-in-out infinite alternate; }
.scn-storm-travail .wave-front { position:absolute; bottom:15%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a3a4a 0%, #0a1a2a 100%); border-radius: 60% 40% 0 0 / 80% 50% 0 0; animation: st-wave1 4s ease-in-out infinite alternate; }
.scn-storm-travail .wave-back { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; animation: st-wave2 5s ease-in-out infinite alternate; }
.scn-storm-travail .lady-figure { position:absolute; bottom:30%; left:45%; width:18px; height:45px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: st-lady 1.5s ease-in-out infinite; }
.scn-storm-travail .lightning { position:absolute; top:5%; left:50%; width:4px; height:80px; background: linear-gradient(180deg, #fff 0%, #ffffaa 50%, transparent 100%); box-shadow: 0 0 30px 10px #fff; animation: st-lightning 3s ease-in-out infinite; }
@keyframes st-rain { 0% { background-position: 0 0; } 50% { background-position: 0 5px; } 100% { background-position: 0 10px; } }
@keyframes st-ship { 0% { transform: translate(0,0) rotate(-10deg); } 50% { transform: translate(3px,5px) rotate(0deg); } 100% { transform: translate(-3px,0) rotate(-10deg); } }
@keyframes st-wave1 { 0% { transform: translateY(0) skewX(0deg); } 50% { transform: translateY(-5px) skewX(5deg); } 100% { transform: translateY(0) skewX(-5deg); } }
@keyframes st-wave2 { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-8px) scaleY(.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes st-lady { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-5deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes st-lightning { 0% { opacity:0; } 50% { opacity:1; } 55% { opacity:0; } 70% { opacity:1; } 75% { opacity:0; } 100% { opacity:0; } }

/* pericles-response-thanks */
.scn-pericles-response-thanks {
  background: linear-gradient(180deg, #f5e6d0 0%, #c8b89a 40%, #8b7a6a 100%),
              radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 70%);
}
.scn-pericles-response-thanks .pillar-left {
  position: absolute; left: 10%; top: 0; bottom: 30%; width: 4%;
  background: linear-gradient(90deg, #b8a88a 0%, #d8c8b0 30%, #b8a88a 100%);
  border-radius: 2px; box-shadow: 10px 0 20px rgba(0,0,0,0.2);
  animation: prt-pillar 8s ease-in-out infinite alternate;
}
.scn-pericles-response-thanks .pillar-right {
  position: absolute; right: 10%; top: 0; bottom: 30%; width: 4%;
  background: linear-gradient(90deg, #b8a88a 0%, #d8c8b0 30%, #b8a88a 100%);
  border-radius: 2px; box-shadow: -10px 0 20px rgba(0,0,0,0.2);
  animation: prt-pillar 8s ease-in-out infinite alternate;
  animation-delay: -4s;
}
.scn-pericles-response-thanks .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
}
.scn-pericles-response-thanks .figure-left {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: prt-figure 4s ease-in-out infinite alternate;
}
.scn-pericles-response-thanks .figure-right {
  position: absolute; bottom: 30%; right: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: prt-figure 4s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-pericles-response-thanks .light-shaft {
  position: absolute; top: 0; bottom: 30%; left: 45%; right: 45%;
  background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 100%);
  filter: blur(5px);
  animation: prt-shaft 5s ease-in-out infinite alternate;
}
@keyframes prt-pillar {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes prt-figure {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(0) translateY(-3px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes prt-shaft {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.05); }
  100% { opacity: 0.5; transform: scaleX(0.95); }
}

/* pericles-address-sin */
.scn-pericles-address-sin {
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 50%, #1a1a2e 100%),
              radial-gradient(circle at 40% 60%, #4a4a6e 0%, transparent 70%);
}
.scn-pericles-address-sin .mirror-frame {
  position: absolute; left: 40%; right: 40%; top: 20%; bottom: 50%;
  background: #6a5a3a; border-radius: 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px rgba(0,0,0,0.5);
}
.scn-pericles-address-sin .mirror-glass {
  position: absolute; left: 42%; right: 42%; top: 22%; bottom: 52%;
  background: linear-gradient(180deg, rgba(200,220,255,0.3) 0%, rgba(150,170,200,0.1) 100%);
  border-radius: 50% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: pas-mirror 6s ease-in-out infinite alternate;
}
.scn-pericles-address-sin .figure {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pas-figure 4s ease-in-out infinite alternate;
}
.scn-pericles-address-sin .candle {
  position: absolute; bottom: 30%; right: 25%; width: 8px; height: 30px;
  background: #8a7a4a; border-radius: 2px 2px 30% 30%;
  box-shadow: 0 0 10px #ffa060;
}
.scn-pericles-address-sin .flame {
  position: absolute; bottom: calc(30% + 30px); right: 25%; width: 6px; height: 10px;
  background: radial-gradient(circle at 50% 40%, #ffd680, #ff8030 60%, transparent 80%);
  border-radius: 50% 50% 10% 10% / 70% 70% 30% 30%;
  animation: pas-flame 0.8s ease-in-out infinite alternate;
}
.scn-pericles-address-sin .mote1 {
  position: absolute; top: 30%; left: 30%; width: 3px; height: 3px;
  background: rgba(255,255,255,0.5); border-radius: 50%; filter: blur(1px);
  animation: pas-mote 10s linear infinite;
}
.scn-pericles-address-sin .mote2 {
  position: absolute; top: 40%; left: 60%; width: 3px; height: 3px;
  background: rgba(255,255,255,0.4); border-radius: 50%; filter: blur(1px);
  animation: pas-mote 15s linear infinite;
  animation-delay: -5s;
}
@keyframes pas-mirror {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.02); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes pas-figure {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes pas-flame {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.2) translateY(-2px); }
  100% { transform: scaleY(0.9) translateY(0); }
}
@keyframes pas-mote {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  20% { opacity: 0.8; }
  80% { opacity: 0.6; }
  100% { transform: translateY(-100px) translateX(30px); opacity: 0; }
}

/* antioch-defiance-and-death-sentence */
.scn-antioch-defiance-and-death-sentence {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 50%, #1a0a0a 100%),
              radial-gradient(circle at 50% 20%, #8a6a3a 0%, transparent 70%);
}
.scn-antioch-defiance-and-death-sentence .dais {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-antioch-defiance-and-death-sentence .throne {
  position: absolute; bottom: 35%; left: 40%; right: 40%; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 10px 30px rgba(0,0,0,0.8);
}
.scn-antioch-defiance-and-death-sentence .kneeling-figure {
  position: absolute; bottom: 38%; left: 45%; width: 20px; 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: ads-kneel 2s ease-in-out infinite alternate;
}
.scn-antioch-defiance-and-death-sentence .sword {
  position: absolute; bottom: 45%; left: 50%; width: 4px; height: 30px;
  background: #c0b0a0; box-shadow: 0 0 20px #ffa060;
  transform: rotate(-30deg); transform-origin: bottom center;
  animation: ads-sword 3s ease-in-out infinite alternate;
}
.scn-antioch-defiance-and-death-sentence .light-beam {
  position: absolute; top: 0; bottom: 60%; left: 48%; right: 48%;
  background: linear-gradient(180deg, rgba(255,200,100,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: ads-beam 4s ease-in-out infinite alternate;
}
.scn-antioch-defiance-and-death-sentence .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: rgba(0,0,0,0.5); filter: blur(20px);
  animation: ads-shadow 6s ease-in-out infinite alternate;
}
@keyframes ads-kneel {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes ads-sword {
  0% { transform: rotate(-30deg) translateX(0); box-shadow: 0 0 10px #ffa060; }
  50% { transform: rotate(-25deg) translateX(5px); box-shadow: 0 0 30px #ffa060; }
  100% { transform: rotate(-35deg) translateX(-5px); box-shadow: 0 0 15px #ffa060; }
}
@keyframes ads-beam {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.2); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes ads-shadow {
  0% { opacity: 0.4; transform: scaleY(0.8); }
  50% { opacity: 0.7; transform: scaleY(1); }
  100% { opacity: 0.5; transform: scaleY(0.9); }
}

/* antioch-riddle-wishes */
.scn-antioch-riddle-wishes {
  background: linear-gradient(180deg, #f0d8a0 0%, #d8b878 50%, #c09850 100%),
              radial-gradient(ellipse at 50% 30%, #ffe8c0 0%, transparent 70%);
}
.scn-antioch-riddle-wishes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b89860 0%, #8a6a3a 100%);
  animation: arw-floor 8s ease-in-out infinite alternate;
}
.scn-antioch-riddle-wishes .lectern {
  position: absolute; bottom: 20%; left: 40%; right: 40%; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 10px 20px rgba(0,0,0,0.3);
}
.scn-antioch-riddle-wishes .scroll {
  position: absolute; bottom: 35%; left: 45%; width: 40px; height: 20px;
  background: #f5e6c0; border-radius: 10px; box-shadow: 0 2px 5px rgba(0,0,0,0.2);
  animation: arw-scroll 10s ease-in-out infinite alternate;
}
.scn-antioch-riddle-wishes .figure {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: arw-figure 5s ease-in-out infinite alternate;
}
.scn-antioch-riddle-wishes .glow {
  position: absolute; bottom: 25%; left: 45%; right: 45%; height: 60%;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  filter: blur(15px);
  animation: arw-glow 4s ease-in-out infinite alternate;
}
.scn-antioch-riddle-wishes .dust {
  position: absolute; top: 30%; left: 30%; width: 20px; height: 20px;
  background: transparent;
  box-shadow: 10px 10px 0 2px rgba(255,200,100,0.3), 20px 30px 0 1px rgba(255,200,100,0.2);
  border-radius: 50%;
  animation: arw-dust 12s linear infinite;
}
@keyframes arw-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes arw-scroll {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes arw-figure {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-48%) scale(1.02); }
  100% { transform: translateX(-52%) scale(0.98); }
}
@keyframes arw-glow {
  0% { opacity: 0.5; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes arw-dust {
  0% { transform: translateY(0) rotate(0deg); opacity: 0; }
  20% { opacity: 0.5; }
  80% { opacity: 0.3; }
  100% { transform: translateY(-80px) rotate(360deg); opacity: 0; }
}

.scn-cp {
  background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%),
              radial-gradient(ellipse at 50% 100%, #5a3a2a 0%, transparent 70%);
}
.scn-cp .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%); animation: cp-bg 12s ease-in-out infinite alternate; }
.scn-cp .window-open { position:absolute; top:5%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #f0d9b5 0%, #e8c8a0 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 60px rgba(255,220,180,.4); animation: cp-window 8s ease-in-out infinite alternate; }
.scn-cp .window-sill { position:absolute; bottom:55%; left:18%; right:18%; height:4%; background: #5a4a3a; border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-cp .figure { position:absolute; bottom:20%; left:50%; width:24px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-figure 6s ease-in-out infinite; }
.scn-cp .desk { position:absolute; bottom:10%; left:35%; right:35%; height:8%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-cp .book { position:absolute; bottom:14%; left:42%; width:30px; height:10px; background: linear-gradient(135deg, #c8a878 0%, #a88858 100%); border-radius: 2px; transform: rotate(-5deg); animation: cp-book 4s ease-in-out infinite alternate; }
.scn-cp .cup { position:absolute; bottom:12%; left:56%; width:12px; height:16px; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 30% 30% 10% 10%; animation: cp-cup 3s ease-in-out infinite; }

@keyframes cp-bg { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes cp-window { 0% { opacity: .85; box-shadow: inset 0 0 40px rgba(255,220,180,.3) } 50% { opacity: 1; box-shadow: inset 0 0 80px rgba(255,220,180,.5) } 100% { opacity: .9; box-shadow: inset 0 0 50px rgba(255,220,180,.35) } }
@keyframes cp-figure { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes cp-book { 0% { transform: rotate(-7deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-3deg) } }
@keyframes cp-cup { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }

.scn-cr {
  background: linear-gradient(180deg, #f5d8a0 0%, #e8b870 40%, #c89850 100%),
              radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 60%);
}
.scn-cr .sky-warm { position:absolute; inset:0; background: linear-gradient(180deg, #f5d8a0 0%, #ffddb0 50%, transparent 100%); animation: cr-sky 10s ease-in-out infinite alternate; }
.scn-cr .sun-glow { position:absolute; top:5%; left:50%; width:40px; height:40px; transform: translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #ffb050 60%, transparent 80%); animation: cr-sun 20s linear infinite; }
.scn-cr .arch { position:absolute; bottom:20%; left:20%; right:20%; height:50%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: cr-arch 15s ease-in-out infinite alternate; }
.scn-cr .arch-opening { position:absolute; bottom:22%; left:30%; right:30%; height:45%; background: #2a1a10; border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-cr .cerimon-body { position:absolute; bottom:22%; left:45%; width:20px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: cr-body 4s ease-in-out infinite; }
.scn-cr .cerimon-arm-l { position:absolute; bottom:40%; left:40%; width:8px; height:30px; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 20% 20% 80% 80% / 50% 50% 50% 50%; transform-origin: bottom right; animation: cr-arm-l 3s ease-in-out infinite alternate; }
.scn-cr .cerimon-arm-r { position:absolute; bottom:40%; left:52%; width:8px; height:30px; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 20% 20% 80% 80% / 50% 50% 50% 50%; transform-origin: bottom left; animation: cr-arm-r 3s ease-in-out infinite alternate; }
.scn-cr .citizen-figure { position:absolute; bottom:20%; left:60%; width:14px; height:30px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: cr-citizen 4s ease-in-out infinite; }

@keyframes cr-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes cr-sun { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes cr-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes cr-body { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes cr-arm-l { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }
@keyframes cr-arm-r { 0% { transform: rotate(0deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(0deg) } }
@keyframes cr-citizen { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } 100% { transform: translateX(-50%) translateY(0) } }

.scn-ic {
  background: linear-gradient(180deg, #c0d8e0 0%, #a0c0d0 30%, #8090a0 100%),
              radial-gradient(ellipse at 50% 0%, #e0f0ff 0%, transparent 50%);
}
.scn-ic .beach-sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #d0e0f0 0%, #b0d0e0 100%); animation: ic-sky 12s ease-in-out infinite alternate; }
.scn-ic .beach-sea { position:absolute; top:50%; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a9aae 0%, #5a7a8e 100%); animation: ic-sea 20s linear infinite; }
.scn-ic .beach-sand { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #d0c098 0%, #b8a888 100%); }
.scn-ic .chest-body { position:absolute; bottom:25%; left:40%; width:40px; height:30px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: ic-chest 6s ease-in-out infinite; }
.scn-ic .chest-lid { position:absolute; bottom:55%; left:38%; width:44px; height:10px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 2px 2px 0 0; transform-origin: bottom center; animation: ic-lid 2s ease-out forwards; }
.scn-ic .chest-figure { position:absolute; bottom:20%; left:30%; width:20px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ic-figure 4s ease-in-out infinite; }
.scn-ic .wave { position:absolute; bottom:40%; left:0; right:0; height:10px; background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: ic-wave 8s linear infinite; }

@keyframes ic-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes ic-sea { 0% { background-position: 0 0 } 100% { background-position: -100px 0 } }
@keyframes ic-chest { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ic-lid { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(80deg) } 100% { transform: translateX(-50%) rotate(90deg) } }
@keyframes ic-figure { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(-5deg) translateX(2px) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-50%) rotate(5deg) translateX(-2px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ic-wave { 0% { transform: translateX(-20px) scaleY(1) } 50% { transform: translateX(20px) scaleY(0.8) } 100% { transform: translateX(-20px) scaleY(1) } }

.scn-cq {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 30%, #4a4a6a 0%, transparent 70%);
}
.scn-cq .chamber-dark { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); animation: cq-dark 10s ease-in-out infinite alternate; }
.scn-cq .chest-open { position:absolute; bottom:20%; left:40%; width:50px; height:30px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 6% 6% 3% 3%; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); transform-origin: bottom center; animation: cq-chest 1s ease-in-out infinite alternate; }
.scn-cq .queen-body { position:absolute; bottom:22%; left:45%; width:20px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cq-body 2s ease-in-out infinite alternate; }
.scn-cq .queen-cloth { position:absolute; bottom:25%; left:43%; width:28px; height:30px; transform: translateX(-50%); background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 20% 20% 10% 10%; filter: blur(1px); animation: cq-cloth 3s ease-in-out infinite alternate; }
.scn-cq .cerimon-hand { position:absolute; bottom:30%; left:42%; width:10px; height:20px; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: top center; animation: cq-hand 1.5s ease-in-out infinite alternate; }
.scn-cq .scroll { position:absolute; bottom:22%; left:50%; width:30px; height:6px; transform: translateX(-50%); background: #c0a878; border-radius: 2px; animation: cq-scroll 2s ease-in-out infinite alternate; }
.scn-cq .spice-glint { position:absolute; bottom:23%; left:47%; width:4px; height:4px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 8px #ffd080; animation: cq-sparkle 0.5s ease-in-out infinite alternate; }

@keyframes cq-dark { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes cq-chest { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes cq-body { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes cq-cloth { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes cq-hand { 0% { transform: translateY(0) } 50% { transform: translateY(8px) } 100% { transform: translateY(0) } }
@keyframes cq-scroll { 0% { width: 30px } 50% { width: 40px } 100% { width: 30px } }
@keyframes cq-sparkle { 0% { opacity: .2; transform: scale(1) } 100% { opacity: 1; transform: scale(1.5) } }

.scn-bawd-give-over { background: linear-gradient(180deg, #1a1410 0%, #2b1f16 50%, #1a1410 100%), radial-gradient(ellipse at 50% 100%, #2b1f16 0%, transparent 70%); }
.scn-bawd-give-over .fire { position:absolute; bottom:22%; left:30%; right:30%; height:25%; background: radial-gradient(ellipse at 50% 100%, #ff7b24 0%, #cc4400 40%, transparent 70%); animation: bgo-fire 4s ease-in-out infinite alternate; }
.scn-bawd-give-over .mantle { position:absolute; bottom:42%; left:20%; right:20%; height:4%; background: linear-gradient(180deg, #3a2518 0%, #1f140e 100%); border-radius: 4px; box-shadow: inset 0 2px 4px rgba(0,0,0,.6); }
.scn-bawd-give-over .armchair { position:absolute; bottom:22%; left:25%; width:25%; height:25%; background: linear-gradient(135deg, #4a3020 0%, #2a1a10 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-bawd-give-over .figure { position:absolute; bottom:24%; left:32%; width:14%; height:32%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bgo-breathe 6s ease-in-out infinite; }
.scn-bawd-give-over .table { position:absolute; bottom:14%; left:42%; width:18%; height:8%; background: linear-gradient(180deg, #3d281c 0%, #1f140e 100%); border-radius: 6px; box-shadow: 0 2px 6px rgba(0,0,0,.7); }
.scn-bawd-give-over .coins { position:absolute; bottom:18%; left:46%; width:4%; height:4%; background: radial-gradient(circle, #ffd080 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 8px 2px #ffb040; animation: bgo-shimmer 3s ease-in-out infinite; }
.scn-bawd-give-over .shadow-1 { position:absolute; bottom:0; left:0; right:40%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: bgo-shadow 8s ease-in-out infinite; }
.scn-bawd-give-over .shadow-2 { position:absolute; bottom:0; left:40%; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); animation: bgo-shadow 8s ease-in-out infinite reverse; }
@keyframes bgo-fire { 0% { transform: scaleY(0.9) scaleX(1); opacity: 0.8; } 50% { transform: scaleY(1.15) scaleX(1.05); opacity: 1; } 100% { transform: scaleY(0.95) scaleX(0.98); opacity: 0.85; } }
@keyframes bgo-breathe { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bgo-shimmer { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes bgo-shadow { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

.scn-bawd-credit { background: linear-gradient(135deg, #0f0d0e 0%, #1c1412 50%, #2b1a14 100%), radial-gradient(ellipse at 30% 50%, #3a1c14 0%, transparent 60%); }
.scn-bawd-credit .table { position:absolute; bottom:15%; left:15%; right:15%; height:10%; background: linear-gradient(180deg, #2b1a14 0%, #140a08 100%); border-radius: 8px; box-shadow: 0 -8px 20px rgba(0,0,0,.8); }
.scn-bawd-credit .chest { position:absolute; bottom:22%; left:10%; width:18%; height:16%; background: linear-gradient(135deg, #4a2a1a 0%, #1f0e08 100%); border-radius: 4px; box-shadow: inset 0 0 0 2px #5e3a24, 0 4px 8px rgba(0,0,0,.6); animation: bcr-pulse 4s ease-in-out infinite; }
.scn-bawd-credit .lantern { position:absolute; top:15%; left:45%; width:10%; height:15%; background: radial-gradient(circle at 50% 50%, #ff9a44 0%, #cc4400 50%, transparent 70%); animation: bcr-flicker 0.5s ease-in-out infinite alternate; }
.scn-bawd-credit .figure-left { position:absolute; bottom:18%; left:22%; width:15%; height:40%; background: linear-gradient(180deg, #1c1412 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bcr-shift 8s ease-in-out infinite; }
.scn-bawd-credit .figure-right { position:absolute; bottom:18%; right:22%; width:15%; height:40%; background: linear-gradient(180deg, #1c1412 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bcr-shift 8s ease-in-out infinite reverse; }
.scn-bawd-credit .shadow-harsh { position:absolute; bottom:20%; left:30%; right:30%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,.8) 0%, transparent 100%); animation: bcr-shadow-grow 8s ease-in-out infinite; }
.scn-bawd-credit .coin { position:absolute; bottom:25%; left:45%; width:4%; height:4%; background: radial-gradient(circle, #ffd080 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 6px 2px #ffb040; animation: bcr-pulse 4s ease-in-out infinite 2s; }
@keyframes bcr-flicker { 0% { transform: scale(1) translateY(0); opacity: 0.8; } 25% { transform: scale(1.05) translateY(-2px); opacity: 1; } 50% { transform: scale(0.95) translateY(1px); opacity: 0.7; } 75% { transform: scale(1.1) translateY(-1px); opacity: 1; } 100% { transform: scale(1) translateY(0); opacity: 0.9; } }
@keyframes bcr-shift { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bcr-shadow-grow { 0% { transform: scaleY(0.8); opacity: 0.7; } 50% { transform: scaleY(1.2); opacity: 1; } 100% { transform: scaleY(0.9); opacity: 0.8; } }
@keyframes bcr-pulse { 0% { box-shadow: 0 0 4px 1px #ffb040; } 50% { box-shadow: 0 0 12px 4px #ff9a44; } 100% { box-shadow: 0 0 4px 1px #ffb040; } }

.scn-pandar-others-offend { background: linear-gradient(180deg, #1a1612 0%, #2b221a 40%, #3d2c20 100%), radial-gradient(ellipse at 70% 60%, #4a3324 0%, transparent 70%); }
.scn-pandar-others-offend .archway { position:absolute; bottom:0; left:15%; right:15%; height:100%; background: linear-gradient(180deg, #2b1f16 0%, #1a1210 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-pandar-others-offend .door { position:absolute; bottom:5%; left:30%; right:35%; height:80%; background: linear-gradient(180deg, #1f140e 0%, #140a08 100%); border-radius: 4px; transform-origin: left center; animation: poo-door-open 12s ease-in-out infinite; box-shadow: -4px 0 8px rgba(0,0,0,.4); }
.scn-pandar-others-offend .boult { position:absolute; bottom:15%; left:50%; width:18%; height:42%; background: linear-gradient(180deg, #2a1a10 0%, #140a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: poo-enter 12s ease-in-out infinite; }
.scn-pandar-others-offend .marina { position:absolute; bottom:15%; left:55%; width:16%; height:40%; background: linear-gradient(180deg, #b87878 0%, #6a3a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: poo-enter 12s ease-in-out infinite 2s; }
.scn-pandar-others-offend .pandar { position:absolute; bottom:20%; left:15%; width:18%; height:40%; background: linear-gradient(180deg, #3a2518 0%, #1f140e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: poo-gesture 8s ease-in-out infinite; }
.scn-pandar-others-offend .torchlight { position:absolute; top:10%; left:25%; width:20%; height:25%; background: radial-gradient(ellipse at 50% 50%, rgba(255,150,50,0.15) 0%, transparent 70%); animation: poo-torchlight 6s ease-in-out infinite; }
.scn-pandar-others-offend .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); }
@keyframes poo-door-open { 0% { transform: rotateY(0deg); } 30% { transform: rotateY(-35deg); } 70% { transform: rotateY(-35deg); } 100% { transform: rotateY(0deg); } }
@keyframes poo-enter { 0% { transform: translateX(-20px) scale(0.95); opacity: 0; } 20% { transform: translateX(0) scale(1); opacity: 1; } 80% { transform: translateX(0) scale(1); opacity: 1; } 100% { transform: translateX(10px) scale(0.95); opacity: 0; } }
@keyframes poo-gesture { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes poo-torchlight { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.98); } }

.scn-boult-earnest { background: linear-gradient(180deg, #1a1412 0%, #2b1f18 40%, #3d2c20 100%), radial-gradient(ellipse at 50% 30%, #6a4a30 0%, transparent 70%); }
.scn-boult-earnest .table { position:absolute; bottom:10%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #3d281c 0%, #1f140e 100%); border-radius: 8px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-boult-earnest .boult { position:absolute; bottom:18%; left:22%; width:22%; height:50%; background: linear-gradient(180deg, #c8553d 0%, #6a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: be-bounce 0.8s ease-in-out infinite; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-boult-earnest .marina { position:absolute; bottom:18%; right:22%; width:20%; height:48%; background: linear-gradient(180deg, #b87878 0%, #5e2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: be-sway 3s ease-in-out infinite; }
.scn-boult-earnest .coin { position:absolute; top:40%; left:45%; width:6%; height:6%; background: radial-gradient(circle, #ffd080 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 16px 4px #ffb040; animation: be-spin 1.5s ease-in-out infinite; }
.scn-boult-earnest .veil { position:absolute; bottom:30%; right:28%; width:10%; height:22%; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius: 50% 50% 20% 20% / 80% 80% 40% 40%; filter: blur(2px); animation: be-flutter 2s ease-in-out infinite; }
.scn-boult-earnest .sparkle-1 { position:absolute; top:30%; left:30%; width:3%; height:3%; background: radial-gradient(circle, #ffd080 0%, transparent 100%); border-radius: 50%; animation: be-sparkle 1.2s ease-in-out infinite; }
.scn-boult-earnest .sparkle-2 { position:absolute; top:35%; left:55%; width:2%; height:2%; background: radial-gradient(circle, #ffd080 0%, transparent 100%); border-radius: 50%; animation: be-sparkle 1.2s ease-in-out infinite 0.6s; }
@keyframes be-bounce { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-10px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes be-sway { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes be-spin { 0% { transform: translateY(0) scale(1) rotate(0deg); } 50% { transform: translateY(-6px) scale(1.1) rotate(180deg); } 100% { transform: translateY(0) scale(1) rotate(360deg); } }
@keyframes be-flutter { 0% { transform: translateX(0) scaleY(1); opacity: 0.6; } 50% { transform: translateX(3px) scaleY(1.05); opacity: 1; } 100% { transform: translateX(0) scaleY(1); opacity: 0.7; } }
@keyframes be-sparkle { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0; transform: scale(0.8); } }

.scn-preparing-to-leave-mytilene { background: linear-gradient(180deg, #fcd8a8 0%, #fce1b8 40%, #b8d4e8 100%), radial-gradient(ellipse at 50% 0%, #fcd8a8 0%, transparent 60%); }
.scn-preparing-to-leave-mytilene .scn-mytilene-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #fce1b8 0%, #b8d4e8 100%); animation: myt-sky 12s ease-in-out infinite alternate; }
.scn-preparing-to-leave-mytilene .scn-mytilene-sun { position:absolute; top:8%; left:65%; width:60px; height:60px; background: radial-gradient(circle, #fff5d8 0%, #fcd8a8 80%); border-radius:50%; box-shadow: 0 0 40px 15px #fcd8a8, 0 0 80px 30px rgba(252,216,168,.4); animation: myt-sun 6s ease-in-out infinite alternate; }
.scn-preparing-to-leave-mytilene .scn-mytilene-sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #5a8c9c 0%, #2a5c6c 100%); animation: myt-sea 8s ease-in-out infinite alternate; }
.scn-preparing-to-leave-mytilene .scn-mytilene-shore { position:absolute; bottom:15%; right:10%; width:45%; height:20%; background: linear-gradient(180deg, #d4a878 0%, #b8845a 100%); border-radius: 60% 0% 0% 0% / 100% 0% 0% 0%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); animation: myt-shore 10s ease-in-out infinite alternate; }
.scn-preparing-to-leave-mytilene .scn-mytilene-ship { position:absolute; bottom:30%; left:15%; width:120px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 40% 60% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 5px 15px rgba(0,0,0,.5); animation: myt-ship 4s ease-in-out infinite; }
.scn-preparing-to-leave-mytilene .scn-mytilene-mast { position:absolute; bottom:42%; left:22%; width:6px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 2px; transform-origin: bottom center; animation: myt-mast 4s ease-in-out infinite; }
.scn-preparing-to-leave-mytilene .scn-mytilene-cloud-a { position:absolute; top:12%; right:-10%; width:120px; height:25px; background: rgba(255,255,255,.6); border-radius: 50%; filter: blur(8px); animation: myt-drift-a 30s linear infinite; }
.scn-preparing-to-leave-mytilene .scn-mytilene-cloud-b { position:absolute; top:25%; left:-10%; width:90px; height:20px; background: rgba(255,255,255,.5); border-radius: 50%; filter: blur(6px); animation: myt-drift-b 40s linear infinite; }
@keyframes myt-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes myt-sun { 0% { transform: scale(.95); box-shadow: 0 0 30px 10px #fcd8a8; } 50% { transform: scale(1); box-shadow: 0 0 40px 15px #fcd8a8; } 100% { transform: scale(1.05); box-shadow: 0 0 50px 20px #fcd8a8; } }
@keyframes myt-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(3px); } }
@keyframes myt-shore { 0% { transform: translateX(0); } 50% { transform: translateX(-4px); } 100% { transform: translateX(-8px); } }
@keyframes myt-ship { 0%, 100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } }
@keyframes myt-mast { 0%, 100% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } }
@keyframes myt-drift-a { 0% { transform: translateX(0); } 100% { transform: translateX(-150vw); } }
@keyframes myt-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(150vw); } }

.scn-gower-chorus { background: linear-gradient(180deg, #4a3020 0%, #7a5040 30%, #3a2a2a 100%), radial-gradient(ellipse at 50% 70%, #7a5040 0%, transparent 70%); }
.scn-gower-chorus .scn-gower-bg { position:absolute; inset: 5% 10% 15% 10%; background: radial-gradient(ellipse at 50% 40%, #b8a080 0%, #7a5040 100%); border-radius: 20px; animation: gow-bg 12s ease-in-out infinite alternate; }
.scn-gower-chorus .scn-gower-stage { position:absolute; bottom:25%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, #c8a858 0%, #8a6838 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.3); }
.scn-gower-chorus .scn-gower-curtain-l { position:absolute; top:5%; left:10%; width:20%; height:70%; background: linear-gradient(135deg, #a0462a 0%, #6a2a1a 100%); border-radius: 0 0 60% 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.4); animation: gow-curtain 8s ease-in-out infinite alternate; }
.scn-gower-chorus .scn-gower-curtain-r { position:absolute; top:5%; right:10%; width:20%; height:70%; background: linear-gradient(225deg, #a0462a 0%, #6a2a1a 100%); border-radius: 0 0 0 60%; box-shadow: inset 4px 0 8px rgba(0,0,0,.4); animation: gow-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-gower-chorus .scn-gower-figure { position:absolute; bottom:28%; left:50%; transform: translateX(-50%); width:28px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: gow-fig 4s ease-in-out infinite; }
.scn-gower-chorus .scn-gower-sand { position:absolute; bottom:38%; left:50%; transform: translateX(-50%); width:16px; height:30px; background: linear-gradient(180deg, #f0d8a0 50%, transparent 50%); border: 1px solid #c8a858; border-radius: 4px; animation: gow-sand 6s ease-in-out infinite; }
.scn-gower-chorus .scn-gower-ray { position:absolute; top:10%; left:30%; width:40%; height:60%; background: linear-gradient(135deg, rgba(255,255,200,.15) 0%, transparent 100%); animation: gow-ray 8s ease-in-out infinite alternate; }
.scn-gower-chorus .scn-gower-dust { position:absolute; top:20%; left:40%; width:6px; height:6px; background: rgba(255,255,200,.8); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,255,200,.5); animation: gow-dust 5s ease-in-out infinite; }
@keyframes gow-bg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes gow-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes gow-fig { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes gow-sand { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(.8); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes gow-ray { 0% { transform: rotate(-5deg); opacity: .5; } 50% { transform: rotate(0deg); opacity: .75; } 100% { transform: rotate(5deg); opacity: 1; } }
@keyframes gow-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; } 50% { transform: translateY(-20px) translateX(10px) scale(1.5); opacity: 1; } 100% { transform: translateY(-40px) translateX(-5px) scale(.5); opacity: 0; } }

.scn-ephesus-temple { background: linear-gradient(180deg, #c8d8e0 0%, #e8f0f4 40%, #a8b8c8 100%), radial-gradient(ellipse at 50% 0%, #e8f0f4 0%, transparent 70%); }
.scn-ephesus-temple .scn-ephes-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, #f4f8fc 0%, #c8d8e0 80%); animation: eph-bg 15s ease-in-out infinite alternate; }
.scn-ephesus-temple .scn-ephes-col-l { position:absolute; top:5%; left:12%; width:12%; height:85%; background: linear-gradient(180deg, #e8f0f4 0%, #b8c8d0 50%, #889898 100%); border-radius: 10px 10px 0 0; box-shadow: 4px 0 15px rgba(0,0,0,.1); animation: eph-col 10s ease-in-out infinite alternate; }
.scn-ephesus-temple .scn-ephes-col-r { position:absolute; top:5%; right:12%; width:12%; height:85%; background: linear-gradient(180deg, #e8f0f4 0%, #b8c8d0 50%, #889898 100%); border-radius: 10px 10px 0 0; box-shadow: -4px 0 15px rgba(0,0,0,.1); animation: eph-col 10s ease-in-out infinite alternate-reverse; }
.scn-ephesus-temple .scn-ephes-altar { position:absolute; bottom:25%; left:50%; transform: translateX(-50%); width:60px; height:40px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 0 30px 5px #c8783a; animation: eph-altar 3s ease-in-out infinite alternate; }
.scn-ephesus-temple .scn-ephes-beam { position:absolute; top:0; left:35%; width:30%; height:60%; background: linear-gradient(180deg, rgba(255,255,240,.4) 0%, transparent 100%); animation: eph-beam 6s ease-in-out infinite alternate; }
.scn-ephesus-temple .scn-ephes-fig { position:absolute; bottom:28%; left:38%; width:20px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: eph-fig 4s ease-in-out infinite; }
.scn-ephesus-temple .scn-ephes-glow { position:absolute; bottom:30%; left:50%; transform: translateX(-50%); width:100px; height:100px; background: radial-gradient(circle, rgba(200,120,58,.6) 0%, transparent 70%); animation: eph-glow 4s ease-in-out infinite alternate; }
.scn-ephesus-temple .scn-ephes-wisp { position:absolute; bottom:35%; left:50%; width:8px; height:8px; background: rgba(255,200,150,.8); border-radius: 50%; box-shadow: 0 0 10px 3px rgba(255,200,150,.4); animation: eph-wisp 6s ease-in-out infinite; }
@keyframes eph-bg { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .95; } }
@keyframes eph-col { 0% { transform: scaleY(.98); } 50% { transform: scaleY(1); } 100% { transform: scaleY(.99); } }
@keyframes eph-altar { 0% { box-shadow: 0 0 20px 3px #c8783a; } 50% { box-shadow: 0 0 30px 6px #c8783a; } 100% { box-shadow: 0 0 40px 10px #c8783a; } }
@keyframes eph-beam { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: 1; } }
@keyframes eph-fig { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes eph-glow { 0% { transform: translateX(-50%) scale(.95); opacity: .8; } 50% { transform: translateX(-50%) scale(1.05); opacity: .9; } 100% { transform: translateX(-50%) scale(1.1); opacity: 1; } }
@keyframes eph-wisp { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; } 30% { opacity: 1; } 100% { transform: translateY(-80px) translateX(20px) scale(.5); opacity: 0; } }

.scn-item-coffin-jewels { background: linear-gradient(135deg, #1a181a 0%, #3a2a2a 50%, #1a181a 100%), radial-gradient(circle at 50% 50%, #4a3a3a 0%, #0a080a 100%); }
.scn-item-coffin-jewels .scn-jewel-outer { position:absolute; top:10%; left:10%; width:80%; height:80%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 12px; box-shadow: inset 0 0 30px rgba(0,0,0,.8); }
.scn-item-coffin-jewels .scn-jewel-inner { position:absolute; top:15%; left:15%; width:70%; height:70%; background: radial-gradient(circle at 50% 50%, #6a2a4a 0%, #4a153a 100%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-item-coffin-jewels .scn-jewel-glow { position:absolute; top:50%; left:50%; transform: translate(-50%, -50%); width:40%; height:40%; background: radial-gradient(circle, #fce8a0 0%, #c8a040 60%, transparent 100%); animation: jwl-glow 3s ease-in-out infinite alternate; }
.scn-item-coffin-jewels .scn-jewel-gem-a { position:absolute; top:35%; left:35%; width:12%; height:12%; background: radial-gradient(circle, #80e8c0 0%, #208050 100%); border-radius: 50%; box-shadow: 0 0 15px 3px rgba(128,232,192,.6); animation: jwl-gem-a 5s ease-in-out infinite; }
.scn-item-coffin-jewels .scn-jewel-gem-b { position:absolute; bottom:35%; right:35%; width:10%; height:10%; background: radial-gradient(circle, #80c0e8 0%, #205080 100%); border-radius: 50%; box-shadow: 0 0 15px 3px rgba(128,192,232,.6); animation: jwl-gem-b 5s ease-in-out infinite reverse; }
.scn-item-coffin-jewels .scn-jewel-gem-c { position:absolute; top:55%; left:55%; width:8%; height:8%; background: radial-gradient(circle, #fce8a0 0%, #c8a040 100%); border-radius: 50%; box-shadow: 0 0 15px 3px rgba(252,232,160,.6); animation: jwl-gem-c 4s ease-in-out infinite alternate; }
.scn-item-coffin-jewels .scn-jewel-hand { position:absolute; top:15%; left:50%; transform: translateX(-50%); width:25%; height:35%; background: linear-gradient(180deg, #d4a878 0%, #b8845a 40%, transparent 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; mask-image: linear-gradient(180deg, #000 60%, transparent 100%); -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent 100%); animation: jwl-hand 6s ease-in-out infinite; }
.scn-item-coffin-jewels .scn-jewel-sparkle-a { position:absolute; top:30%; left:30%; width:6px; height:6px; background: #fff; border-radius: 50%; box-shadow: 0 0 8px 2px rgba(255,255,255,.8); animation: jwl-sparkle 2s ease-in-out infinite; }
.scn-item-coffin-jewels .scn-jewel-sparkle-b { position:absolute; bottom:35%; left:45%; width:4px; height:4px; background: #fff; border-radius: 50%; box-shadow: 0 0 6px 1px rgba(255,255,255,.8); animation: jwl-sparkle 2s ease-in-out infinite .5s; }
@keyframes jwl-glow { 0% { transform: translate(-50%, -50%) scale(.95); opacity: .7; } 50% { transform: translate(-50%, -50%) scale(1.05); opacity: .85; } 100% { transform: translate(-50%, -50%) scale(1.1); opacity: 1; } }
@keyframes jwl-gem-a { 0% { transform: translate(0, 0); } 50% { transform: translate(5px, -5px); } 100% { transform: translate(-2px, 2px); } }
@keyframes jwl-gem-b { 0% { transform: translate(0, 0); } 50% { transform: translate(-5px, 5px); } 100% { transform: translate(2px, -2px); } }
@keyframes jwl-gem-c { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1.2); } }
@keyframes jwl-hand { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-8px); } }
@keyframes jwl-sparkle { 0%, 100% { opacity: 0; transform: scale(.5); } 50% { opacity: 1; transform: scale(1.5); } }

.scn-leonine-relief,
.scn-brothel-bawds-plan,
.scn-pandar-fresh-ones,
.scn-bawd-consent {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

/* ── Scene: leonine-relief (calm, dim-interior) ── */
.scn-leonine-relief {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2d2d44 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 0%, #4a4a6a 0%, transparent 100%);
}
.scn-leonine-relief .sr-wall   { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a44 0%, #1c1c32 100%); }
.scn-leonine-relief .sr-floor  { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); }
.scn-leonine-relief .sr-window { position:absolute; top:15%; left:60%; width:25%; height:40%; background:#1a1a3a; border:4px solid #3a3a5a; border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.8); overflow:hidden; }
.scn-leonine-relief .sr-drape  { position:absolute; top:5%; left:55%; width:35%; height:50%; background: linear-gradient(180deg, #4a2a3a 0%, #2a1a2a 100%); border-radius:0 0 10px 10px; animation:sr-drape 12s ease-in-out infinite alternate; }
.scn-leonine-relief .sr-moon   { position:absolute; top:18%; left:68%; width:40px; height:40px; background: radial-gradient(circle, #e4e4f0 0%, #a0a0c0 100%); border-radius:50%; filter:blur(4px); opacity:0.8; animation:sr-moon 8s ease-in-out infinite alternate; }
.scn-leonine-relief .sr-figure { position:absolute; bottom:35%; left:28%; width:24px; height:50px; background: linear-gradient(180deg, #0e0e1a 0%, #05050a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:sr-fig 6s ease-in-out infinite; }
.scn-leonine-relief .sr-table  { position:absolute; bottom:25%; left:18%; width:35%; height:18%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius:6px; box-shadow:0 4px 8px rgba(0,0,0,.6); }
.scn-leonine-relief .sr-candle { position:absolute; bottom:40%; left:25%; width:4px; height:12px; background: linear-gradient(180deg, #e8d4b0 0%, #b09070 100%); border-radius:2px; }
.scn-leonine-relief .sr-glow   { position:absolute; bottom:35%; left:18%; width:15%; height:25%; background: radial-gradient(circle, rgba(200,160,80,0.4) 0%, transparent 100%); animation:sr-glow 4s ease-in-out infinite alternate; }
@keyframes sr-moon  { 0% { opacity:0.6; transform:translateX(0); } 50% { opacity:0.9; transform:translateX(10px); } 100% { opacity:0.5; transform:translateX(-5px); } }
@keyframes sr-fig   { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-4px) rotate(2deg); } 100% { transform:translateY(2px) rotate(-1deg); } }
@keyframes sr-glow  { 0% { opacity:0.5; transform:scale(1); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.6; transform:scale(0.9); } }
@keyframes sr-drape { 0% { transform:scaleY(1) translateX(0); } 50% { transform:scaleY(1.05) translateX(4px); } 100% { transform:scaleY(0.95) translateX(-3px); } }

/* ── Scene: brothel-bawds-plan (tense, dim-interior) ── */
.scn-brothel-bawds-plan {
  background:
    linear-gradient(135deg, #1a0a05 0%, #2d1410 50%, #1a0a05 100%),
    radial-gradient(ellipse at 20% 80%, #4a2018 0%, transparent 100%);
}
.scn-brothel-bawds-plan .bb-wall   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1410 0%, #1a0a05 100%); }
.scn-brothel-bawds-plan .bb-floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a0a05 0%, #0d0502 100%); }
.scn-brothel-bawds-plan .bb-table  { position:absolute; bottom:20%; left:15%; width:70%; height:15%; background: linear-gradient(180deg, #3a1a12 0%, #24100a 100%); border-radius:8px; box-shadow:inset 0 4px 8px rgba(0,0,0,.6); }
.scn-brothel-bawds-plan .bb-pandar{ position:absolute; bottom:28%; left:20%; width:30px; height:45px; background: linear-gradient(180deg, #0a0505 0%, #050202 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bb-fig 3s ease-in-out infinite; }
.scn-brothel-bawds-plan .bb-bawd  { position:absolute; bottom:32%; left:42%; width:28px; height:48px; background: linear-gradient(180deg, #120a08 0%, #080403 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bb-fig 3.5s ease-in-out infinite -0.5s; }
.scn-brothel-bawds-plan .bb-boult { position:absolute; bottom:30%; left:62%; width:26px; height:42px; background: linear-gradient(180deg, #0e0806 0%, #060302 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bb-fig 4s ease-in-out infinite -1s; }
.scn-brothel-bawds-plan .bb-candle{ position:absolute; bottom:35%; left:46%; width:6px; height:14px; background: linear-gradient(180deg, #e0c8a0 0%, #a08060 100%); border-radius:2px; transform:translateX(-50%); animation:bb-flicker 2s ease-in-out infinite alternate; }
.scn-brothel-bawds-plan .bb-glow  { position:absolute; bottom:30%; left:35%; width:30%; height:35%; background: radial-gradient(circle, rgba(200,120,40,0.5) 0%, transparent 100%); animation:bb-glow 2s ease-in-out infinite alternate; }
.scn-brothel-bawds-plan .bb-shadow{ position:absolute; bottom:15%; left:15%; width:70%; height:15%; background:#000; filter:blur(10px); opacity:0.5; animation:bb-shad 4s ease-in-out infinite alternate; }
@keyframes bb-fig    { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-6px) rotate(3deg); } 100% { transform:translateY(3px) rotate(-1deg); } }
@keyframes bb-glow   { 0% { opacity:0.5; transform:scale(0.8); } 50% { opacity:1; transform:scale(1.15); } 100% { opacity:0.4; transform:scale(0.7); } }
@keyframes bb-shad   { 0% { transform:scaleX(1) scaleY(1); opacity:0.3; } 50% { transform:scaleX(1.1) scaleY(1.2); opacity:0.6; } 100% { transform:scaleX(0.9) scaleY(0.8); opacity:0.2; } }
@keyframes bb-flicker{ 0% { opacity:0.8; transform:scaleY(1) translateX(-50%); } 50% { opacity:1; transform:scaleY(1.1) translateX(-50%); } 100% { opacity:0.7; transform:scaleY(0.9) translateX(-50%); } }

/* ── Scene: pandar-fresh-ones (tense, dim-interior) ── */
.scn-pandar-fresh-ones {
  background:
    linear-gradient(180deg, #12100e 0%, #24201c 50%, #12100e 100%),
    radial-gradient(ellipse at 80% 50%, #4a3a2a 0%, transparent 100%);
}
.scn-pandar-fresh-ones .pf-wall  { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1c1814 0%, #12100e 100%); }
.scn-pandar-fresh-ones .pf-desk  { position:absolute; bottom:25%; left:15%; width:70%; height:20%; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); border-radius:4px; transform:perspective(200px) rotateX(10deg); }
.scn-pandar-fresh-ones .pf-pandar{ position:absolute; bottom:30%; left:20%; width:32px; height:46px; background: linear-gradient(180deg, #0a0806 0%, #040302 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pf-fig 3.2s ease-in-out infinite; }
.scn-pandar-fresh-ones .pf-bawd  { position:absolute; bottom:34%; left:45%; width:28px; height:50px; background: linear-gradient(180deg, #120e0a 0%, #080604 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pf-fig 3.7s ease-in-out infinite -0.8s; }
.scn-pandar-fresh-ones .pf-boult { position:absolute; bottom:32%; left:65%; width:26px; height:44px; background: linear-gradient(180deg, #0e0a08 0%, #060402 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pf-fig 4.1s ease-in-out infinite -1.5s; }
.scn-pandar-fresh-ones .pf-lamp  { position:absolute; top:15%; left:70%; width:20px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #2a221c 100%); border-radius:50% 50% 20% 20%; box-shadow:inset 0 -4px 6px rgba(0,0,0,.6); animation:pf-swing 5s ease-in-out infinite alternate; }
.scn-pandar-fresh-ones .pf-light { position:absolute; top:25%; left:65%; width:10%; height:15%; background: radial-gradient(circle, rgba(200,160,80,0.5) 0%, transparent 100%); animation:pf-light 3s ease-in-out infinite alternate; }
.scn-pandar-fresh-ones .pf-coin  { position:absolute; bottom:32%; left:30%; width:8px; height:4px; background:#c8a84a; border-radius:50%; box-shadow:0 0 4px #c8a84a; animation:pf-coin 2s ease-in-out infinite; }
@keyframes pf-fig   { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-4px) rotate(3deg); } 100% { transform:translateY(3px) rotate(-2deg); } }
@keyframes pf-swing { 0% { transform:rotate(-10deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-8deg); } }
@keyframes pf-light { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.7; transform:scale(0.9); } }
@keyframes pf-coin  { 0% { opacity:0.5; transform:translateY(0) scale(1); } 50% { opacity:1; transform:translateY(-10px) scale(1.5); } 100% { opacity:0.5; transform:translateY(0) scale(1); } }

/* ── Scene: bawd-consent (tense, dim-interior) ── */
.scn-bawd-consent {
  background:
    linear-gradient(90deg, #0d0d0a 0%, #1a1410 50%, #0d0d0a 100%),
    radial-gradient(ellipse at 50% 50%, #2a201a 0%, transparent 100%);
}
.scn-bawd-consent .bc-wall   { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #14100c 0%, #0d0a08 100%); }
.scn-bawd-consent .bc-floor  { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #0d0a08 0%, #050302 100%); }
.scn-bawd-consent .bc-bed    { position:absolute; bottom:15%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #2a1c14 0%, #1a100c 100%); border-radius:20px 20px 10px 10px; box-shadow:inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-bawd-consent .bc-bawd   { position:absolute; bottom:35%; left:20%; width:30px; height:50px; background: linear-gradient(180deg, #120a08 0%, #080403 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bc-fig 3.5s ease-in-out infinite; }
.scn-bawd-consent .bc-boult  { position:absolute; bottom:38%; left:45%; width:28px; height:46px; background: linear-gradient(180deg, #0e0806 0%, #060302 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bc-fig 4s ease-in-out infinite -0.7s; }
.scn-bawd-consent .bc-pandar { position:absolute; bottom:36%; left:65%; width:32px; height:48px; background: linear-gradient(180deg, #140c0a 0%, #0a0604 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bc-fig 3.8s ease-in-out infinite -1.2s; }
.scn-bawd-consent .bc-candle { position:absolute; bottom:40%; left:35%; width:6px; height:12px; background: linear-gradient(180deg, #d4b08a 0%, #a08060 100%); border-radius:2px; animation:bc-flicker 3s ease-in-out infinite alternate; }
.scn-bawd-consent .bc-glow   { position:absolute; bottom:35%; left:25%; width:20%; height:30%; background: radial-gradient(circle, rgba(180,120,60,0.4) 0%, transparent 100%); animation:bc-glow 2.5s ease-in-out infinite alternate; }
.scn-bawd-consent .bc-shadow { position:absolute; bottom:10%; left:10%; width:80%; height:15%; background:#000; filter:blur(12px); opacity:0.4; animation:bc-shad 5s ease-in-out infinite alternate; }
@keyframes bc-fig    { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-6px) rotate(2deg); } 100% { transform:translateY(2px) rotate(-1deg); } }
@keyframes bc-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 bc-shad   { 0% { transform:scaleX(1) scaleY(1); opacity:0.3; } 50% { transform:scaleX(1.2) scaleY(1.1); opacity:0.5; } 100% { transform:scaleX(0.9) scaleY(0.95); opacity:0.2; } }
@keyframes bc-flicker{ 0% { opacity:0.7; transform:scaleY(1) translateX(0); } 50% { opacity:1; transform:scaleY(1.15) translateX(1px); } 100% { opacity:0.6; transform:scaleY(0.9) translateX(-1px); } }

.scn-item-chest-caulk {
  background: linear-gradient(180deg, #f9d9b0 0%, #e8b88a 30%, #b38a6e 60%, #5a3e2a 100%),
              radial-gradient(ellipse at 30% 50%, #f9d9b0 0%, transparent 70%);
}
.scn-item-chest-caulk .sky {
  position: absolute;
  inset: 0 0 60% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #d4af7a 60%, transparent);
  animation: icc-sky 12s ease-in-out infinite alternate;
}
.scn-item-chest-caulk .sea {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #7a9ea8 0%, #4a6a70 50%, #2a3a3a 100%);
  border-radius: 60% 40% 0 0 / 50% 60% 0 0;
  animation: icc-sea 15s ease-in-out infinite alternate;
}
.scn-item-chest-caulk .sand {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #c8a87a 0%, #8a6a4a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-item-chest-caulk .chest {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 120px;
  height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: icc-chest 8s ease-in-out infinite alternate;
}
.scn-item-chest-caulk .caulk {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 130px;
  height: 6px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.8);
  animation: icc-caulk 5s ease-in-out infinite;
}
.scn-item-chest-caulk .figure {
  position: absolute;
  bottom: 24%;
  left: 38%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: icc-figure 6s ease-in-out infinite;
}
.scn-item-chest-caulk .mist {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 200px;
  height: 40px;
  background: linear-gradient(180deg, rgba(255,240,220,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: icc-mist 20s linear infinite alternate;
}
.scn-item-chest-caulk .light-ray {
  position: absolute;
  top: 10%;
  left: 30%;
  width: 60px;
  height: 200px;
  background: linear-gradient(180deg, rgba(255,200,100,0.3) 0%, transparent 80%);
  transform: rotate(15deg);
  filter: blur(8px);
  animation: icc-ray 6s ease-in-out infinite alternate;
}
@keyframes icc-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes icc-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes icc-chest {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-0.5deg); }
}
@keyframes icc-caulk {
  0% { opacity: 0.8; transform: translateX(-50%) scaleX(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleX(1.05); }
  100% { opacity: 0.7; transform: translateX(-50%) scaleX(0.95); }
}
@keyframes icc-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(24px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes icc-mist {
  0% { transform: translateX(-20px); opacity: 0.3; }
  50% { transform: translateX(20px); opacity: 0.5; }
  100% { transform: translateX(-10px); opacity: 0.2; }
}
@keyframes icc-ray {
  0% { opacity: 0.2; transform: rotate(15deg) scaleY(1); }
  100% { opacity: 0.6; transform: rotate(20deg) scaleY(1.3); }
}

.scn-chest-reveals-queen {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #4a3a2a 80%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 30%, #6a4a3a 0%, transparent 70%);
}
.scn-chest-reveals-queen .chest-interior {
  position: absolute;
  top: 20%;
  left: 50%;
  width: 180px;
  height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8), 0 10px 30px rgba(0,0,0,0.7);
}
.scn-chest-reveals-queen .shroud {
  position: absolute;
  top: 25%;
  left: 50%;
  width: 140px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 60%, #4a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: crq-shroud 4s ease-in-out infinite alternate;
}
.scn-chest-reveals-queen .queen-silhouette {
  position: absolute;
  top: 26%;
  left: 50%;
  width: 60px;
  height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.9);
  animation: crq-queen 6s ease-in-out infinite;
}
.scn-chest-reveals-queen .spices {
  position: absolute;
  top: 35%;
  left: 42%;
  width: 80px;
  height: 30px;
  background: radial-gradient(circle, #8a6a2a 0%, transparent 70%),
              radial-gradient(circle, #6a4a1a 0%, transparent 60%);
  filter: blur(4px);
  animation: crq-spices 3s ease-in-out infinite alternate;
}
.scn-chest-reveals-queen .scroll {
  position: absolute;
  top: 20%;
  left: 55%;
  width: 10px;
  height: 30px;
  background: linear-gradient(180deg, #c8a87a 0%, #8a6a4a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(15deg);
  animation: crq-scroll 5s ease-in-out infinite alternate;
}
.scn-chest-reveals-queen .beam {
  position: absolute;
  top: 5%;
  left: 30%;
  width: 100px;
  height: 250px;
  background: linear-gradient(180deg, rgba(255,200,100,0.3) 0%, transparent 80%);
  transform: rotate(10deg);
  filter: blur(10px);
  animation: crq-beam 2s ease-in-out infinite alternate;
}
.scn-chest-reveals-queen .shadow-vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,0.6) 100%);
  animation: crq-vignette 8s ease-in-out infinite alternate;
}
@keyframes crq-shroud {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); opacity: 0.8; }
  50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); opacity: 1; }
  100% { transform: translateX(-50%) translateY(0) rotate(2deg); opacity: 0.7; }
}
@keyframes crq-queen {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  33% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  66% { transform: translateX(-50%) translateY(1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes crq-spices {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.2; transform: scale(1); }
}
@keyframes crq-scroll {
  0% { transform: rotate(15deg) translateY(0); opacity: 0.6; }
  50% { transform: rotate(20deg) translateY(-4px); opacity: 1; }
  100% { transform: rotate(10deg) translateY(0); opacity: 0.5; }
}
@keyframes crq-beam {
  0% { opacity: 0.2; transform: rotate(10deg) scaleX(1); }
  50% { opacity: 0.6; transform: rotate(12deg) scaleX(1.2); }
  100% { opacity: 0.1; transform: rotate(8deg) scaleX(0.9); }
}
@keyframes crq-vignette {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}

.scn-cerimon-physic {
  background:
    linear-gradient(180deg, #f9e0b0 0%, #e8c080 30%, #b89060 70%, #5a3a2a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-cerimon-physic .dawn-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #f0c080 50%, #d09050 100%);
  animation: cp-dawn 15s ease-in-out infinite alternate;
}
.scn-cerimon-physic .window-frame {
  position: absolute; top: 8%; left: 20%; width: 40%; height: 50%;
  border: 6px solid #4a3020; border-radius: 4px;
  background: transparent;
  animation: cp-window 10s ease-in-out infinite;
}
.scn-cerimon-physic .desk {
  position: absolute; bottom: 18%; left: 15%; width: 55%; height: 12%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2a10 100%);
  border-radius: 2% 2% 6% 6% / 20% 20% 30% 30%;
}
.scn-cerimon-physic .figure {
  position: absolute; bottom: 22%; left: 32%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e06 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-figure 4s ease-in-out infinite;
}
.scn-cerimon-physic .candle {
  position: absolute; bottom: 25%; left: 60%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #f0c080 0%, #c08040 80%, #4a2a10 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-cerimon-physic .glow {
  position: absolute; bottom: 22%; left: 58%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffd090 0%, #f0a050 40%, transparent 70%);
  animation: cp-glow 2s ease-in-out infinite alternate;
}
.scn-cerimon-physic .shadow {
  position: absolute; bottom: 16%; left: 28%; width: 25%; height: 6%;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(6px);
  animation: cp-shadow 4s ease-in-out infinite;
}
@keyframes cp-dawn {
  0% { opacity: 0.7; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.8; filter: brightness(0.95); }
}
@keyframes cp-window {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.01); }
  100% { transform: scaleX(1); }
}
@keyframes cp-figure {
  0% { transform: translateY(0) rotate(-0.5deg); }
  25% { transform: translateY(-1px) rotate(0.5deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes cp-glow {
  0% { transform: scale(0.9); opacity: 0.7; box-shadow: 0 0 20px 5px #f0a050; }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 40px 12px #ffc070; }
  100% { transform: scale(0.95); opacity: 0.8; box-shadow: 0 0 25px 8px #f0a050; }
}
@keyframes cp-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.05); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

.scn-charity-praised {
  background:
    linear-gradient(180deg, #ffcc80 0%, #e8a050 30%, #c08040 60%, #6a3a1a 100%),
    radial-gradient(ellipse at 50% 100%, #ffe0a0 0%, transparent 70%);
}
.scn-charity-praised .bg-buildings {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a6040 0%, #5a3820 50%, #3a2010 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  animation: chp-bg 20s linear infinite alternate;
}
.scn-charity-praised .fountain-base {
  position: absolute; bottom: 30%; left: 38%; width: 24%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #7a5a3a 0%, #4a2a10 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  animation: chp-pulse 8s ease-in-out infinite;
}
.scn-charity-praised .water-arc {
  position: absolute; bottom: 42%; left: 46%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #b8e0e8 0%, #80b8d0 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: chp-water 3s ease-in-out infinite alternate;
}
.scn-charity-praised .figure-cerimon {
  position: absolute; bottom: 40%; left: 45%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1508 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chp-figure 6s ease-in-out infinite;
}
.scn-charity-praised .figure-small-1 {
  position: absolute; bottom: 38%; left: 30%; width: 5%; height: 12%;
  background: #5a3a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: chp-small1 4s ease-in-out infinite;
}
.scn-charity-praised .figure-small-2 {
  position: absolute; bottom: 38%; left: 60%; width: 5%; height: 12%;
  background: #5a3a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: chp-small2 5s ease-in-out infinite;
}
@keyframes chp-bg {
  0% { opacity: 0.6; filter: brightness(0.8); }
  50% { opacity: 0.8; filter: brightness(1); }
  100% { opacity: 0.7; filter: brightness(0.9); }
}
@keyframes chp-pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(1); }
}
@keyframes chp-water {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(0deg) scaleY(1.1); }
  100% { transform: rotate(5deg) scaleY(1); }
}
@keyframes chp-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes chp-small1 {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes chp-small2 {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

.scn-charity-praised { background: linear-gradient(180deg, #f9d29d 0%, #ffb56b 30%, #e6824f 70%, #8a4a2a 100%); }

.scn-charity-praised .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffcf9a 0%, #f5a56b 40%, transparent 100%);
  animation: chp-sky 20s ease-in-out infinite alternate;
}
.scn-charity-praised .sun {
  position: absolute; bottom: 38%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff3b0 0%, #ffb347 60%, #e07b2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255, 179, 71, 0.6);
  animation: chp-sunrise 30s ease-in-out infinite alternate;
}
.scn-charity-praised .buildings {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, #4a2e1a 0%, #3a2210 50%, #4a2e1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: chp-buildings 10s ease-in-out infinite;
}
.scn-charity-praised .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  animation: chp-ground 8s ease-in-out infinite alternate;
}
.scn-charity-praised .figure-a {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chp-bow 6s ease-in-out infinite;
}
.scn-charity-praised .figure-b {
  position: absolute; bottom: 22%; right: 40%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2210 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chp-kneel 6s ease-in-out infinite;
}
.scn-charity-praised .light-rays {
  position: absolute; bottom: 40%; left: 15%; width: 200px; height: 120px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255, 220, 150, 0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: chp-rays 4s ease-in-out infinite alternate;
}
.scn-charity-praised .purse {
  position: absolute; bottom: 26%; left: 48%; width: 18px; height: 14px;
  background: radial-gradient(circle, #c08040 0%, #8a6020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 16px 4px rgba(192,128,64,0.6);
  animation: chp-purse 2s ease-in-out infinite alternate;
}

@keyframes chp-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes chp-sunrise {
  0% { transform: translateY(10px) scale(0.95); box-shadow: 0 0 50px 20px rgba(255,179,71,0.4); }
  50% { transform: translateY(0) scale(1.05); box-shadow: 0 0 100px 40px rgba(255,179,71,0.7); }
  100% { transform: translateY(-8px) scale(1); box-shadow: 0 0 80px 30px rgba(255,179,71,0.6); }
}
@keyframes chp-buildings {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
}
@keyframes chp-ground {
  0% { background-position: 0% 0%; }
  100% { background-position: 10% 0%; }
}
@keyframes chp-bow {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(-3deg) translateX(-2px); }
  50% { transform: rotate(0deg) translateX(-4px); }
  75% { transform: rotate(3deg) translateX(-2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes chp-kneel {
  0% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-2px) scaleY(0.97); }
  50% { transform: translateY(0) scaleY(1); }
  75% { transform: translateY(-1px) scaleY(0.98); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes chp-rays {
  0% { opacity: 0.5; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.1); }
}
@keyframes chp-purse {
  0% { transform: translateY(0) rotate(-5deg); box-shadow: 0 0 12px 3px rgba(192,128,64,0.5); }
  100% { transform: translateY(-3px) rotate(5deg); box-shadow: 0 0 20px 6px rgba(255,200,100,0.8); }
}

.scn-cerimon-physic {
  background:
    linear-gradient(180deg, #d4a574 0%, #b0805a 40%, #6b4d3a 100%),
    radial-gradient(ellipse at 20% 30%, rgba(255,210,140,0.3) 0%, transparent 60%);
}
.scn-cerimon-physic .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8cfa0 0%, #c8a87a 100%);
  animation: cp-wall 18s ease-in-out infinite alternate;
}
.scn-cerimon-physic .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6b4d3a 0%, #3f2a1c 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.4);
}
.scn-cerimon-physic .window-frame {
  position: absolute; bottom: 35%; left: 10%; width: 120px; height: 150px;
  background: #5a3f2d;
  border: 6px solid #4a3221;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-cerimon-physic .window-glass {
  position: absolute; bottom: 38%; left: 13%; width: 106px; height: 130px;
  background: linear-gradient(135deg, #ffe8c0 0%, #ffd090 30%, #a0c0d0 100%);
  border-radius: 2px;
  animation: cp-glass 6s ease-in-out infinite alternate;
}
.scn-cerimon-physic .dawn-beam {
  position: absolute; bottom: 30%; left: 20%; width: 200px; height: 120px;
  background: linear-gradient(135deg, rgba(255,210,140,0.25) 0%, transparent 60%);
  transform: skewX(-15deg);
  filter: blur(8px);
  animation: cp-beam 20s ease-in-out infinite alternate;
}
.scn-cerimon-physic .curtain-left,
.scn-cerimon-physic .curtain-right {
  position: absolute; bottom: 35%; width: 30px; height: 155px;
  background: linear-gradient(180deg, #a06848 0%, #704830 100%);
  border-radius: 0 6px 6px 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
}
.scn-cerimon-physic .curtain-left { left: 6%; transform-origin: top left; animation: cp-curtain-l 10s ease-in-out infinite alternate; }
.scn-cerimon-physic .curtain-right { right: 78%; transform-origin: top right; animation: cp-curtain-r 10s ease-in-out infinite alternate; }
.scn-cerimon-physic .figure {
  position: absolute; bottom: 33%; left: 45%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a1f14 0%, #120c06 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: cp-figure 4s ease-in-out infinite;
}
.scn-cerimon-physic .chair {
  position: absolute; bottom: 31%; left: 40%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #804e30 0%, #5a3320 100%);
  border-radius: 10% 10% 20% 20% / 15% 15% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: cp-chair 6s ease-in-out infinite;
}
@keyframes cp-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes cp-glass {
  0% { opacity: 0.7; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1); }
  100% { opacity: 0.8; filter: brightness(0.95); }
}
@keyframes cp-beam {
  0% { transform: skewX(-15deg) translateX(0); opacity: 0.3; }
  50% { transform: skewX(-15deg) translateX(12px); opacity: 0.6; }
  100% { transform: skewX(-15deg) translateX(-8px); opacity: 0.4; }
}
@keyframes cp-curtain-l {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes cp-curtain-r {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes cp-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cp-chair {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}

.scn-item-chest-caulk {
  background: 
    linear-gradient(180deg, #f9d6a0 0%, #f7b977 30%, #d4834a 60%, #6b4c3a 100%),
    radial-gradient(circle at 70% 20%, #ffe494 0%, transparent 60%);
}
.scn-item-chest-caulk .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b4d4f0 0%, #e2c8a0 60%, transparent 100%);
}
.scn-item-chest-caulk .sea {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a6b8a 0%, #1e3d5e 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: cc-wave 6s ease-in-out infinite alternate;
}
.scn-item-chest-caulk .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #c9a96e 0%, #a4845a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
}
.scn-item-chest-caulk .cloud {
  position: absolute; top: 12%; left: -15%; width: 120px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,240,0.7) 0%, rgba(255,255,240,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: cc-cloud 40s linear infinite;
}
.scn-item-chest-caulk .chest {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 25%;
  background: linear-gradient(180deg, #5a3e2a 0%, #3e2a18 50%, #2a1e0e 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 12px 24px rgba(0,0,0,0.5), inset 0 2px 4px rgba(255,200,100,0.2);
  animation: cc-bob 4s ease-in-out infinite;
}
.scn-item-chest-caulk .lid {
  position: absolute; bottom: 32%; left: 30.5%; width: 39%; height: 8%;
  background: linear-gradient(180deg, #6b4a32 0%, #4a3220 100%);
  border-radius: 20% 20% 0 0 / 60% 60% 0 0;
  transform-origin: bottom center;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: cc-lid 8s ease-in-out infinite;
}
.scn-item-chest-caulk .lock {
  position: absolute; bottom: 30%; left: 48%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #c0a070 0%, #8a6a40 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-item-chest-caulk .gleam {
  position: absolute; bottom: 28%; left: 49%; width: 4%; height: 5%;
  background: radial-gradient(circle, #fff8e0 0%, transparent 70%);
  border-radius: 50%;
  animation: cc-gleam 3s ease-in-out infinite;
}
@keyframes cc-wave {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}
@keyframes cc-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(130vw); }
}
@keyframes cc-bob {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cc-lid {
  0% { transform: rotateX(0deg); }
  50% { transform: rotateX(-5deg); }
  100% { transform: rotateX(0deg); }
}
@keyframes cc-gleam {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.3; transform: scale(0.8); }
}

.scn-chest-reveals-queen {
  background: linear-gradient(180deg, #2a1548 0%, #5e2a44 40%, #c65a3a 70%, #f0b86a 100%), radial-gradient(ellipse at 70% 15%, #ffd088 0%, transparent 50%);
  perspective: 800px;
  overflow: hidden;
}
.scn-chest-reveals-queen::before {
  content: '';
  position: absolute;
  top: 5%;
  left: 60%;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, #ffe49e 0%, rgba(255,200,100,0.4) 50%, transparent 70%);
  border-radius: 50%;
  animation: crq-sun 6s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-chest-reveals-queen .sky {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, rgba(42,21,72,0.5) 0%, transparent 100%);
  animation: crq-sky 12s ease-in-out infinite alternate;
}
.scn-chest-reveals-queen .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2a1d1a 0%, #1a0f0a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-chest-reveals-queen .chest {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 140px;
  height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a452a 0%, #3d2418 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.7);
  border: 2px solid #b67a45;
}
.scn-chest-reveals-queen .lid {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 140px;
  height: 20px;
  transform: translateX(-50%) translateY(-80px);
  background: linear-gradient(180deg, #7a5038 0%, #4a2e1e 100%);
  border-radius: 4% 4% 0 0;
  transform-origin: bottom center;
  animation: crq-lid 8s ease-in-out infinite;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.4);
}
.scn-chest-reveals-queen .cloth {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 100px;
  height: 50px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0f0f 100%);
  border-radius: 10% 10% 40% 40%;
  opacity: 0.8;
  transform: skewX(-5deg);
  animation: crq-cloth 10s ease-in-out infinite;
  filter: blur(1px);
}
.scn-chest-reveals-queen .figure {
  position: absolute;
  bottom: 12%;
  left: 32%;
  width: 50px;
  height: 90px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crq-figure 4s ease-in-out infinite;
  box-shadow: 0 8px 15px rgba(0,0,0,0.5);
}
.scn-chest-reveals-queen .scroll {
  position: absolute;
  bottom: 32%;
  left: 48%;
  width: 30px;
  height: 18px;
  background: linear-gradient(90deg, #d6c8a0 0%, #b8a88a 50%, #d6c8a0 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-10deg);
  animation: crq-scroll 7s ease-in-out infinite;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-chest-reveals-queen .spice-a {
  position: absolute;
  bottom: 35%;
  left: 55%;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #eebb55 0%, #c9882a 60%);
  border-radius: 50%;
  animation: crq-spice 5s ease-in-out infinite;
  box-shadow: 0 0 4px #eebb55;
}
.scn-chest-reveals-queen .spice-b {
  position: absolute;
  bottom: 40%;
  left: 52%;
  width: 6px;
  height: 6px;
  background: radial-gradient(circle, #eeb044 0%, #c07a20 60%);
  border-radius: 50%;
  animation: crq-spice 5s ease-in-out infinite 2.5s;
  box-shadow: 0 0 3px #eeb044;
}
@keyframes crq-sun {
  0% { opacity:0.6; transform: scale(1); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.7; transform: scale(0.95); }
}
@keyframes crq-sky {
  0% { opacity:0.5; }
  50% { opacity:0.8; }
  100% { opacity:0.4; }
}
@keyframes crq-lid {
  0%, 100% { transform: translateX(-50%) translateY(-80px) rotateX(0deg); }
  25% { transform: translateX(-50%) translateY(-80px) rotateX(-70deg); }
  50% { transform: translateX(-50%) translateY(-80px) rotateX(-90deg); }
  75% { transform: translateX(-50%) translateY(-80px) rotateX(-70deg); }
}
@keyframes crq-cloth {
  0%, 100% { transform: skewX(-5deg) translateY(0); opacity:0.7; }
  50% { transform: skewX(-8deg) translateY(-3px); opacity:0.9; }
}
@keyframes crq-figure {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
}
@keyframes crq-scroll {
  0%, 100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-4px); }
}
@keyframes crq-spice {
  0%, 100% { transform: translate(0,0) rotate(0deg); opacity:0.5; }
  25% { transform: translate(8px,-6px) rotate(20deg); opacity:0.8; }
  50% { transform: translate(15px,-10px) rotate(45deg); opacity:1; }
  75% { transform: translate(8px,-6px) rotate(20deg); opacity:0.8; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.bright { position: absolute; pointer-events: none; }
.halberd { position: absolute; pointer-events: none; }
.jar { position: absolute; pointer-events: none; }
.particle { position: absolute; pointer-events: none; }
.raven { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
/* Scene: pericles-memory-of-daughter (sunlit warm) */
.scn-pericles-memory-of-daughter {
  background:
    linear-gradient(180deg, #f7e9c8 0%, #e2c9a6 30%, #c8a882 60%, #a5835a 100%),
    radial-gradient(ellipse at 50% 0%, #fff4d6 0%, transparent 60%);
}
.scn-pericles-memory-of-daughter .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b8d4e0 0%, #d6e8f0 60%, transparent);
  animation: pmd-sky 12s ease-in-out infinite alternate;
}
.scn-pericles-memory-of-daughter .bg-horizon {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 10%;
  background: linear-gradient(0deg, #a5835a 0%, #c8a882 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.2);
  animation: pmd-horizon 20s ease-in-out infinite alternate;
}
.scn-pericles-memory-of-daughter .figure-king {
  position: absolute; bottom: 28%; left: 25%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #5a3e2b 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pmd-king 6s ease-in-out infinite;
}
.scn-pericles-memory-of-daughter .figure-child {
  position: absolute; bottom: 30%; right: 30%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pmd-child 6s ease-in-out infinite;
}
.scn-pericles-memory-of-daughter .ray-left {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 8px;
  background: linear-gradient(90deg, rgba(255,235,180,0.6) 0%, transparent 100%);
  transform: rotate(-20deg);
  filter: blur(4px);
  animation: pmd-ray 8s ease-in-out infinite alternate;
}
.scn-pericles-memory-of-daughter .ray-right {
  position: absolute; top: 15%; right: 10%; width: 45%; height: 6px;
  background: linear-gradient(270deg, rgba(255,235,180,0.4) 0%, transparent 100%);
  transform: rotate(15deg);
  filter: blur(3px);
  animation: pmd-ray 10s ease-in-out infinite alternate-reverse;
}
.scn-pericles-memory-of-daughter .dust {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 20% 30%, rgba(255,215,150,0.2) 0%, transparent 50%),
              radial-gradient(circle at 70% 20%, rgba(255,215,150,0.15) 0%, transparent 50%);
  filter: blur(2px);
  animation: pmd-dust 15s ease-in-out infinite alternate;
}
@keyframes pmd-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pmd-horizon { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pmd-king { 0% { transform: translate(0,0) rotate(-2deg); } 25% { transform: translate(2px,-1px) rotate(1deg); } 50% { transform: translate(4px,0) rotate(-1deg); } 75% { transform: translate(2px,-1px) rotate(2deg); } 100% { transform: translate(0,0) rotate(-2deg); } }
@keyframes pmd-child { 0% { transform: translate(0,0) rotate(2deg); } 25% { transform: translate(-2px,-1px) rotate(-1deg); } 50% { transform: translate(-4px,0) rotate(2deg); } 75% { transform: translate(-2px,-1px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(2deg); } }
@keyframes pmd-ray { 0% { opacity: 0.3; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes pmd-dust { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

/* Scene: pericles-recognizes-daughter (sunlit warm, embrace) */
.scn-pericles-recognizes-daughter {
  background:
    linear-gradient(180deg, #faeacc 0%, #e6cfaa 40%, #cfb28c 70%, #b8946a 100%),
    radial-gradient(ellipse at 50% 70%, #fff2d6 0%, transparent 60%);
}
.scn-pericles-recognizes-daughter .bg-warm {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 50%, rgba(255,220,150,0.15) 0%, transparent 70%);
  animation: prd-bg 20s ease-in-out infinite alternate;
}
.scn-pericles-recognizes-daughter .figure-embrace {
  position: absolute; bottom: 25%; left: 38%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #6a4e36 0%, #4a3422 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: prd-embrace 5s ease-in-out infinite;
}
.scn-pericles-recognizes-daughter .figure-marina {
  position: absolute; bottom: 25%; right: 38%; width: 32px; height: 52px;
  background: linear-gradient(180deg, #7a5e3e 0%, #5a3e2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: prd-marina 5s ease-in-out infinite;
}
.scn-pericles-recognizes-daughter .halo {
  position: absolute; top: 18%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,230,160,0.4) 0%, transparent 70%);
  transform: translateX(-50%);
  filter: blur(6px);
  animation: prd-halo 4s ease-in-out infinite alternate;
}
.scn-pericles-recognizes-daughter .petal {
  position: absolute; width: 10px; height: 4px;
  background: linear-gradient(90deg, #e8b88a, #d4a070);
  border-radius: 50% 50% 0 0;
  animation: prd-petal 10s linear infinite;
}
.scn-pericles-recognizes-daughter .petal-1 { top: 30%; left: 20%; animation-delay: 0s; }
.scn-pericles-recognizes-daughter .petal-2 { top: 40%; right: 15%; animation-delay: 3s; transform: rotate(45deg); }
.scn-pericles-recognizes-daughter .petal-3 { top: 50%; left: 60%; animation-delay: 6s; transform: rotate(-30deg); }
@keyframes prd-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes prd-embrace { 0% { transform: translate(0,0) rotate(-3deg); } 25% { transform: translate(-2px,-1px) rotate(1deg); } 50% { transform: translate(-4px,0) rotate(-2deg); } 75% { transform: translate(-2px,-1px) rotate(3deg); } 100% { transform: translate(0,0) rotate(-3deg); } }
@keyframes prd-marina { 0% { transform: translate(0,0) rotate(3deg); } 25% { transform: translate(2px,-1px) rotate(-1deg); } 50% { transform: translate(4px,0) rotate(2deg); } 75% { transform: translate(2px,-1px) rotate(-3deg); } 100% { transform: translate(0,0) rotate(3deg); } }
@keyframes prd-halo { 0% { opacity: 0.3; transform: translateX(-50%) scale(0.8); } 50% { opacity: 0.7; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.4; transform: translateX(-50%) scale(0.9); } }
@keyframes prd-petal { 0% { transform: translateY(0) rotate(0deg); opacity: 0.8; } 50% { transform: translateY(-60px) rotate(15deg); opacity: 0.5; } 100% { transform: translateY(-120px) rotate(30deg); opacity: 0; } }

/* Scene: celestial-music (sunlit warm, heavenly) */
.scn-celestial-music {
  background:
    linear-gradient(180deg, #1c2a3a 0%, #2a3a4a 30%, #3a4a5a 60%, #4a5a6a 100%),
    radial-gradient(ellipse at 50% 20%, #f0e6c8 0%, transparent 70%);
}
.scn-celestial-music .bg-night {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 10%, rgba(240,230,200,0.1) 0%, transparent 70%);
  animation: cmu-bg 15s ease-in-out infinite alternate;
}
.scn-celestial-music .figure-king {
  position: absolute; bottom: 30%; left: 20%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: cmu-king 8s ease-in-out infinite;
}
.scn-celestial-music .figure-marina {
  position: absolute; bottom: 32%; right: 22%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: cmu-marina 8s ease-in-out infinite;
}
.scn-celestial-music .music-note {
  position: absolute; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 60%, #f0d080 0%, #c0a060 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  filter: blur(1px);
  animation: cmu-note 6s ease-in-out infinite;
}
.scn-celestial-music .note-1 { top: 15%; left: 30%; animation-delay: 0s; }
.scn-celestial-music .note-2 { top: 25%; left: 50%; animation-delay: 2s; }
.scn-celestial-music .note-3 { top: 20%; right: 30%; animation-delay: 4s; }
.scn-celestial-music .light-ray {
  position: absolute; top: 5%; left: 50%; width: 6px; height: 40%;
  background: linear-gradient(180deg, rgba(255,230,160,0.6) 0%, transparent 100%);
  transform: translateX(-50%) rotate(-5deg);
  filter: blur(8px);
  animation: cmu-ray 10s ease-in-out infinite alternate;
}
@keyframes cmu-bg { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes cmu-king { 0% { transform: translate(0,0) rotate(-1deg); } 50% { transform: translate(3px,-2px) rotate(2deg); } 100% { transform: translate(0,0) rotate(-1deg); } }
@keyframes cmu-marina { 0% { transform: translate(0,0) rotate(2deg); } 50% { transform: translate(-3px,-2px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(2deg); } }
@keyframes cmu-note { 0% { transform: translateY(0) rotate(0deg); opacity: 0.8; } 50% { transform: translateY(-30px) rotate(15deg); opacity: 0.4; } 100% { transform: translateY(-60px) rotate(30deg); opacity: 0; } }
@keyframes cmu-ray { 0% { opacity: 0.2; transform: translateX(-50%) rotate(-5deg) scaleY(0.8); } 50% { opacity: 0.7; transform: translateX(-50%) rotate(0deg) scaleY(1); } 100% { opacity: 0.3; transform: translateX(-50%) rotate(5deg) scaleY(0.9); } }

/* Scene: diana-vision (dim interior warm, candlelight) */
.scn-diana-vision {
  background:
    linear-gradient(180deg, #1a1816 0%, #2a2420 30%, #3a302a 60%, #2a2420 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a30 0%, transparent 70%);
}
.scn-diana-vision .bg-temple {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 70%, rgba(200,160,120,0.15) 0%, transparent 60%);
  animation: dvi-bg 18s ease-in-out infinite alternate;
}
.scn-diana-vision .pillar {
  position: absolute; bottom: 20%; width: 16px; height: 55%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  border-radius: 4px;
  animation: dvi-pillar 12s ease-in-out infinite alternate;
}
.scn-diana-vision .pillar-left { left: 10%; }
.scn-diana-vision .pillar-right { right: 10%; }
.scn-diana-vision .figure-goddess {
  position: absolute; bottom: 25%; left: 50%; width: 36px; height: 60px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: dvi-goddess 8s ease-in-out infinite;
}
.scn-diana-vision .altar {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 14px;
  background: linear-gradient(0deg, #5a3a2a 0%, #7a5a3a 100%);
  transform: translateX(-50%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: dvi-altar 15s ease-in-out infinite alternate;
}
.scn-diana-vision .flame {
  position: absolute; bottom: 34%; left: 48%; width: 8px; height: 20px;
  background: radial-gradient(ellipse at 50% 20%, #ffc080 0%, #e08040 50%, transparent);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
  animation: dvi-flame 2s ease-in-out infinite alternate;
}
.scn-diana-vision .flame-1 { left: 47%; animation-delay: 0s; }
.scn-diana-vision .flame-2 { left: 53%; animation-delay: 0.5s; }
@keyframes dvi-bg { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes dvi-pillar { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dvi-goddess { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes dvi-altar { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes dvi-flame { 0% { transform: scaleY(1) rotate(-2deg); opacity: 0.6; } 50% { transform: scaleY(1.2) rotate(2deg); opacity: 1; } 100% { transform: scaleY(0.9) rotate(-1deg); opacity: 0.7; } }

.scn-pandar-bargain {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 30%, #3a2a20 70%, #1a1410 100%),
              radial-gradient(ellipse at 50% 80%, #4a3525 0%, transparent 70%);
}
.scn-pandar-bargain .floor  { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #2a1e18 0%, #3a2a20 100%); }
.scn-pandar-bargain .wall   { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1410 0%, #2a1e18 80%); }
.scn-pandar-bargain .table  { position:absolute; bottom:20%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #4a3525 0%, #2a1e18 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-pandar-bargain .candle { position:absolute; bottom:30%; left:48%; width:4px; height:18px; background: #c8a070; border-radius:2px; box-shadow: 0 0 20px 6px #f0a060, 0 0 40px 12px rgba(240,160,96,.4); animation: pb-candle 5s ease-in-out infinite alternate; }
.scn-pandar-bargain .pandar { position:absolute; bottom:20%; left:20%; width:24px; height:60px; background: linear-gradient(180deg, #4a3525 0%, #2a1e18 50%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pb-figure 6s ease-in-out infinite; }
.scn-pandar-bargain .coins  { position:absolute; bottom:25%; left:44%; width:12px; height:4px; background: #c8a070; border-radius:50%; box-shadow: 0 0 8px 2px #c8a070; animation: pb-coins 4s ease-in-out infinite; }
.scn-pandar-bargain .door   { position:absolute; bottom:20%; right:10%; width:20%; height:80%; background: linear-gradient(90deg, #2a1e18 0%, #1a1410 100%); border-radius:4px 0 0 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: pb-door 12s ease-in-out infinite alternate; }
@keyframes pb-candle  { 0% { transform: scaleY(1); opacity:.8; box-shadow: 0 0 20px 6px #f0a060, 0 0 40px 12px rgba(240,160,96,.3); } 50% { transform: scaleY(1.05); opacity:1; box-shadow: 0 0 30px 10px #f0a060, 0 0 60px 20px rgba(240,160,96,.5); } 100% { transform: scaleY(.95); opacity:.7; box-shadow: 0 0 15px 4px #f0a060, 0 0 30px 8px rgba(240,160,96,.2); } }
@keyframes pb-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-6px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes pb-coins  { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(-2px) scale(1.1); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:.6; } }
@keyframes pb-door   { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }

.scn-bawd-order-marks {
  background: linear-gradient(180deg, #1e1816 0%, #2a201c 30%, #3a2c26 70%, #1e1816 100%),
              radial-gradient(ellipse at 40% 50%, #4a3828 0%, transparent 80%);
}
.scn-bawd-order-marks .floor    { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(0deg, #2a201c 0%, #3a2c26 100%); }
.scn-bawd-order-marks .wall     { position:absolute; inset:0 0 18% 0; background: linear-gradient(180deg, #1e1816 0%, #2a201c 80%); }
.scn-bawd-order-marks .ledger   { position:absolute; bottom:25%; left:55%; width:40px; height:30px; background: linear-gradient(135deg, #5a4a3a 0%, #3a2c26 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: rotate(-10deg); animation: bom-ledger 8s ease-in-out infinite alternate; }
.scn-bawd-order-marks .chair    { position:absolute; bottom:20%; left:40%; width:30px; height:45px; background: linear-gradient(180deg, #4a3828 0%, #2a201c 100%); border-radius:4px 4px 2px 2px; }
.scn-bawd-order-marks .bawd     { position:absolute; bottom:20%; left:30%; width:22px; height:58px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2c26 50%, #1e1816 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bom-bawd 7s ease-in-out infinite; }
.scn-bawd-order-marks .boult    { position:absolute; bottom:20%; left:55%; width:20px; height:56px; background: linear-gradient(180deg, #4a3828 0%, #2a201c 50%, #1e1816 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bom-boult 7s ease-in-out infinite alternate; }
.scn-bawd-order-marks .window   { position:absolute; top:20%; left:10%; width:50px; height:60px; background: linear-gradient(180deg, rgba(100,80,60,.3) 0%, rgba(60,40,20,.5) 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: bom-window 15s ease-in-out infinite alternate; }
@keyframes bom-ledger { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes bom-bawd   { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes bom-boult  { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes bom-window { 0% { opacity:.5; box-shadow: inset 0 0 20px rgba(0,0,0,.3); } 50% { opacity:.8; box-shadow: inset 0 0 30px rgba(0,0,0,.6); } 100% { opacity:.5; box-shadow: inset 0 0 20px rgba(0,0,0,.3); } }

.scn-marina-laments {
  background: linear-gradient(180deg, #0a0c14 0%, #141a24 40%, #202838 70%, #0a0c14 100%),
              radial-gradient(ellipse at 30% 60%, #2a3450 0%, transparent 70%);
}
.scn-marina-laments .floor   { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(0deg, #141a24 0%, #202838 100%); }
.scn-marina-laments .wall    { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #0a0c14 0%, #141a24 80%); }
.scn-marina-laments .chains  { position:absolute; bottom:35%; left:50%; width:2px; height:30px; background: #4a4a5a; box-shadow: 0 4px 6px rgba(0,0,0,.5); animation: ml-chains 4s ease-in-out infinite alternate; }
.scn-marina-laments .marina  { position:absolute; bottom:20%; left:35%; width:20px; height:52px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ml-figure 6s ease-in-out infinite; }
.scn-marina-laments .pirate  { position:absolute; bottom:20%; right:20%; width:24px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ml-pirate 8s ease-in-out infinite; }
.scn-marina-laments .tears   { position:absolute; bottom:38%; left:38%; width:2px; height:6px; background: #404870; border-radius:50%; box-shadow: 0 0 4px 2px #404870; animation: ml-tears 3s ease-in-out infinite; }
.scn-marina-laments .shadow  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%); animation: ml-shadow 10s ease-in-out infinite alternate; }
@keyframes ml-chains { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ml-figure { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(2px) translateY(-3px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ml-pirate { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-4px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ml-tears  { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(8px) scale(.8); opacity:0; } 100% { transform: translateY(0) scale(1); opacity:.6; } }
@keyframes ml-shadow { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.6; } }

.scn-marina-scape {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 30%, #3a2a1a 70%, #1a1410 100%),
              radial-gradient(ellipse at 60% 50%, #4a3525 0%, transparent 80%);
}
.scn-marina-scape .floor   { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #2a2018 0%, #3a2a1a 100%); }
.scn-marina-scape .wall    { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1410 0%, #2a2018 80%); }
.scn-marina-scape .keeper  { position:absolute; bottom:20%; left:60%; width:24px; height:56px; background: linear-gradient(180deg, #4a3525 0%, #2a1e18 50%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-keeper 5s ease-in-out infinite; }
.scn-marina-scape .marina  { position:absolute; bottom:20%; left:30%; width:20px; height:52px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 50%, #0a0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-marina 3s ease-in-out infinite; }
.scn-marina-scape .hands   { position:absolute; bottom:40%; left:32%; width:8px; height:12px; background: #3a2a1a; border-radius:50%; box-shadow: 0 0 6px 2px rgba(0,0,0,.5); animation: ms-hands 2s ease-in-out infinite; }
.scn-marina-scape .door    { position:absolute; bottom:20%; left:10%; width:28%; height:80%; background: linear-gradient(90deg, #2a2018 0%, #1a1410 100%); border-radius:4px; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: ms-door 10s ease-in-out infinite alternate; }
.scn-marina-scape .lamp    { position:absolute; top:15%; left:55%; width:8px; height:12px; background: #c8a070; border-radius:2px; box-shadow: 0 0 20px 8px #f0a060, 0 0 40px 16px rgba(240,160,96,.4); animation: ms-lamp 4s ease-in-out infinite alternate; }
@keyframes ms-keeper { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-6px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes ms-marina { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-2px) translateY(-2px) rotate(-3deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ms-hands  { 0% { transform: translateY(0) scale(1); opacity:.8; } 50% { transform: translateY(-3px) scale(1.2); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:.8; } }
@keyframes ms-door   { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(0); } }
@keyframes ms-lamp   { 0% { transform: scaleY(1); opacity:.8; box-shadow: 0 0 20px 8px #f0a060, 0 0 40px 16px rgba(240,160,96,.3); } 50% { transform: scaleY(1.05); opacity:1; box-shadow: 0 0 30px 12px #f0a060, 0 0 60px 24px rgba(240,160,96,.5); } 100% { transform: scaleY(.95); opacity:.7; box-shadow: 0 0 15px 6px #f0a060, 0 0 30px 10px rgba(240,160,96,.2); } }

.scn-lysistratus-approves {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #3d2b22 40%, #1e1410 100%),
    radial-gradient(ellipse at 30% 50%, #4a3528 0%, transparent 70%);
}
.scn-lysistratus-approves .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a1f1a 0%, #3d2b22 100%); animation: la-wall 12s ease-in-out infinite alternate; }
.scn-lysistratus-approves .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1e1410 0%, #0f0a08 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-lysistratus-approves .window { position:absolute; top:12%; left:60%; width:60px; height:80px; border-radius:4px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%); box-shadow: inset 0 0 20px #000; animation: la-window 18s ease-in-out infinite; }
.scn-lysistratus-approves .lamp { position:absolute; top:20%; left:25%; width:20px; height:30px; background: radial-gradient(circle at 50% 70%, #c08040 0%, #7a4a20 60%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(192,128,64,.5), 0 0 60px 20px rgba(192,128,64,.2); animation: la-lamp 4s ease-in-out infinite alternate; }
.scn-lysistratus-approves .figure-lysistratus { position:absolute; bottom:25%; left:35%; width:24px; height:50px; background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: la-figure 6s ease-in-out infinite; }
.scn-lysistratus-approves .table { position:absolute; bottom:20%; left:45%; width:70px; height:14px; background: linear-gradient(180deg, #4a3528 0%, #2a1f1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-lysistratus-approves .scroll { position:absolute; bottom:28%; left:48%; width:12px; height:18px; background: #6a5a3a; border-radius: 2px; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: la-scroll 8s ease-in-out infinite alternate; }

@keyframes la-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes la-window { 0%,100% { background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%) } 50% { background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%) } }
@keyframes la-lamp { 0% { opacity:.8; box-shadow: 0 0 20px 8px rgba(192,128,64,.4) } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(192,128,64,.7) } 100% { opacity:.9; box-shadow: 0 0 25px 10px rgba(192,128,64,.5) } }
@keyframes la-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(8px) rotate(-2deg) } 60% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes la-scroll { 0% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }

.scn-marina-bound {
  background: 
    linear-gradient(180deg, #1a1412 0%, #2a1f1a 50%, #0d0a08 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a20 0%, transparent 70%);
}
.scn-marina-bound .bg-dark { position:absolute; inset:0; background: linear-gradient(90deg, #0d0a08 0%, #1a1412 100%); }
.scn-marina-bound .pillar-left { position:absolute; bottom:0; left:10%; width:20px; height:60%; background: linear-gradient(180deg, #3a2a20 0%, #1a1412 100%); border-radius: 6px; box-shadow: 0 0 20px rgba(0,0,0,.5); }
.scn-marina-bound .pillar-right { position:absolute; bottom:0; right:10%; width:20px; height:60%; background: linear-gradient(180deg, #3a2a20 0%, #1a1412 100%); border-radius: 6px; }
.scn-marina-bound .chain-left { position:absolute; bottom:40%; left:12%; width:4px; height:40px; background: #5a4a3a; border-radius: 2px; transform: rotate(15deg); animation: mb-chain 3s ease-in-out infinite alternate; }
.scn-marina-bound .chain-right { position:absolute; bottom:40%; right:12%; width:4px; height:40px; background: #5a4a3a; border-radius: 2px; transform: rotate(-15deg); animation: mb-chain 3s ease-in-out infinite alternate-reverse; }
.scn-marina-bound .figure-marina { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:20px; height:44px; background: linear-gradient(180deg, #2a1f1a 0%, #1a1412 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mb-marina 5s ease-in-out infinite; }
.scn-marina-bound .brazier { position:absolute; bottom:15%; left:45%; width:16px; height:24px; background: radial-gradient(circle at 50% 20%, #c08040 0%, #7a4a20 60%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 12px rgba(192,128,64,.5); animation: mb-brazier 4s ease-in-out infinite alternate; }
.scn-marina-bound .guard { position:absolute; bottom:20%; right:20%; width:22px; height:48px; background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-guard 8s ease-in-out infinite; }

@keyframes mb-chain { 0% { transform: rotate(15deg) translateY(0) } 100% { transform: rotate(15deg) translateY(4px) } }
@keyframes mb-marina { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes mb-brazier { 0% { opacity:.7; box-shadow: 0 0 20px 8px rgba(192,128,64,.3) } 100% { opacity:1; box-shadow: 0 0 50px 18px rgba(192,128,64,.7) } }
@keyframes mb-guard { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }

.scn-boult-pacing {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #1a1412 50%, #0d0a08 100%),
    radial-gradient(ellipse at 50% 30%, #3d2b22 0%, transparent 80%);
}
.scn-boult-pacing .bg-corridor { position:absolute; inset:0; background: linear-gradient(90deg, #1a1412 0%, #2a1f1a 100%); }
.scn-boult-pacing .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #0d0a08 0%, #1a1412 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-boult-pacing .torch-left { position:absolute; top:15%; left:10%; width:10px; height:20px; background: radial-gradient(circle at 50% 0%, #c08040 0%, #7a4a20 80%, transparent 100%); border-radius: 10px 10px 0 0; box-shadow: 0 0 30px 10px rgba(192,128,64,.4); animation: bp-torch 3s ease-in-out infinite alternate; }
.scn-boult-pacing .torch-right { position:absolute; top:15%; right:10%; width:10px; height:20px; background: radial-gradient(circle at 50% 0%, #c08040 0%, #7a4a20 80%, transparent 100%); border-radius: 10px 10px 0 0; box-shadow: 0 0 30px 10px rgba(192,128,64,.4); animation: bp-torch 3s ease-in-out infinite alternate-reverse; }
.scn-boult-pacing .figure-boult { position:absolute; bottom:20%; left:30%; width:20px; height:46px; background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bp-pace 6s ease-in-out infinite; }
.scn-boult-pacing .door-left { position:absolute; bottom:10%; left:2%; width:50px; height:70px; background: linear-gradient(180deg, #3a2a20 0%, #2a1f1a 100%); border-radius: 4px; border: 2px solid #4a3528; box-shadow: -6px 0 20px rgba(0,0,0,.7); }
.scn-boult-pacing .door-right { position:absolute; bottom:10%; right:2%; width:50px; height:70px; background: linear-gradient(180deg, #3a2a20 0%, #2a1f1a 100%); border-radius: 4px; border: 2px solid #4a3528; box-shadow: 6px 0 20px rgba(0,0,0,.7); }

@keyframes bp-torch { 0% { opacity:.6; box-shadow: 0 0 15px 5px rgba(192,128,64,.2) } 100% { opacity:1; box-shadow: 0 0 40px 15px rgba(192,128,64,.6) } }
@keyframes bp-pace { 0% { transform: translateX(0) } 25% { transform: translateX(40px) } 50% { transform: translateX(80px) } 75% { transform: translateX(40px) } 100% { transform: translateX(0) } }

.scn-marina-not-offend {
  background: 
    linear-gradient(180deg, #1a1412 0%, #2a1f1a 40%, #0d0a08 100%),
    radial-gradient(ellipse at 50% 60%, #3d2b22 0%, transparent 70%);
}
.scn-marina-not-offend .bg-room { position:absolute; inset:0; background: linear-gradient(90deg, #0d0a08 0%, #1a1412 100%); }
.scn-marina-not-offend .table-round { position:absolute; bottom:18%; left:50%; transform:translateX(-50%); width:80px; height:16px; background: linear-gradient(180deg, #4a3528 0%, #2a1f1a 100%); border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.6); }
.scn-marina-not-offend .candle { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:6px; height:20px; background: linear-gradient(180deg, #c08040 0%, #7a4a20 100%); border-radius: 3px; box-shadow: 0 0 40px 12px rgba(192,128,64,.6); animation: mn-candle 4s ease-in-out infinite alternate; }
.scn-marina-not-offend .figure-marina { position:absolute; bottom:18%; left:35%; width:20px; height:44px; background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mn-marina 7s ease-in-out infinite; }
.scn-marina-not-offend .figure-client { position:absolute; bottom:18%; right:35%; width:24px; height:48px; background: linear-gradient(180deg, #2a1f1a 0%, #1a1412 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mn-client 7s ease-in-out infinite reverse; }
.scn-marina-not-offend .cup { position:absolute; bottom:24%; left:50%; transform:translateX(-50%); width:12px; height:14px; background: #5a4a3a; border-radius: 4px 4px 6px 6px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-marina-not-offend .chair { position:absolute; bottom:10%; right:30%; width:30px; height:12px; background: linear-gradient(180deg, #3a2a20 0%, #2a1f1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }

@keyframes mn-candle { 0% { opacity:.7; box-shadow: 0 0 20px 6px rgba(192,128,64,.3) } 100% { opacity:1; box-shadow: 0 0 50px 18px rgba(192,128,64,.7) } }
@keyframes mn-marina { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mn-client { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* pericles-ship-arrival */
.scn-pericles-ship-arrival {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 30%, #F0E68C 70%, #FFD700 100%);
}
.scn-pericles-ship-arrival .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 100%);
  animation: psa-sky 12s ease-in-out infinite alternate;
}
.scn-pericles-ship-arrival .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4682B4 0%, #2E5090 50%, #1A3A6A 100%);
  border-radius: 20% 80% 0 0;
  animation: psa-sea 8s ease-in-out infinite alternate;
}
.scn-pericles-ship-arrival .ship {
  position: absolute; bottom: 25%; left: 30%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: psa-ship 6s ease-in-out infinite;
}
.scn-pericles-ship-arrival .sail-fore {
  position: absolute; bottom: 35%; left: 32%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #F5F5DC 0%, #EEDC82 100%);
  border-radius: 0 50% 50% 0;
  transform: rotate(-10deg);
  animation: psa-sail 8s ease-in-out infinite alternate;
}
.scn-pericles-ship-arrival .sail-aft {
  position: absolute; bottom: 35%; left: 48%; width: 45px; height: 55px;
  background: linear-gradient(180deg, #F5F5DC 0%, #EEDC82 100%);
  border-radius: 50% 0 0 50%;
  transform: rotate(5deg);
  animation: psa-sail 8s ease-in-out infinite alternate-reverse;
}
.scn-pericles-ship-arrival .flag {
  position: absolute; bottom: 42%; left: 28%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #CD853F 0%, #B8860B 100%);
  border-radius: 0 50% 50% 0;
  animation: psa-flag 4s ease-in-out infinite;
}
.scn-pericles-ship-arrival .figure {
  position: absolute; bottom: 30%; left: 38%; width: 14px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #F5DEB3 0%, #D2B48C 60%, #8B7355 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: psa-figure 5s ease-in-out infinite;
}
.scn-pericles-ship-arrival .barge {
  position: absolute; bottom: 20%; left: 65%; width: 80px; height: 35px;
  background: linear-gradient(180deg, #6B4226 0%, #4A2F1A 100%);
  border-radius: 30% 30% 10% 10%;
  animation: psa-barge 10s ease-in-out infinite;
}

@keyframes psa-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes psa-sea { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-4px); } }
@keyframes psa-ship { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(0.5deg); } }
@keyframes psa-sail { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(-15deg); } }
@keyframes psa-flag { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(0.9); } }
@keyframes psa-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes psa-barge { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }

/* helicanus-welcome */
.scn-helicanus-welcome {
  background: linear-gradient(180deg, #87CEEB 0%, #B0C4DE 40%, #D2B48C 70%, #DEB887 100%);
}
.scn-helicanus-welcome .deck {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #C4A882 0%, #A0845C 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-helicanus-welcome .rail {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 4px;
  background: #8B7355;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hew-rail 3s ease-in-out infinite;
}
.scn-helicanus-welcome .helmsman {
  position: absolute; bottom: 30%; left: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hew-helmsman 5s ease-in-out infinite;
}
.scn-helicanus-welcome .gentlemen {
  position: absolute; bottom: 28%; left: 45%; width: 60px; height: 30px;
  background: linear-gradient(90deg, #EEDC82 0%, #DAA520 50%, #B8860B 100%);
  border-radius: 30% 30% 10% 10%;
  animation: hew-gentlemen 7s ease-in-out infinite;
}
.scn-helicanus-welcome .gangplank {
  position: absolute; bottom: 22%; left: 70%; width: 60px; height: 6px;
  background: #6B4226;
  transform: rotate(-20deg);
  transform-origin: left bottom;
  animation: hew-gangplank 6s ease-in-out infinite alternate;
}
.scn-helicanus-welcome .barge-bow {
  position: absolute; bottom: 15%; left: 80%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: hew-barge 10s ease-in-out infinite;
}
.scn-helicanus-welcome .sun-ray {
  position: absolute; top: 0; left: 30%; width: 4px; height: 100%;
  background: linear-gradient(180deg, #FFD700 0%, transparent 100%);
  opacity: 0.3;
  animation: hew-ray 8s ease-in-out infinite alternate;
}

@keyframes hew-rail { 0%,100% { opacity: 1; } 50% { opacity: 0.8; } }
@keyframes hew-helmsman { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes hew-gentlemen { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(0.9); } }
@keyframes hew-gangplank { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-25deg); } }
@keyframes hew-barge { 0%,100% { transform: translateY(0); } 50% { transform: translateY(3px); } }
@keyframes hew-ray { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.1; } }

/* helicanus-resolve */
.scn-helicanus-resolve {
  background: linear-gradient(180deg, #4682B4 0%, #87CEEB 30%, #F0E68C 60%, #DEB887 100%);
}
.scn-helicanus-resolve .shore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #DEB887 0%, #C4A882 50%, #A0845C 100%);
  border-radius: 40% 60% 0 0;
}
.scn-helicanus-resolve .neptune-statue {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #B0C4DE 0%, #778899 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: hre-statue 10s ease-in-out infinite alternate;
}
.scn-helicanus-resolve .pedestal {
  position: absolute; bottom: 25%; left: 38%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #A0522D 0%, #8B4513 100%);
  border-radius: 10% 10% 0 0;
}
.scn-helicanus-resolve .pericles-figure {
  position: absolute; bottom: 20%; left: 55%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hre-pericles 6s ease-in-out infinite;
}
.scn-helicanus-resolve .wreath {
  position: absolute; bottom: 38%; left: 42%; width: 24px; height: 12px;
  background: radial-gradient(ellipse, #228B22 0%, #006400 100%);
  border-radius: 50%;
  animation: hre-wreath 5s ease-in-out infinite;
}
.scn-helicanus-resolve .wave {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #4682B4 0%, #2E5090 100%);
  border-radius: 50% 50% 0 0;
  animation: hre-wave 4s ease-in-out infinite alternate;
}
.scn-helicanus-resolve .cloud {
  position: absolute; top: 10%; left: 20%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: hre-cloud 35s linear infinite;
}

@keyframes hre-statue { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes hre-pericles { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes hre-wreath { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes hre-wave { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes hre-cloud { 0% { transform: translateX(-80px); } 100% { transform: translateX(120vw); } }

/* helicanus-place */
.scn-helicanus-place {
  background: linear-gradient(180deg, #87CEEB 0%, #B0C4DE 30%, #F5DEB3 60%, #D2B48C 100%);
}
.scn-helicanus-place .harbor-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 100%);
  animation: hpl-sky 15s ease-in-out infinite alternate;
}
.scn-helicanus-place .harbor-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4682B4 0%, #2E5090 50%, #1A3A6A 100%);
  border-radius: 30% 70% 0 0;
  animation: hpl-sea 10s ease-in-out infinite alternate;
}
.scn-helicanus-place .city-wall {
  position: absolute; bottom: 35%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #A0845C 0%, #8B7355 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.3);
}
.scn-helicanus-place .governor-tower {
  position: absolute; bottom: 45%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #DEB887 0%, #C4A882 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 5px 10px rgba(0,0,0,0.2);
  animation: hpl-tower 8s ease-in-out infinite alternate;
}
.scn-helicanus-place .gate {
  position: absolute; bottom: 42%; left: 43%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%);
  border-radius: 20% 20% 0 0;
  animation: hpl-gate 6s ease-in-out infinite;
}
.scn-helicanus-place .guard {
  position: absolute; bottom: 38%; left: 38%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #B8860B 0%, #A0522D 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hpl-guard 5s ease-in-out infinite;
}
.scn-helicanus-place .ship-mast {
  position: absolute; bottom: 15%; left: 20%; width: 4px; height: 60px;
  background: #8B4513;
  transform-origin: bottom center;
  animation: hpl-mast 12s ease-in-out infinite;
}
.scn-helicanus-place .seagull {
  position: absolute; top: 12%; left: 60%; width: 20px; height: 8px;
  background: radial-gradient(ellipse, #FFFFFF 0%, #D3D3D3 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: hpl-gull 20s linear infinite;
}

@keyframes hpl-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hpl-sea { 0% { transform: translateX(-5px); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes hpl-tower { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes hpl-gate { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } }
@keyframes hpl-guard { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-3px); } }
@keyframes hpl-mast { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes hpl-gull { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-bawd-abominable { background: linear-gradient(180deg, #2a1b0e 0%, #1a0f04 40%, #0d0700 100%), radial-gradient(ellipse at 20% 80%, #4a2a12 40%, transparent 80%); }
.scn-bawd-abominable .wall-back { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1b0e, #1e1208); }
.scn-bawd-abominable .floor { position:absolute; bottom:0; inset:65% 0 0 0; background: linear-gradient(0deg, #0d0700 0%, #1a0f04 40%, #2a1b0e 100%); }
.scn-bawd-abominable .brazier { position:absolute; bottom:30%; left:70%; width:30px; height:25px; background: radial-gradient(circle at 50% 30%, #d06020 20%, #402010 70%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(180,80,20,.6); }
.scn-bawd-abominable .brazier-glow { position:absolute; bottom:30%; left:65%; width:50px; height:50px; background: radial-gradient(circle, #f08030 0%, transparent 70%); border-radius:50%; filter: blur(12px); opacity:.6; animation: bawd-fire 3s ease-in-out infinite alternate; }
.scn-bawd-abominable .bawd-figure { position:absolute; bottom:35%; left:40%; width:20px; height:45px; background: linear-gradient(180deg, #1a0f04 0%, #0d0700 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-bawd-abominable .bawd-arm { position:absolute; bottom:55%; left:42%; width:4px; height:20px; background: #0d0700; border-radius:30% 30% 30% 30%; transform-origin: bottom center; animation: bawd-arm 1s ease-in-out infinite alternate; }
.scn-bawd-abominable .hanging-rope { position:absolute; top:5%; left:30%; width:2px; height:15%; background: #3a2a1a; border-radius:1px; box-shadow: 0 0 2px rgba(0,0,0,.5); animation: bawd-rope 6s ease-in-out infinite; }
.scn-bawd-abominable .shadow-patch { position:absolute; bottom:30%; left:35%; width:40px; height:35px; background: radial-gradient(ellipse at 50% 50%, #000 0%, transparent 70%); opacity:.4; filter: blur(8px); }
@keyframes bawd-fire { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.6; transform: scale(.95) } }
@keyframes bawd-arm { 0% { transform: rotate(-30deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-10deg) } }
@keyframes bawd-rope { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
/* 4 animations: bawd-fire, bawd-arm, bawd-rope, and additional on floor? but we have 4 declared. */

.scn-boult-plough { background: linear-gradient(180deg, #1f1210 0%, #110908 50%, #050303 100%), radial-gradient(ellipse at 60% 30%, #3a1a0a 30%, transparent 70%); }
.scn-boult-plough .wall-back { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1f1210, #150b0a); }
.scn-boult-plough .floor { position:absolute; bottom:0; inset:60% 0 0 0; background: linear-gradient(0deg, #050303 0%, #110908 50%, #1f1210 100%); }
.scn-boult-plough .table { position:absolute; bottom:30%; left:20%; width:60px; height:20px; background: linear-gradient(180deg, #3a2a1a, #1a0f08); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-boult-plough .candle { position:absolute; bottom:45%; left:22%; width:4px; height:12px; background: radial-gradient(circle at 50% 100%, #f0c060 20%, #2a1a0a 80%); border-radius:2px 2px 0 0; box-shadow: 0 0 10px 3px rgba(240,192,96,.4); animation: bplt-candle 4s ease-in-out infinite alternate; }
.scn-boult-plough .boult-figure { position:absolute; bottom:30%; left:50%; width:24px; height:40px; background: linear-gradient(180deg, #0d0700 0%, #050303 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); }
.scn-boult-plough .boult-arm-tool { position:absolute; bottom:35%; left:55%; width:4px; height:22px; background: #050303; border-radius:2px; transform-origin: bottom center; transform: rotate(20deg); animation: bplt-arm 2s ease-in-out infinite; }
.scn-boult-plough .marina-silhouette { position:absolute; bottom:30%; left:25%; width:16px; height:38px; background: linear-gradient(180deg, #1f1210 0%, #110908 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.9; }
.scn-boult-plough .damp-stain { position:absolute; bottom:25%; left:45%; width:25px; height:15px; background: radial-gradient(ellipse, #2a1a0a 0%, transparent 70%); opacity:.3; filter: blur(6px); animation: bplt-stain 8s ease-in-out infinite; }
@keyframes bplt-candle { 0% { opacity:.7; box-shadow: 0 0 6px 2px rgba(240,192,96,.3) } 50% { opacity:1; box-shadow: 0 0 14px 5px rgba(240,192,96,.6) } 100% { opacity:.8; box-shadow: 0 0 8px 3px rgba(240,192,96,.4) } }
@keyframes bplt-arm { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(-10deg) } }
@keyframes bplt-stain { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.4; transform: scale(1.2) } 100% { opacity:.3; transform: scale(.9) } }
/* animations: bplt-candle, bplt-arm, bplt-stain, also background? but we have 3. need 4. Add animation on boult-figure? */
.scn-boult-plough .boult-figure { animation: bplt-breathe 5s ease-in-out infinite; }
@keyframes bplt-breathe { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } }

.scn-boult-come-mistress { background: linear-gradient(180deg, #1b1215 0%, #0f080a 50%, #060304 100%), radial-gradient(ellipse at 30% 40%, #3a1a1a 20%, transparent 80%); }
.scn-boult-come-mistress .wall-back { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1b1215, #120a0c); }
.scn-boult-come-mistress .floor { position:absolute; bottom:0; inset:60% 0 0 0; background: linear-gradient(0deg, #060304, #0f080a, #1b1215); }
.scn-boult-come-mistress .door-frame { position:absolute; top:15%; right:15%; width:40px; height:60%; background: linear-gradient(180deg, #3a2a2a, #1a1010); border-radius:8px 8px 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.5); }
.scn-boult-come-mistress .door-opening { position:absolute; top:18%; right:19%; width:32px; height:54%; background: #0a0505; border-radius:4px 4px 0 0; }
.scn-boult-come-mistress .boult-leading { position:absolute; bottom:30%; left:35%; width:20px; height:42px; background: linear-gradient(180deg, #0d0700, #050303); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bocm-walk 3s ease-in-out infinite; }
.scn-boult-come-mistress .marina-trailing { position:absolute; bottom:30%; left:25%; width:16px; height:38px; background: linear-gradient(180deg, #1b1215, #0f080a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bocm-drag 3.5s ease-in-out infinite; }
.scn-boult-come-mistress .lantern-light { position:absolute; top:30%; left:20%; width:8px; height:8px; background: radial-gradient(circle, #f0c070 20%, rgba(240,192,112,.2) 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(240,192,112,.5); filter: blur(4px); animation: bocm-lantern 4s ease-in-out infinite alternate; }
.scn-boult-come-mistress .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 30% 35%, rgba(255,200,150,.05) 0%, transparent 60%); animation: bocm-dust 12s linear infinite; }
@keyframes bocm-walk { 0%,100% { transform: translateX(0) } 50% { transform: translateX(8px) } }
@keyframes bocm-drag { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-2px) translateY(1px) } }
@keyframes bocm-lantern { 0% { opacity:.4; transform: scale(.9) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.6; transform: scale(1) } }
@keyframes bocm-dust { 0% { transform: translateY(0) } 100% { transform: translateY(-20px) } }

.scn-marina-worse-than-thou { background: linear-gradient(180deg, #1a1a2e 0%, #12121c 50%, #0a0a0f 100%), radial-gradient(ellipse at 40% 50%, #2a2a4e 30%, transparent 70%); }
.scn-marina-worse-than-thou .wall-back { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1a2e, #141420); }
.scn-marina-worse-than-thou .floor { position:absolute; bottom:0; inset:55% 0 0 0; background: linear-gradient(0deg, #0a0a0f, #12121c, #1a1a2e); }
.scn-marina-worse-than-thou .door-arch { position:absolute; top:10%; right:10%; width:50px; height:65%; background: linear-gradient(180deg, #2a2a3e, #1a1a2e); border-radius:50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-marina-worse-than-thou .marina-standing { position:absolute; bottom:35%; left:40%; width:18px; height:40px; background: linear-gradient(180deg, #2a2a3e 0%, #12121c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mwt-stand 6s ease-in-out infinite; }
.scn-marina-worse-than-thou .marina-arm { position:absolute; bottom:55%; left:42%; width:3px; height:15px; background: #12121c; border-radius:30% 30% 20% 20%; transform-origin: bottom center; transform: rotate(-20deg); animation: mwt-arm 4s ease-in-out infinite alternate; }
.scn-marina-worse-than-thou .boult-cowering { position:absolute; bottom:30%; left:60%; width:22px; height:35px; background: linear-gradient(180deg, #0f0f14 0%, #08080a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: mwt-cower 8s ease-in-out infinite; }
.scn-marina-worse-than-thou .faint-glow { position:absolute; top:20%; left:30%; width:40px; height:40px; background: radial-gradient(circle, #406080 0%, transparent 70%); opacity:.15; filter: blur(10px); animation: mwt-glow 10s ease-in-out infinite alternate; }
.scn-marina-worse-than-thou .drift-particles { position:absolute; inset:0; background: radial-gradient(circle at 50% 50%, rgba(100,150,200,.02) 0%, transparent 60%); filter: blur(2px); animation: mwt-drift 30s linear infinite; }
@keyframes mwt-stand { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes mwt-arm { 0% { transform: rotate(-20deg) } 100% { transform: rotate(10deg) } }
@keyframes mwt-cower { 0%,100% { transform: scaleX(-1) translateY(0) } 50% { transform: scaleX(-1) translateY(2px) } }
@keyframes mwt-glow { 0% { opacity:.1; transform: scale(1) } 50% { opacity:.2; transform: scale(1.2) } 100% { opacity:.15; transform: scale(.9) } }
@keyframes mwt-drift { 0% { transform: translateY(0) } 100% { transform: translateY(-30px) } }

.scn-antioch-aside-threat {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 40%, #0a0a05 100%),
    radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 60%);
}
.scn-antioch-aside-threat .wall-back {
  position:absolute; inset:0 0 0 0;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  animation: aat-wall 20s ease-in-out infinite alternate;
}
.scn-antioch-aside-threat .the-column {
  position:absolute; bottom:20%; width:24px; height:60%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.7);
}
.scn-antioch-aside-threat .column-l { left:12%; }
.scn-antioch-aside-threat .column-r { right:12%; }
.scn-antioch-aside-threat .throne {
  position:absolute; bottom:20%; left:50%; width:80px; height:90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.8);
  animation: aat-throne 6s ease-in-out infinite;
}
.scn-antioch-aside-threat .figure-king {
  position:absolute; bottom:30%; left:50%; width:28px; height:70px;
  transform: translateX(-56%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: aat-king 4s ease-in-out infinite;
}
.scn-antioch-aside-threat .figure-aside {
  position:absolute; bottom:28%; left:62%; width:24px; height:60px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform: rotate(-8deg);
  animation: aat-aside 3s ease-in-out infinite alternate;
}
.scn-antioch-aside-threat .torch {
  position:absolute; bottom:38%; left:45%; width:8px; height:12px;
  background: radial-gradient(circle, #ffcc80 0%, #b08040 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 12px rgba(255,160,64,0.5);
  animation: aat-torch 2s ease-in-out infinite alternate;
}
.scn-antioch-aside-threat .shadow-floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(0deg, #000000 0%, transparent 100%);
  opacity:0.6;
  animation: aat-shadow 8s linear infinite;
}
@keyframes aat-wall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes aat-throne { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes aat-king { 0% { transform: translateX(-56%) rotate(-2deg) } 50% { transform: translateX(-54%) rotate(2deg) } 100% { transform: translateX(-56%) rotate(-1deg) } }
@keyframes aat-aside { 0% { transform: rotate(-10deg) translateX(0) } 100% { transform: rotate(-6deg) translateX(4px) } }
@keyframes aat-torch { 0% { box-shadow: 0 0 15px 4px #ffa040, 0 0 30px 8px rgba(255,160,64,0.4); opacity:0.8 } 50% { box-shadow: 0 0 30px 10px #ffcc80, 0 0 60px 18px rgba(255,204,128,0.6); opacity:1 } 100% { box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 12px rgba(255,160,64,0.5); opacity:0.9 } }
@keyframes aat-shadow { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

.scn-antioch-false-mercy {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 40%, #7a5a3a 0%, transparent 70%);
}
.scn-antioch-false-mercy .wall-back {
  position:absolute; inset:0 0 0 0;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  animation: afm-wall 25s ease-in-out infinite alternate;
}
.scn-antioch-false-mercy .table {
  position:absolute; bottom:18%; left:20%; right:20%; height:10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-antioch-false-mercy .goblet {
  position:absolute; bottom:22%; left:40%; width:16px; height:22px;
  background: linear-gradient(180deg, #b09070 0%, #6a5040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px 2px rgba(180,140,100,0.4);
  animation: afm-goblet 5s ease-in-out infinite alternate;
}
.scn-antioch-false-mercy .figure-antiochus {
  position:absolute; bottom:22%; left:50%; width:30px; height:80px;
  transform: translateX(-60%);
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: afm-antiochus 4s ease-in-out infinite;
}
.scn-antioch-false-mercy .figure-pericles {
  position:absolute; bottom:22%; right:30%; width:26px; height:74px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform: rotate(5deg);
  animation: afm-pericles 6s ease-in-out infinite alternate;
}
.scn-antioch-false-mercy .plate-cover {
  position:absolute; bottom:24%; left:55%; width:30px; height:8px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: afm-cover 3s ease-in-out infinite;
}
.scn-antioch-false-mercy .candle {
  position:absolute; bottom:28%; left:35%; width:6px; height:16px;
  background: linear-gradient(180deg, #ffd080 0%, #a08050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 3px #ffc060;
  animation: afm-candle 2s ease-in-out infinite alternate;
}
@keyframes afm-wall { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes afm-goblet { 0% { transform: translateY(0) rotate(0) } 100% { transform: translateY(-2px) rotate(2deg) } }
@keyframes afm-antiochus { 0% { transform: translateX(-60%) rotate(-1deg) } 50% { transform: translateX(-58%) rotate(1deg) } 100% { transform: translateX(-60%) rotate(-1deg) } }
@keyframes afm-pericles { 0% { transform: rotate(3deg) translateX(0) } 100% { transform: rotate(7deg) translateX(-3px) } }
@keyframes afm-cover { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } }
@keyframes afm-candle { 0% { box-shadow: 0 0 8px 2px #ffc060; opacity:0.8 } 50% { box-shadow: 0 0 18px 6px #ffd080; opacity:1 } 100% { box-shadow: 0 0 10px 3px #ffc060; opacity:0.9 } }

.scn-pericles-flight-plan {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%, #050200 100%),
    radial-gradient(ellipse at 50% 20%, #5a3a1a 0%, transparent 70%);
}
.scn-pericles-flight-plan .wall-back {
  position:absolute; inset:0 0 0 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 0 0 10% 10% / 0 0 30% 30%;
  animation: pfp-wall 30s ease-in-out infinite alternate;
}
.scn-pericles-flight-plan .desk {
  position:absolute; bottom:20%; left:25%; right:25%; height:12%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.8);
}
.scn-pericles-flight-plan .scroll {
  position:absolute; bottom:28%; left:40%; width:24px; height:30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 0 0 20% 20%;
  transform: rotate(-5deg);
  animation: pfp-scroll 4s ease-in-out infinite alternate;
}
.scn-pericles-flight-plan .lamp {
  position:absolute; bottom:30%; left:30%; width:8px; height:14px;
  background: radial-gradient(circle, #ffd080 0%, #a08050 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 18px 5px #ffc060, 0 0 36px 10px rgba(255,192,96,0.4);
  animation: pfp-lamp 3s ease-in-out infinite alternate;
}
.scn-pericles-flight-plan .figure-pericles {
  position:absolute; bottom:22%; left:50%; width:28px; height:70px;
  transform: translateX(-52%);
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation: pfp-pericles 5s ease-in-out infinite;
}
.scn-pericles-flight-plan .door {
  position:absolute; bottom:18%; right:10%; width:30px; height:60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.6);
  animation: pfp-door 8s ease-in-out infinite alternate;
}
.scn-pericles-flight-plan .shadow-shape {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(0deg, #000000 0%, transparent 100%);
  opacity:0.7;
  animation: pfp-shadow 10s linear infinite;
}
@keyframes pfp-wall { 0% { opacity:0.5 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes pfp-scroll { 0% { transform: rotate(-3deg) translateY(0) } 100% { transform: rotate(-7deg) translateY(-2px) } }
@keyframes pfp-lamp { 0% { box-shadow: 0 0 12px 3px #ffc060, 0 0 24px 6px rgba(255,192,96,0.3); opacity:0.8 } 50% { box-shadow: 0 0 24px 8px #ffd080, 0 0 48px 16px rgba(255,208,128,0.5); opacity:1 } 100% { box-shadow: 0 0 15px 4px #ffc060, 0 0 30px 8px rgba(255,192,96,0.4); opacity:0.9 } }
@keyframes pfp-pericles { 0% { transform: translateX(-52%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-52%) rotate(-2deg) } }
@keyframes pfp-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } 100% { transform: scaleX(1) } }
@keyframes pfp-shadow { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

.scn-antioch-farewell {
  background: 
    linear-gradient(180deg, #3a1a0a 0%, #1a0a00 40%, #050000 100%),
    radial-gradient(ellipse at 50% 30%, #6a2a0a 0%, transparent 60%);
}
.scn-antioch-farewell .wall-back {
  position:absolute; inset:0 0 0 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%);
  border-radius: 0 0 10% 10% / 0 0 20% 20%;
  animation: afw-wall 20s ease-in-out infinite alternate;
}
.scn-antioch-farewell .arch {
  position:absolute; bottom:10%; left:20%; right:20%; height:80%;
  border: 4px solid #5a3a2a;
  border-top: none;
  background: transparent;
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: afw-arch 15s ease-in-out infinite;
}
.scn-antioch-farewell .figure-antiochus {
  position:absolute; bottom:20%; left:50%; width:34px; height:90px;
  transform: translateX(-55%);
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: afw-antiochus 4s ease-in-out infinite alternate;
}
.scn-antioch-farewell .sword {
  position:absolute; bottom:35%; left:40%; width:6px; height:50px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-30deg);
  box-shadow: 0 0 8px 2px rgba(100,80,60,0.5);
  animation: afw-sword 3s ease-in-out infinite alternate;
}
.scn-antioch-farewell .shadow-hand {
  position:absolute; bottom:28%; left:45%; width:20px; height:20px;
  background: radial-gradient(circle, #000 0%, transparent 100%);
  opacity:0.6;
  border-radius: 50%;
  filter: blur(4px);
  animation: afw-hand 5s ease-in-out infinite;
}
.scn-antioch-farewell .blood-drip {
  position:absolute; bottom:22%; left:38%; width:2px; height:16px;
  background: linear-gradient(180deg, #5e1a1d 0%, transparent 100%);
  border-radius: 50%;
  animation: afw-drip 2s ease-in-out infinite;
}
.scn-antioch-farewell .curtain {
  position:absolute; top:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 100%);
  opacity:0.5;
  animation: afw-curtain 10s linear infinite;
}
@keyframes afw-wall { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.6 } }
@keyframes afw-arch { 0% { border-color: #5a3a2a } 50% { border-color: #7a4a2a } 100% { border-color: #5a3a2a } }
@keyframes afw-antiochus { 0% { transform: translateX(-55%) rotate(-1deg) } 100% { transform: translateX(-53%) rotate(1deg) } }
@keyframes afw-sword { 0% { transform: rotate(-25deg) } 100% { transform: rotate(-35deg) } }
@keyframes afw-hand { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(1) } }
@keyframes afw-drip { 0% { height:12px; opacity:0.7 } 50% { height:20px; opacity:1 } 100% { height:12px; opacity:0.7 } }
@keyframes afw-curtain { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

.scn-pericles-honoured { background: linear-gradient(180deg, #d4c9a8 0%, #b8a880 40%, #8a7a5a 100%), radial-gradient(ellipse at 50% 100%, #d4c9a8 0%, transparent 70%); }
.scn-pericles-honoured .floor    { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-pericles-honoured .throne   { position:absolute; bottom:30%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #b89860 0%, #8a7040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: ph-throne 8s ease-in-out infinite; }
.scn-pericles-honoured .throne-back   { position:absolute; bottom:30%; left:50%; width:80px; height:40px; transform:translateX(-50%) translateY(-20px); background: linear-gradient(180deg, #c8a870 0%, #a08050 100%); border-radius: 30% 30% 0 0; box-shadow: 0 0 8px rgba(0,0,0,.2); }
.scn-pericles-honoured .throne-cushion{ position:absolute; bottom:30%; left:50%; width:40px; height:10px; transform:translateX(-50%) translateY(-10px); background: #7a3070; border-radius: 30%; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-pericles-honoured .column-left  { position:absolute; bottom:30%; left:15%; width:18px; height:70%; background: linear-gradient(180deg, #c8b888 0%, #a89868 100%); border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,.2); animation: ph-columns 12s ease-in-out infinite; }
.scn-pericles-honoured .column-right { position:absolute; bottom:30%; right:15%; width:18px; height:70%; background: linear-gradient(180deg, #c8b888 0%, #a89868 100%); border-radius: 4px; box-shadow: -2px 0 6px rgba(0,0,0,.2); animation: ph-columns 12s ease-in-out infinite reverse; }
.scn-pericles-honoured .curtain-left { position:absolute; top:0; left:0; width:20%; height:70%; background: linear-gradient(180deg, #803040 0%, #501a30 100%); border-radius: 0 30% 30% 0 / 0 20% 20% 0; filter: blur(2px); animation: ph-curtain 15s ease-in-out infinite alternate; }
.scn-pericles-honoured .curtain-right{ position:absolute; top:0; right:0; width:20%; height:70%; background: linear-gradient(180deg, #803040 0%, #501a30 100%); border-radius: 30% 0 0 30% / 20% 0 0 20%; filter: blur(2px); animation: ph-curtain 15s ease-in-out infinite alternate-reverse; }
.scn-pericles-honoured .light-ray   { position:absolute; top:10%; left:30%; width:40%; height:20%; background: linear-gradient(90deg, rgba(255,240,200,.3) 0%, transparent 100%); filter: blur(8px); animation: ph-light 6s ease-in-out infinite alternate; }
@keyframes ph-throne   { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ph-columns  { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ph-curtain  { 0% { transform: translateX(0) } 50% { transform: translateX(5%) } 100% { transform: translateX(0) } }
@keyframes ph-light    { 0% { opacity:.3; transform: scaleX(.8) } 50% { opacity:.6; transform: scaleX(1.1) } 100% { opacity:.4; transform: scaleX(.9) } }

.scn-simonides-test { background: linear-gradient(180deg, #d0c090 0%, #b0a070 40%, #807050 100%), radial-gradient(ellipse at 50% 0, #e0d0a0 0%, transparent 60%); }
.scn-simonides-test .chamber-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #807050 0%, #504030 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-simonides-test .chamber-wall  { position:absolute; bottom:35%; left:0; right:0; height:65%; background: linear-gradient(180deg, #c8b080 0%, #a09060 100%); }
.scn-simonides-test .princess      { position:absolute; bottom:35%; left:38%; width:20px; height:50px; background: linear-gradient(180deg, #ccb080 0%, #a08050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 12px rgba(0,0,0,.2); animation: st-figures 6s ease-in-out infinite; }
.scn-simonides-test .king          { position:absolute; bottom:35%; left:52%; width:24px; height:58px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: st-figures 6s ease-in-out infinite reverse; }
.scn-simonides-test .suitors        { position:absolute; bottom:35%; left:46%; width:16px; height:46px; background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: st-suitors 8s ease-in-out infinite; }
.scn-simonides-test .window-warm   { position:absolute; top:15%; left:40%; width:30px; height:40px; background: linear-gradient(180deg, #ffe0a0 0%, #d0b070 100%); border-radius: 6px; box-shadow: 0 0 30px 10px rgba(255,224,160,.4); animation: st-window 10s ease-in-out infinite alternate; }
.scn-simonides-test .tapestry      { position:absolute; top:20%; left:20%; width:25%; height:50%; background: linear-gradient(180deg, #703040 0%, #401820 100%); border-radius: 4px; filter: blur(1px); animation: st-tapestry 20s ease-in-out infinite; }
.scn-simonides-test .candle-stand  { position:absolute; bottom:40%; left:30%; width:6px; height:30px; background: #5a4a3a; border-radius: 2px; box-shadow: 0 0 20px 6px rgba(255,200,100,.5); animation: st-candle 4s ease-in-out infinite alternate; }
@keyframes st-figures  { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes st-suitors  { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes st-window   { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(.98) } }
@keyframes st-tapestry { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes st-candle   { 0% { transform: scaleY(.95); box-shadow: 0 0 15px 4px rgba(255,200,100,.4) } 50% { transform: scaleY(1.05); box-shadow: 0 0 25px 8px rgba(255,200,100,.6) } 100% { transform: scaleY(.98); box-shadow: 0 0 18px 5px rgba(255,200,100,.45) } }

.scn-pericles-suspicion { background: linear-gradient(180deg, #3a3048 0%, #2a2040 40%, #1a1030 100%), radial-gradient(ellipse at 50% 100%, #2a2040 0%, transparent 70%); }
.scn-pericles-suspicion .stone-floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0 / 5% 5% 0 0; }
.scn-pericles-suspicion .shadow-arch   { position:absolute; top:0; left:25%; width:50%; height:70%; background: radial-gradient(ellipse at 50% 0, #1a1030 0%, transparent 70%); filter: blur(6px); animation: ps-arch 12s ease-in-out infinite alternate; }
.scn-pericles-suspicion .letter-hand   { position:absolute; bottom:35%; left:45%; width:14px; height:10px; background: #d0c090; border-radius: 20% 20% 0 0; transform: rotate(-15deg); animation: ps-letter 5s ease-in-out infinite; }
.scn-pericles-suspicion .figure-reading{ position:absolute; bottom:30%; left:40%; width:22px; height:56px; background: linear-gradient(180deg, #2a2040 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ps-figure 8s ease-in-out infinite; }
.scn-pericles-suspicion .candle-glow   { position:absolute; bottom:38%; left:48%; width:8px; height:8px; background: radial-gradient(circle, #ffd090 0%, #b07030 60%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,208,144,.5); animation: ps-flicker 3s ease-in-out infinite alternate; }
.scn-pericles-suspicion .candle-drip   { position:absolute; bottom:38%; left:48%; width:4px; height:24px; background: linear-gradient(180deg, #ffd090 0%, #b07030 100%); border-radius: 2px; animation: ps-drip 6s ease-in-out infinite; }
.scn-pericles-suspicion .column-thick  { position:absolute; bottom:30%; left:32%; width:12px; height:70%; background: linear-gradient(180deg, #4a4060 0%, #2a2040 100%); border-radius: 4px; animation: ps-column 15s ease-in-out infinite; }
.scn-pericles-suspicion .spy-shadow   { position:absolute; bottom:30%; right:35%; width:18px; height:50px; background: #0a0a1a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; filter: blur(8px); opacity:.6; animation: ps-shadow 10s ease-in-out infinite alternate; }
@keyframes ps-arch     { 0% { transform: scaleY(1); opacity:.5 } 50% { transform: scaleY(1.05); opacity:.7 } 100% { transform: scaleY(.95); opacity:.4 } }
@keyframes ps-letter   { 0% { transform: rotate(-15deg) translateY(0) scale(1) } 50% { transform: rotate(-10deg) translateY(-3px) scale(1.05) } 100% { transform: rotate(-18deg) translateY(0) scale(.98) } }
@keyframes ps-figure   { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ps-flicker  { 0% { transform: scale(.95); box-shadow: 0 0 25px 8px rgba(255,208,144,.45) } 50% { transform: scale(1.1); box-shadow: 0 0 35px 12px rgba(255,208,144,.6) } 100% { transform: scale(1); box-shadow: 0 0 28px 9px rgba(255,208,144,.5) } }
@keyframes ps-drip     { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(8px) scaleY(.8) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ps-column   { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) } }
@keyframes ps-shadow   { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(5px) } }

.scn-pericles-defiance { background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 80%, #6a5a40 0%, transparent 60%); }
.scn-pericles-defiance .hall-floor         { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 15% 15% 0 0 / 8% 8% 0 0; }
.scn-pericles-defiance .king-figure       { position:absolute; bottom:35%; left:40%; width:28px; height:64px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-king 4s ease-in-out infinite; }
.scn-pericles-defiance .knight-figure     { position:absolute; bottom:35%; left:50%; width:26px; height:60px; background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-knight 4s ease-in-out infinite reverse; }
.scn-pericles-defiance .confrontation-light{ position:absolute; top:20%; left:35%; width:30%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,120,.4) 0%, transparent 70%); filter: blur(10px); animation: pd-light 5s ease-in-out infinite alternate; }
.scn-pericles-defiance .halberd-left      { position:absolute; bottom:35%; left:36%; width:4px; height:34px; background: #5a4a3a; border-radius: 2px; transform: rotate(-15deg); transform-origin: bottom center; animation: pd-halberd 6s ease-in-out infinite; }
.scn-pericles-defiance .halberd-right     { position:absolute; bottom:35%; right:36%; width:4px; height:34px; background: #5a4a3a; border-radius: 2px; transform: rotate(15deg); transform-origin: bottom center; animation: pd-halberd 6s ease-in-out infinite reverse; }
.scn-pericles-defiance .dust-mote         { position:absolute; top:30%; left:45%; width:4px; height:4px; background: #d0c0a0; border-radius: 50%; filter: blur(1px); animation: pd-dust 8s linear infinite; }
@keyframes pd-king     { 0% { transform: translateY(0) rotate(-3deg) scaleX(1) } 25% { transform: translateY(-2px) rotate(1deg) scaleX(1.02) } 50% { transform: translateY(0) rotate(3deg) scaleX(1) } 75% { transform: translateY(-2px) rotate(-1deg) scaleX(.98) } 100% { transform: translateY(0) rotate(-3deg) scaleX(1) } }
@keyframes pd-knight   { 0% { transform: translateY(0) rotate(3deg) scaleX(1) } 25% { transform: translateY(-2px) rotate(-1deg) scaleX(.98) } 50% { transform: translateY(0) rotate(-3deg) scaleX(1) } 75% { transform: translateY(-2px) rotate(1deg) scaleX(1.02) } 100% { transform: translateY(0) rotate(3deg) scaleX(1) } }
@keyframes pd-light    { 0% { opacity:.4; transform: scaleX(.8) } 50% { opacity:.7; transform: scaleX(1.2) } 100% { opacity:.5; transform: scaleX(.9) } }
@keyframes pd-halberd  { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-20deg) } }
@keyframes pd-dust     { 0% { transform: translate(0, 0) scale(1); opacity:.8 } 50% { transform: translate(10px, -20px) scale(1.5); opacity:.3 } 100% { transform: translate(20px, -40px) scale(2); opacity:0 } }

/* --- pericles-yields-to-custom --- */
.scn-pericles-yields-to-custom {
  background: linear-gradient(180deg, #0b0e1a 0%, #141c2e 40%, #1a2a3e 70%, #16202c 100%), radial-gradient(ellipse at 30% 100%, #1a2a3e 0%, transparent 60%);
}
.scn-pericles-yields-to-custom .storm-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #10162a 0%, #1a2240 40%, #2c3856 70%, #36456a 100%);
  animation: pc-sky 15s ease-in-out infinite alternate;
}
.scn-pericles-yields-to-custom .sea-dark {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #1a283a 0%, #0f1a2a 50%, #08101a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
  animation: pc-sea 12s ease-in-out infinite alternate;
}
.scn-pericles-yields-to-custom .cliff {
  position:absolute; bottom:40%; left:10%; width:30%; height:25%;
  background: linear-gradient(135deg, #2a343c 0%, #1a222a 60%, #0f141a 100%);
  border-radius: 20% 80% 0 0 / 60% 100% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,.5);
}
.scn-pericles-yields-to-custom .figure-king {
  position:absolute; bottom:42%; left:18%; width:22px; height:50px;
  background: linear-gradient(180deg, #1a1e2a 0%, #0e121a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-figure 6s ease-in-out infinite;
}
.scn-pericles-yields-to-custom .baby-swaddled {
  position:absolute; bottom:38%; left:22%; width:12px; height:16px;
  background: linear-gradient(135deg, #3a404a 0%, #2a3038 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: center bottom;
  animation: pc-baby 4s ease-in-out infinite alternate;
}
.scn-pericles-yields-to-custom .rain-line {
  position:absolute; width:2px; background: rgba(180,200,255,.2);
  filter: blur(1px);
}
.scn-pericles-yields-to-custom .rain-a {
  top:10%; left:30%; height:60%;
  animation: pc-rain 0.8s linear infinite;
}
.scn-pericles-yields-to-custom .rain-b {
  top:0; left:60%; height:70%;
  animation: pc-rain 0.6s linear infinite 0.3s;
}
@keyframes pc-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pc-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes pc-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-2px) rotate(-1deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes pc-baby { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(2deg) scale(1.03) } 100% { transform: rotate(-3deg) scale(1) } }
@keyframes pc-rain { 0% { transform: translateY(-30px) } 100% { transform: translateY(100vh) } }

/* --- pericles-orders-rite --- */
.scn-pericles-orders-rite {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a16 40%, #1a1210 100%), radial-gradient(ellipse at 50% 80%, #3a281c 0%, transparent 70%);
}
.scn-pericles-orders-rite .chamber-wall {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #2a1e1a 0%, #1a1410 50%, #12100e 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.6);
}
.scn-pericles-orders-rite .candle-glow {
  position:absolute; top:20%; left:50%; width:40px; height:80px;
  background: radial-gradient(ellipse 40px 60px at 50% 100%, #ffb860 0%, #e08020 30%, transparent 70%);
  border-radius: 0 0 50% 50%;
  filter: blur(3px);
  animation: po-glow 3s ease-in-out infinite alternate;
}
.scn-pericles-orders-rite .casket {
  position:absolute; bottom:20%; left:35%; width:100px; height:60px;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a12 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,.7), inset 0 -2px 6px rgba(100,60,20,.3);
  animation: po-casket 10s ease-in-out infinite;
}
.scn-pericles-orders-rite .satchel {
  position:absolute; bottom:22%; right:30%; width:30px; height:24px;
  background: linear-gradient(135deg, #3a2820 0%, #221814 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-pericles-orders-rite .figure-priest {
  position:absolute; bottom:25%; left:45%; width:28px; height:70px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1414 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: po-priest 8s ease-in-out infinite;
}
.scn-pericles-orders-rite .inkwell {
  position:absolute; bottom:18%; left:42%; width:16px; height:14px;
  background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a1210 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
}
.scn-pericles-orders-rite .scroll {
  position:absolute; bottom:16%; left:46%; width:24px; height:4px;
  background: linear-gradient(90deg, #c0a070 0%, #a08050 100%);
  border-radius: 40%;
  box-shadow: 0 1px 2px rgba(0,0,0,.4);
  animation: po-scroll 5s ease-in-out infinite alternate;
}
@keyframes po-glow { 0% { opacity:.6; transform: scale(1) translateX(-50%); } 50% { opacity:1; transform: scale(1.1) translateX(-45%); } 100% { opacity:.7; transform: scale(1) translateX(-50%); } }
@keyframes po-casket { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes po-priest { 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 po-scroll { 0% { transform: translateX(0) scaleX(1); } 100% { transform: translateX(4px) scaleX(1.2); } }

/* --- cerimon-charity --- */
.scn-cerimon-charity {
  background: linear-gradient(180deg, #2e1c14 0%, #442622 40%, #2e1c14 100%), radial-gradient(ellipse at 50% 60%, #5a342a 0%, transparent 70%);
}
.scn-cerimon-charity .room-back {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #3a2420 0%, #2a1a16 50%, #1a1210 100%);
  box-shadow: inset 0 0 120px rgba(0,0,0,.5);
}
.scn-cerimon-charity .hearth {
  position:absolute; bottom:10%; left:20%; width:60%; height:30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a12 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
}
.scn-cerimon-charity .fire-glow {
  position:absolute; bottom:20%; left:35%; width:120px; height:100px;
  background: radial-gradient(ellipse at 50% 100%, #ff9040 0%, #ff6020 30%, #902010 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(6px);
  animation: cc-fire 2s ease-in-out infinite alternate;
}
.scn-cerimon-charity .cauldron {
  position:absolute; bottom:15%; left:40%; width:50px; height:40px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a1210 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: cc-cauldron 6s ease-in-out infinite;
}
.scn-cerimon-charity .figure-giver {
  position:absolute; bottom:22%; left:32%; width:30px; height:60px;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a16 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cc-giver 7s ease-in-out infinite;
}
.scn-cerimon-charity .figure-receiver {
  position:absolute; bottom:20%; right:30%; width:25px; height:50px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1412 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cc-receiver 8s ease-in-out infinite 0.5s;
}
.scn-cerimon-charity .table {
  position:absolute; bottom:12%; left:25%; width:50%; height:8%;
  background: linear-gradient(180deg, #4a3228 0%, #2a1e16 100%);
  border-radius: 8%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: cc-table 10s ease-in-out infinite;
}
@keyframes cc-fire { 0% { transform: scale(1) rotate(-2deg); opacity:.7 } 50% { transform: scale(1.05) rotate(1deg); opacity:1 } 100% { transform: scale(0.98) rotate(0deg); opacity:.8 } }
@keyframes cc-cauldron { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cc-giver { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(2px) translateY(-3px); } 50% { transform: translateX(0) translateY(0); } 75% { transform: translateX(-2px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes cc-receiver { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(-3px) translateY(0) rotate(3deg); } 60% { transform: translateX(0) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes cc-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

/* --- early-morning-guests --- */
.scn-early-morning-guests {
  background: linear-gradient(180deg, #4a6a7a 0%, #8aaabc 40%, #b8d0d8 70%, #e0e8e0 100%), radial-gradient(ellipse at 50% 0%, #b8d0d8 0%, transparent 60%);
}
.scn-early-morning-guests .dawn-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #6080a0 0%, #90b0c8 40%, #c8d8e0 70%, #f0e8d8 100%);
  animation: em-sky 20s ease-in-out infinite alternate;
}
.scn-early-morning-guests .morning-sea {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #8aaabc 0%, #5a7a8a 50%, #3a5a6a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  animation: em-sea 10s ease-in-out infinite alternate;
}
.scn-early-morning-guests .lodging-house {
  position:absolute; bottom:40%; left:20%; width:40%; height:30%;
  background: linear-gradient(180deg, #c8b898 0%, #a09078 100%);
  border-radius: 12% 12% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,.4);
  transform: perspective(300px) rotateX(5deg);
}
.scn-early-morning-guests .figure-guest1 {
  position:absolute; bottom:42%; left:28%; width:20px; height:50px;
  background: linear-gradient(180deg, #6a6a72 0%, #3a3a40 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: em-guest1 6s ease-in-out infinite;
}
.scn-early-morning-guests .figure-guest2 {
  position:absolute; bottom:42%; left:36%; width:20px; height:50px;
  background: linear-gradient(180deg, #787068 0%, #484038 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: em-guest2 7s ease-in-out infinite 0.5s;
}
.scn-early-morning-guests .porch-rail {
  position:absolute; bottom:45%; left:20%; width:40%; height:4%;
  background: linear-gradient(90deg, #8a7a6a 0%, #a09080 50%, #8a7a6a 100%);
  border-radius: 6%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.scn-early-morning-guests .light-beam {
  position:absolute; top:20%; left:0; width:100%; height:20%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  pointer-events: none;
  animation: em-beam 25s linear infinite alternate;
}
@keyframes em-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes em-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes em-guest1 { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes em-guest2 { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-1px) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(0deg); } 75% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes em-beam { 0% { opacity:0.1; } 50% { opacity:0.4; } 100% { opacity:0.2; } }

/* marina-know-this-house */
.scn-marina-know-this-house {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2820 100%),
    radial-gradient(ellipse at 50% 80%, #4a3228 0%, transparent 70%);
}
.scn-marina-know-this-house .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
}
.scn-marina-know-this-house .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1210 0%, #2a1e18 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-marina-know-this-house .window-arch {
  position: absolute; top: 8%; left: 50%; width: 100px; height: 140px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #4a4038 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
  animation: mkth-window 12s ease-in-out infinite alternate;
}
.scn-marina-know-this-house .table {
  position: absolute; bottom: 25%; left: 40%; width: 120px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-marina-know-this-house .candle {
  position: absolute; bottom: 50%; left: 48%; width: 8px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0a050 0%, #806030 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 8px rgba(208,160,80,0.4);
  animation: mkth-candle 3s ease-in-out infinite alternate;
}
.scn-marina-know-this-house .chair {
  position: absolute; bottom: 22%; left: 65%; width: 50px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2820 0%, #1a1410 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-marina-know-this-house .shadow-figure {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mkth-figure 8s ease-in-out infinite;
}
.scn-marina-know-this-house .dust-particles {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(255,230,200,0.1) 0%, transparent 50%),
              radial-gradient(circle at 70% 20%, rgba(255,230,200,0.08) 0%, transparent 40%),
              radial-gradient(circle at 20% 70%, rgba(255,230,200,0.05) 0%, transparent 30%);
  animation: mkth-dust 20s ease-in-out infinite alternate;
}
@keyframes mkth-window { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes mkth-candle { 0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 15px 5px rgba(208,160,80,0.3); } 50% { transform: translateX(-50%) scaleY(1.05); box-shadow: 0 0 25px 10px rgba(208,160,80,0.5); } 100% { transform: translateX(-50%) scaleY(0.95); box-shadow: 0 0 12px 4px rgba(208,160,80,0.2); } }
@keyframes mkth-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-45%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-55%) translateY(0) rotate(0deg); } }
@keyframes mkth-dust { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

/* lysistratus-herb-woman */
.scn-lysistratus-herb-woman {
  background:
    linear-gradient(180deg, #1e1a12 0%, #2a2218 40%, #3a2e20 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-lysistratus-herb-woman .wall-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2218 0%, #1e1a12 100%);
  box-shadow: inset 0 -15px 30px rgba(0,0,0,0.5);
}
.scn-lysistratus-herb-woman .shelf {
  position: absolute; top: 30%; left: 10%; right: 10%; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2e20 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-lysistratus-herb-woman .jar-large {
  position: absolute; top: 10%; left: 20%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 60%, #605040 0%, #3a2e20 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
  animation: lhw-jar 6s ease-in-out infinite alternate;
}
.scn-lysistratus-herb-woman .jar-small {
  position: absolute; top: 18%; left: 50%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, #3a2e20 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: inset -3px 0 6px rgba(0,0,0,0.3);
  animation: lhw-jar 8s ease-in-out infinite alternate;
}
.scn-lysistratus-herb-woman .herb-bundle {
  position: absolute; top: 20%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: lhw-herb 4s ease-in-out infinite alternate;
}
.scn-lysistratus-herb-woman .herb-woman-figure {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: lhw-figure 10s ease-in-out infinite;
}
.scn-lysistratus-herb-woman .pestle {
  position: absolute; bottom: 35%; left: 40%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 8px 8px;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: lhw-pestle 3s ease-in-out infinite alternate;
}
.scn-lysistratus-herb-woman .smoke {
  position: absolute; top: 10%; left: 45%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,150,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: lhw-smoke 15s ease-in-out infinite alternate;
}
@keyframes lhw-jar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes lhw-herb { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-2px); } 100% { transform: rotate(-18deg) translateY(0); } }
@keyframes lhw-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-45%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-55%) translateY(0) rotate(-1deg); } }
@keyframes lhw-pestle { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(8deg) scaleY(1.05); } 100% { transform: rotate(12deg) scaleY(0.95); } }
@keyframes lhw-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-10px) scale(1.2); opacity: 0.6; } 100% { transform: translateY(-20px) scale(0.8); opacity: 0.2; } }

/* marina-honour-now */
.scn-marina-honour-now {
  background:
    linear-gradient(180deg, #0c0808 0%, #180e0c 40%, #2a1a16 100%),
    radial-gradient(ellipse at 50% 20%, #3a221a 0%, transparent 70%);
}
.scn-marina-honour-now .dungeon-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #180e0c 0%, #0c0808 100%);
  box-shadow: inset 0 -30px 60px rgba(0,0,0,0.7);
}
.scn-marina-honour-now .dungeon-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #0a0606 0%, #180e0c 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-marina-honour-now .iron-bars {
  position: absolute; top: 15%; left: 30%; right: 30%; height: 60%;
  background: repeating-linear-gradient(90deg,
    transparent, transparent 12px,
    #2a201a 12px, #2a201a 14px,
    transparent 14px, transparent 30px);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: mhn-bars 4s ease-in-out infinite alternate;
}
.scn-marina-honour-now .torch-left {
  position: absolute; bottom: 50%; left: 12%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #806030 0%, #402818 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(224,160,80,0.3);
  animation: mhn-torch 2s ease-in-out infinite alternate;
}
.scn-marina-honour-now .torch-right {
  position: absolute; bottom: 50%; right: 12%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #806030 0%, #402818 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(224,160,80,0.3);
  animation: mhn-torch 2s ease-in-out infinite alternate;
  animation-delay: -1s;
}
.scn-marina-honour-now .maid-figure {
  position: absolute; bottom: 25%; left: 50%; width: 45px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a16 0%, #140a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: mhn-maid 6s ease-in-out infinite;
}
.scn-marina-honour-now .chain {
  position: absolute; bottom: 30%; left: 48%; width: 4px; height: 80px;
  background: repeating-linear-gradient(180deg, #5a4a3a 0%, #5a4a3a 8px, transparent 8px, transparent 12px);
  animation: mhn-chain 3s ease-in-out infinite;
}
.scn-marina-honour-now .flicker-light {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 12% 40%, rgba(224,160,80,0.1) 0%, transparent 40%),
              radial-gradient(circle at 88% 40%, rgba(224,160,80,0.1) 0%, transparent 40%);
  animation: mhn-flicker 0.8s linear infinite alternate;
}
@keyframes mhn-bars { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes mhn-torch { 0% { transform: scaleY(1); box-shadow: 0 0 30px 15px rgba(224,160,80,0.2); } 50% { transform: scaleY(1.1); box-shadow: 0 0 50px 25px rgba(224,160,80,0.4); } 100% { transform: scaleY(0.9); box-shadow: 0 0 20px 10px rgba(224,160,80,0.1); } }
@keyframes mhn-maid { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-48%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-52%) translateY(0) rotate(-1deg); } }
@keyframes mhn-chain { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mhn-flicker { 0% { opacity: 0.4; } 100% { opacity: 0.7; } }

/* marina-maid-plea */
.scn-marina-maid-plea {
  background:
    linear-gradient(180deg, #0a0808 0%, #140e0c 40%, #1a1410 100%),
    radial-gradient(ellipse at 50% 30%, #2a1a14 0%, transparent 70%);
}
.scn-marina-maid-plea .dark-cell {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #140e0c 0%, #0a0808 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.8);
}
.scn-marina-maid-plea .window-slit {
  position: absolute; top: 12%; left: 50%; width: 40px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: mmp-window 15s ease-in-out infinite alternate;
}
.scn-marina-maid-plea .maid-kneeling {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1410 0%, #0c0808 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: mmp-maid 8s ease-in-out infinite;
}
.scn-marina-maid-plea .bird-shadow {
  position: absolute; top: 15%; left: 40%; width: 30px; height: 20px;
  background: #1a1410;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: mmp-bird 12s linear infinite;
}
.scn-marina-maid-plea .tears-drop {
  position: absolute; bottom: 28%; left: 52%; width: 4px; height: 8px;
  background: rgba(180,200,220,0.2);
  border-radius: 50%;
  animation: mmp-tears 3s ease-in-out infinite;
}
.scn-marina-maid-plea .faint-glow {
  position: absolute; top: 12%; left: 50%; width: 40px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(150,180,220,0.15) 0%, transparent 70%);
  animation: mmp-glow 8s ease-in-out infinite alternate;
}
.scn-marina-maid-plea .rat {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: mmp-rat 5s ease-in-out infinite;
}
@keyframes mmp-window { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }
@keyframes mmp-maid { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-48%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-52%) translateY(0) rotate(0deg); } }
@keyframes mmp-bird { 0% { transform: translateX(0) translateY(0) rotate(-20deg); } 50% { transform: translateX(20px) translateY(-5px) rotate(-15deg); } 100% { transform: translateX(40px) translateY(0) rotate(-25deg); } }
@keyframes mmp-tears { 0% { transform: translateY(0); opacity: 0; } 50% { opacity: 0.4; } 100% { transform: translateY(15px); opacity: 0; } }
@keyframes mmp-glow { 0% { opacity: 0.1; } 50% { opacity: 0.3; } 100% { opacity: 0.05; } }
@keyframes mmp-rat { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(5px) translateY(-3px); } 100% { transform: translateX(10px) translateY(0); } }

.scn-murder-plot-oath {
  background: linear-gradient(180deg, #c8b89a 0%, #a08060 40%, #806040 100%),
              radial-gradient(ellipse at 30% 20%, #ffffff80 0%, transparent 60%);
}
.scn-murder-plot-oath .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #d4c4a8 0%, #b09878 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.3);
}
.scn-murder-plot-oath .sunbeam {
  position: absolute; top: 0; left: 20%; width: 30%; height: 80%;
  background: linear-gradient(180deg, rgba(255,240,200,0.6) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 10% 100%);
  animation: mpo-beam 8s ease-in-out infinite alternate;
}
.scn-murder-plot-oath .table {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(10deg);
}
.scn-murder-plot-oath .figure-kneel {
  position: absolute; bottom: 22%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mpo-kneel 4s ease-in-out infinite alternate;
}
.scn-murder-plot-oath .figure-stand {
  position: absolute; bottom: 22%; left: 48%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mpo-stand 5s ease-in-out infinite alternate;
}
.scn-murder-plot-oath .blade {
  position: absolute; bottom: 30%; left: 42%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 2px 2px 40% 40%;
  box-shadow: 0 0 6px rgba(200,176,144,0.5);
  transform: rotate(-20deg);
  animation: mpo-blade 3s ease-in-out infinite alternate;
}
.scn-murder-plot-oath .shadow {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: mpo-shadow 6s ease-in-out infinite alternate;
}
@keyframes mpo-beam { 0% { opacity: 0.7; transform: skewX(-2deg); } 50% { opacity: 1; transform: skewX(2deg); } 100% { opacity: 0.6; transform: skewX(-1deg); } }
@keyframes mpo-kneel { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mpo-stand { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes mpo-blade { 0% { transform: rotate(-20deg) scaleY(0.9); } 50% { transform: rotate(-15deg) scaleY(1.1); } 100% { transform: rotate(-22deg) scaleY(0.95); } }
@keyframes mpo-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.05); } 100% { opacity: 0.35; transform: scaleX(0.95); } }

.scn-marina-weeping-flowers {
  background: linear-gradient(180deg, #8fa8a0 0%, #6a8a7a 40%, #4a6a5a 100%),
              radial-gradient(ellipse at 50% 30%, #c0d8c0 0%, transparent 60%);
}
.scn-marina-weeping-flowers .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0c8b8 0%, #90a898 100%);
  animation: mwf-sky 15s ease-in-out infinite alternate;
}
.scn-marina-weeping-flowers .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
}
.scn-marina-weeping-flowers .grave-mound {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 15%;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.3);
}
.scn-marina-weeping-flowers .figure-weep {
  position: absolute; bottom: 22%; left: 48%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mwf-weep 6s ease-in-out infinite;
}
.scn-marina-weeping-flowers .flowers {
  position: absolute; width: 10px; height: 10px;
  background: radial-gradient(circle, #b87878 0%, #8a5a5a 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(184,120,120,0.4);
}
.scn-marina-weeping-flowers .f1 {
  bottom: 15%; left: 35%; animation: mwf-flower1 8s linear infinite;
}
.scn-marina-weeping-flowers .f2 {
  bottom: 18%; left: 52%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8a068 0%, #a08048 70%);
  animation: mwf-flower2 7s linear infinite reverse;
}
.scn-marina-weeping-flowers .f3 {
  bottom: 12%; left: 44%; width: 12px; height: 12px;
  background: radial-gradient(circle, #80a080 0%, #5a7a5a 70%);
  animation: mwf-flower3 9s linear infinite;
}
.scn-marina-weeping-flowers .tears {
  position: absolute; bottom: 32%; left: 49%; width: 4px; height: 6px;
  background: radial-gradient(circle, #c0d8e0 0%, transparent 100%);
  border-radius: 50%;
  animation: mwf-tears 3s ease-in-out infinite alternate;
}
@keyframes mwf-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mwf-weep { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mwf-flower1 { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(5px,-5px) scale(1.1); } 100% { transform: translate(10px,0) scale(1); } }
@keyframes mwf-flower2 { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(-4px,3px) scale(0.9); } 100% { transform: translate(0,0) scale(1); } }
@keyframes mwf-flower3 { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px,-3px) rotate(15deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes mwf-tears { 0% { opacity: 0.3; transform: translateY(0); } 100% { opacity: 0.9; transform: translateY(6px); } }

.scn-brothel-dionyza-scolds {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 80%, #5a3a2a 0%, transparent 70%);
}
.scn-brothel-dionyza-scolds .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-brothel-dionyza-scolds .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
}
.scn-brothel-dionyza-scolds .candle {
  position: absolute; bottom: 50%; left: 50%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #c8a068 0%, #a08048 100%);
  border-radius: 2px;
  transform: translateX(-50%);
}
.scn-brothel-dionyza-scolds .candle-glow {
  position: absolute; bottom: 48%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,160,80,0.6) 0%, transparent 70%);
  transform: translate(-50%, 50%);
  animation: bds-glow 2s ease-in-out infinite alternate;
}
.scn-brothel-dionyza-scolds .figure-older {
  position: absolute; bottom: 20%; left: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bds-older 3s ease-in-out infinite alternate;
}
.scn-brothel-dionyza-scolds .figure-younger {
  position: absolute; bottom: 20%; left: 50%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bds-younger 4s ease-in-out infinite alternate-reverse;
}
.scn-brothel-dionyza-scolds .table-small {
  position: absolute; bottom: 12%; left: 45%; width: 10%; height: 6%;
  background: linear-gradient(180deg, #4a2a0a 0%, #2a1a00 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-brothel-dionyza-scolds .shadow-older {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: bds-shadow-older 3s ease-in-out infinite alternate;
}
.scn-brothel-dionyza-scolds .shadow-younger {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 25px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: bds-shadow-younger 4s ease-in-out infinite alternate-reverse;
}
@keyframes bds-glow { 0% { opacity: 0.5; transform: translate(-50%, 50%) scale(0.9); } 50% { opacity: 0.9; transform: translate(-50%, 50%) scale(1.1); } 100% { opacity: 0.6; transform: translate(-50%, 50%) scale(1); } }
@keyframes bds-older { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes bds-younger { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes bds-shadow-older { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.5; transform: scaleX(0.9); } }
@keyframes bds-shadow-younger { 0% { opacity: 0.3; transform: scaleX(0.9); } 50% { opacity: 0.5; transform: scaleX(1.1); } 100% { opacity: 0.4; transform: scaleX(1); } }

.scn-brothel-marina-protest {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 30% 60%, #6a5a4a 0%, transparent 70%);
}
.scn-brothel-marina-protest .wall-soft {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.4);
}
.scn-brothel-marina-protest .floor-soft {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-brothel-marina-protest .lamp {
  position: absolute; bottom: 55%; left: 20%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #b09070 0%, #806050 100%);
  border-radius: 2px;
  transform: rotate(10deg);
}
.scn-brothel-marina-protest .lamp-glow {
  position: absolute; bottom: 50%; left: 18%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 70%);
  animation: bmp-glow 6s ease-in-out infinite alternate;
}
.scn-brothel-marina-protest .figure-marina {
  position: absolute; bottom: 20%; left: 40%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bmp-marina 8s ease-in-out infinite;
}
.scn-brothel-marina-protest .figure-servant {
  position: absolute; bottom: 18%; left: 52%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bmp-servant 9s ease-in-out infinite reverse;
}
.scn-brothel-marina-protest .chair {
  position: absolute; bottom: 14%; left: 38%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #4a2a0a 0%, #2a1a00 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(5deg);
}
.scn-brothel-marina-protest .shadow-marina {
  position: absolute; bottom: 10%; left: 38%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: bmp-shadow 8s ease-in-out infinite;
}
@keyframes bmp-glow { 0% { opacity: 0.2; transform: scale(0.95); } 50% { opacity: 0.5; transform: scale(1.05); } 100% { opacity: 0.3; transform: scale(1); } }
@keyframes bmp-marina { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes bmp-servant { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes bmp-shadow { 0% { opacity: 0.2; transform: scaleX(1); } 50% { opacity: 0.4; transform: scaleX(1.1); } 100% { opacity: 0.3; transform: scaleX(0.95); } }

.scn-lysistratus-courtesy {
  background: linear-gradient(180deg, #b8d4e8 0%, #f9e3c4 70%, #c9a96e 100%),
              radial-gradient(ellipse at 30% 20%, #fceabb 0%, transparent 60%);
}
.scn-lysistratus-courtesy .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c4dff0 0%, #e6f0fa 100%); animation: lsco-sky 20s ease-in-out infinite alternate; }
.scn-lysistratus-courtesy .sun { position:absolute; top:8%; left:60%; width:60px; height:60px; background: radial-gradient(circle, #fff4c4 0%, #fceabb 40%, transparent 70%); border-radius:50%; animation: lsco-sun 12s ease-in-out infinite alternate; }
.scn-lysistratus-courtesy .wall { position:absolute; bottom:40%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #dac292 0%, #b3855a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.2); }
.scn-lysistratus-courtesy .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a1c181 0%, #7a9a5e 100%); }
.scn-lysistratus-courtesy .tree { position:absolute; bottom:40%; left:20%; width:40px; height:90px; background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: lsco-tree 8s ease-in-out infinite; }
.scn-lysistratus-courtesy .bench { position:absolute; bottom:32%; left:50%; width:70px; height:20px; transform:translateX(-50%); background: linear-gradient(90deg, #8b6a4a 0%, #a07a56 50%, #8b6a4a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-lysistratus-courtesy .figure-stand { position:absolute; bottom:30%; left:60%; width:18px; height:45px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lsco-stand 6s ease-in-out infinite; }
.scn-lysistratus-courtesy .figure-sit { position:absolute; bottom:30%; left:45%; width:20px; height:35px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: lsco-sit 4s ease-in-out infinite; }
.scn-lysistratus-courtesy .sunbeam { position:absolute; top:0; left:55%; width:8px; height:100%; background: linear-gradient(180deg, rgba(255,235,180,.3) 0%, transparent 100%); transform: skewX(-20deg); animation: lsco-beam 10s ease-in-out infinite alternate; }
@keyframes lsco-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes lsco-sun { 0% { transform: scale(1) translate(0,0); opacity:.9 } 50% { transform: scale(1.1) translate(5px,-5px); opacity:1 } 100% { transform: scale(1) translate(0,0); opacity:.9 } }
@keyframes lsco-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes lsco-stand { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes lsco-sit { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes lsco-beam { 0% { opacity:.3; transform: skewX(-20deg) scaleY(1) } 50% { opacity:.6; transform: skewX(-18deg) scaleY(1.1) } 100% { opacity:.3; transform: skewX(-20deg) scaleY(1) } }

.scn-lysistratus-lady-arrives {
  background: linear-gradient(180deg, #b8d4e8 0%, #e6d5b8 50%, #c9a96e 100%),
              radial-gradient(ellipse at 50% 30%, #fceabb 0%, transparent 50%);
}
.scn-lysistratus-lady-arrives .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c4dff0 0%, #e0ecf8 100%); animation: lslad-sky 18s ease-in-out infinite alternate; }
.scn-lysistratus-lady-arrives .arch { position:absolute; bottom:30%; left:25%; right:25%; height:45%; background: linear-gradient(180deg, #dac292 0%, #b3855a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-lysistratus-lady-arrives .path { position:absolute; bottom:0; left:35%; right:35%; height:35%; background: linear-gradient(180deg, #a1c181 0%, #7a9a5e 100%); border-radius: 20% 20% 0 0; }
.scn-lysistratus-lady-arrives .foliage-left { position:absolute; bottom:30%; left:5%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 100%, #5a8a4a 0%, #3a5a2a 100%); border-radius: 50%; filter: blur(4px); animation: lslad-foliage 14s ease-in-out infinite alternate; }
.scn-lysistratus-lady-arrives .foliage-right { position:absolute; bottom:30%; right:5%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 100%, #5a8a4a 0%, #3a5a2a 100%); border-radius: 50%; filter: blur(4px); animation: lslad-foliage 14s ease-in-out infinite alternate-reverse; }
.scn-lysistratus-lady-arrives .lady { position:absolute; bottom:20%; left:45%; width:16px; height:50px; background: linear-gradient(180deg, #b0855a 0%, #704a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lslad-walk 7s ease-in-out infinite; }
.scn-lysistratus-lady-arrives .sun-ray { position:absolute; top:5%; left:35%; width:6px; height:60%; background: linear-gradient(180deg, rgba(255,235,180,.4) 0%, transparent 100%); transform: skewX(-15deg); animation: lslad-ray 12s ease-in-out infinite alternate; }
@keyframes lslad-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes lslad-foliage { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes lslad-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(0deg) } }
@keyframes lslad-ray { 0% { opacity:.2; transform: skewX(-15deg) scaleY(1) } 50% { opacity:.5; transform: skewX(-12deg) scaleY(1.2) } 100% { opacity:.2; transform: skewX(-15deg) scaleY(1) } }

.scn-lysistratus-wife-choice {
  background: linear-gradient(180deg, #b8d4e8 0%, #e6d5b8 60%, #c9a96e 100%),
              radial-gradient(ellipse at 40% 40%, #fceabb 0%, transparent 60%);
}
.scn-lysistratus-wife-choice .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c4dff0 0%, #e0ecf8 100%); animation: lswch-sky 22s ease-in-out infinite alternate; }
.scn-lysistratus-wife-choice .wall { position:absolute; bottom:40%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #dac292 0%, #b3855a 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; }
.scn-lysistratus-wife-choice .garden-bed { position:absolute; bottom:20%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #7a9a5e 0%, #5a7a3e 100%); border-radius: 30% 30% 0 0; }
.scn-lysistratus-wife-choice .man { position:absolute; bottom:28%; left:35%; width:22px; height:48px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lswch-man 5s ease-in-out infinite; }
.scn-lysistratus-wife-choice .woman { position:absolute; bottom:28%; left:55%; width:20px; height:46px; background: linear-gradient(180deg, #b0855a 0%, #704a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lswch-woman 5s ease-in-out infinite; }
.scn-lysistratus-wife-choice .ring-glow { position:absolute; bottom:35%; left:47%; width:12px; height:12px; background: radial-gradient(circle, #ffe080 0%, #d4a040 60%, transparent 100%); border-radius:50%; animation: lswch-ring 3s ease-in-out infinite alternate; }
.scn-lysistratus-wife-choice .flower { position:absolute; bottom:30%; left:45%; width:8px; height:8px; background: #c8553d; border-radius:50%; box-shadow: 0 0 6px 2px rgba(200,85,61,.5); animation: lswch-flower 6s ease-in-out infinite; }
@keyframes lswch-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes lswch-man { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lswch-woman { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lswch-ring { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.5); opacity:1 } 100% { transform: scale(1); opacity:.7 } }
@keyframes lswch-flower { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(10deg) } 100% { transform: translateY(0) rotate(0deg) } }

.scn-marina-skill {
  background: linear-gradient(180deg, #b8c8d8 0%, #d4c4a8 50%, #a8946a 100%),
              radial-gradient(ellipse at 20% 60%, #fceabb 0%, transparent 50%);
}
.scn-marina-skill .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c8b898 0%, #a88868 100%); }
.scn-marina-skill .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #988868 0%, #786848 100%); }
.scn-marina-skill .window { position:absolute; top:15%; left:10%; width:100px; height:80px; background: linear-gradient(180deg, #b8d4e8 0%, #d0e0f0 100%); border: 4px solid #6a5a4a; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,235,180,.4); animation: maski-window 14s ease-in-out infinite alternate; }
.scn-marina-skill .bed { position:absolute; bottom:20%; left:20%; right:20%; height:60px; background: linear-gradient(180deg, #b08a6a 0%, #8a6a4a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; }
.scn-marina-skill .king { position:absolute; bottom:22%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: maski-king 8s ease-in-out infinite; }
.scn-marina-skill .marina { position:absolute; bottom:25%; left:60%; width:18px; height:48px; background: linear-gradient(180deg, #b0855a 0%, #704a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: maski-marina 6s ease-in-out infinite; }
.scn-marina-skill .music-notes { position:absolute; top:20%; left:55%; width:12px; height:12px; background: radial-gradient(circle, #f0c060 0%, transparent 100%); border-radius:50%; animation: maski-notes 4s ease-in-out infinite; filter: blur(1px); }
.scn-marina-skill .halo { position:absolute; top:25%; left:58%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,235,180,.3) 0%, transparent 70%); border-radius:50%; animation: maski-halo 7s ease-in-out infinite alternate; }
@keyframes maski-window { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes maski-king { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes maski-marina { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes maski-notes { 0% { transform: translateY(0) scale(1); opacity:.8 } 25% { transform: translateY(-10px) scale(1.2); opacity:1 } 50% { transform: translateY(-20px) scale(1.5); opacity:.6 } 75% { transform: translateY(-30px) scale(1.2); opacity:.3 } 100% { transform: translateY(0) scale(1); opacity:.8 } }
@keyframes maski-halo { 0% { transform: scale(1); opacity:.3 } 50% { transform: scale(1.3); opacity:.6 } 100% { transform: scale(1); opacity:.3 } }

/* thaliard-false-message */
.scn-thaliard-false-message {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d9c8a8 40%, #b89a7a 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e7 0%, transparent 70%);
}
.scn-thaliard-false-message .interior-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8dcc8 0%, #cbb89a 100%); opacity: 0.6;
}
.scn-thaliard-false-message .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b5940 0%, #4a3d2c 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-thaliard-false-message .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(135deg, #d9c8a8 0%, #b89a7a 50%, #a08060 100%);
}
.scn-thaliard-false-message .window {
  position: absolute; top: 20%; left: 60%; width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 30%, #fff8e0 0%, #c8b898 70%, #8a7a5a 100%);
  border: 4px solid #4a3d2c; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,248,224,0.3);
  animation: tfm-glow 5s ease-in-out infinite alternate;
}
.scn-thaliard-false-message .table {
  position: absolute; bottom: 25%; left: 35%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #5a4a34 0%, #3a2e1e 100%);
  border-radius: 4px; transform: skewX(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-thaliard-false-message .scroll {
  position: absolute; bottom: 30%; left: 42%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 2px; transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tfm-scroll 8s ease-in-out infinite;
}
.scn-thaliard-false-message .messenger {
  position: absolute; bottom: 28%; left: 25%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3725 70%, #4a1e14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tfm-stand 4s ease-in-out infinite alternate;
}
.scn-thaliard-false-message .shadow {
  position: absolute; bottom: 29%; left: 20%; width: 50px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: tfm-shadow 4s ease-in-out infinite alternate;
}
@keyframes tfm-glow {
  0% { box-shadow: inset 0 0 10px rgba(255,248,224,0.2); opacity: 0.8; }
  50% { box-shadow: inset 0 0 30px rgba(255,248,224,0.6); opacity: 1; }
  100% { box-shadow: inset 0 0 15px rgba(255,248,224,0.3); opacity: 0.85; }
}
@keyframes tfm-scroll {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-1px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes tfm-stand {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes tfm-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(0.9); opacity: 0.3; }
  100% { transform: scaleX(1); opacity: 0.4; }
}

/* tarsus-famine */
.scn-tarsus-famine {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 20%, #3a3a5a 0%, transparent 70%);
}
.scn-tarsus-famine .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #202030 0%, #111122 100%); opacity: 0.7;
}
.scn-tarsus-famine .window-overcast {
  position: absolute; top: 15%; left: 65%; width: 50px; height: 70px;
  background: radial-gradient(circle at 50% 40%, #5a5a7a 0%, #3a3a5a 70%, #1a1a3a 100%);
  border: 3px solid #2a2a3a; border-radius: 3px;
  box-shadow: inset 0 0 30px rgba(90,90,122,0.3);
  animation: tsf-glow 20s ease-in-out infinite alternate;
}
.scn-tarsus-famine .figure-cleon {
  position: absolute; bottom: 30%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 40%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsf-figure 12s ease-in-out infinite;
}
.scn-tarsus-famine .figure-dionyza {
  position: absolute; bottom: 30%; left: 45%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsf-figure 14s ease-in-out infinite reverse;
}
.scn-tarsus-famine .table {
  position: absolute; bottom: 28%; left: 35%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #3a3030 0%, #1a1515 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-tarsus-famine .bowl {
  position: absolute; bottom: 32%; left: 42%; width: 20px; height: 10px;
  background: radial-gradient(ellipse, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 20% 20%;
  transform: scale(0.95);
  box-shadow: inset 0 0 4px rgba(255,255,255,0.05);
}
.scn-tarsus-famine .shadow {
  position: absolute; bottom: 29%; left: 20%; width: 60px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: tsf-shadow 12s ease-in-out infinite;
}
@keyframes tsf-glow {
  0% { box-shadow: inset 0 0 20px rgba(90,90,122,0.1); opacity: 0.6; }
  50% { box-shadow: inset 0 0 40px rgba(90,90,122,0.3); opacity: 0.8; }
  100% { box-shadow: inset 0 0 25px rgba(90,90,122,0.15); opacity: 0.7; }
}
@keyframes tsf-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes tsf-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(0.9); opacity: 0.3; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

/* tarsus-hunger-pangs */
.scn-tarsus-hunger-pangs {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 60%, #050510 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a3a 0%, transparent 70%);
}
.scn-tarsus-hunger-pangs .wall-close {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, #12121e 0%, #0a0a14 50%, #06060e 100%);
}
.scn-tarsus-hunger-pangs .figure.slumped {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #1a1a28 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: rotate(15deg);
  animation: tsh-slump 8s ease-in-out infinite;
}
.scn-tarsus-hunger-pangs .empty-hand {
  position: absolute; bottom: 32%; left: 42%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #1a1a28 0%, #0a0a14 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-20deg);
  animation: tsh-hand 6s ease-in-out infinite alternate;
}
.scn-tarsus-hunger-pangs .bowl-empty {
  position: absolute; bottom: 30%; left: 44%; width: 18px; height: 8px;
  background: radial-gradient(ellipse, #111122 0%, #050510 100%);
  border-radius: 50% 50% 20% 20%;
  transform: scale(0.9);
  box-shadow: inset 0 0 4px rgba(0,0,0,0.8);
}
.scn-tarsus-hunger-pangs .shadow-deep {
  position: absolute; bottom: 24%; left: 28%; width: 70px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  animation: tsh-shadow 8s ease-in-out infinite;
}
@keyframes tsh-slump {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(13deg) translateY(2px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes tsh-hand {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-22deg) translateY(1px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes tsh-shadow {
  0% { transform: scaleX(1); opacity: 0.7; }
  50% { transform: scaleX(0.8); opacity: 0.5; }
  100% { transform: scaleX(1); opacity: 0.7; }
}

/* tarsus-past-prosperity */
.scn-tarsus-past-prosperity {
  background:
    linear-gradient(180deg, #c0c8d0 0%, #a0a8b8 50%, #8088a0 100%),
    radial-gradient(ellipse at 50% 50%, #d0d8e0 0%, transparent 70%);
}
.scn-tarsus-past-prosperity .sky-overcast {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #b0b8c8 0%, #9098a8 100%);
  opacity: 0.7;
}
.scn-tarsus-past-prosperity .clouds {
  position: absolute; top: 10%; left: 0; width: 100%; height: 20%;
  background: radial-gradient(ellipse at 20% 50%, #d0d8e0 0%, transparent 60%),
              radial-gradient(ellipse at 70% 30%, #c0c8d8 0%, transparent 50%);
  filter: blur(8px);
  animation: tsp-clouds 40s linear infinite;
}
.scn-tarsus-past-prosperity .tower-left {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 100%);
  border-radius: 4px 4px 0 0;
  transform: scaleY(0.9);
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
}
.scn-tarsus-past-prosperity .tower-right {
  position: absolute; bottom: 30%; right: 20%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #9a9aaa 0%, #7a7a8a 100%);
  border-radius: 4px 4px 0 0;
  transform: scaleY(0.9);
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.2);
}
.scn-tarsus-past-prosperity .street {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a6a7a 0%, #5a5a6a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
.scn-tarsus-past-prosperity .figure-memory {
  position: absolute; bottom: 28%; left: 48%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsp-figure 10s ease-in-out infinite;
}
.scn-tarsus-past-prosperity .flag {
  position: absolute; top: 20%; left: 30%; width: 12px; height: 18px;
  background: #b87878;
  border-radius: 2px;
  transform-origin: left bottom;
  animation: tsp-flag 6s ease-in-out infinite alternate;
}
@keyframes tsp-clouds {
  0% { transform: translateX(0); opacity: 0.6; }
  50% { transform: translateX(-20px); opacity: 0.8; }
  100% { transform: translateX(0); opacity: 0.6; }
}
@keyframes tsp-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tsp-flag {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(0deg); }
}

.scn-tyre-council {
  background: linear-gradient(180deg, #1e1612 0%, #2c1f18 40%, #3d2a20 100%),
              radial-gradient(ellipse at 50% 70%, #4d3328 0%, transparent 70%);
}
.scn-tyre-council .throne { position:absolute; bottom:15%; left:33%; width:30%; height:40%; background: linear-gradient(180deg, #5c3d2b 0%, #2a1810 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,.6); }
.scn-tyre-council .king { position:absolute; bottom:28%; left:38%; width:20%; height:34%; background: radial-gradient(ellipse 70% 80% at 50% 100%, #1f120c 0%, #0a0402 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc-king 5s ease-in-out infinite; }
.scn-tyre-council .table { position:absolute; bottom:10%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #4d3020 0%, #2a1810 100%); border-radius: 6%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-tyre-council .candle-1 { position:absolute; bottom:18%; left:25%; width:1.5%; height:8%; background: linear-gradient(180deg, #f5d090 0%, #b07a40 100%); border-radius: 20%; box-shadow: 0 0 12px 4px #ffd080, 0 0 24px 8px rgba(255,208,128,.3); animation: tc-candle 3s ease-in-out infinite alternate; }
.scn-tyre-council .candle-2 { position:absolute; bottom:18%; left:40%; width:1.5%; height:6%; background: linear-gradient(180deg, #f5d090 0%, #b07a40 100%); border-radius: 20%; box-shadow: 0 0 10px 3px #ffd080, 0 0 20px 6px rgba(255,208,128,.2); animation: tc-candle 2.5s ease-in-out infinite alternate-reverse; }
.scn-tyre-council .shadow { position:absolute; bottom:5%; left:10%; width:80%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.8) 0%, transparent 70%); filter: blur(8px); }
.scn-tyre-council .scepter { position:absolute; bottom:30%; left:55%; width:2%; height:25%; background: linear-gradient(180deg, #b88a50 0%, #5c3a20 100%); border-radius: 4px; transform: rotate(15deg); transform-origin: bottom; box-shadow: inset 0 2px 4px #e0b070; animation: tc-scepter 6s ease-in-out infinite; }
@keyframes tc-king { 0% { transform: rotate(0); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(0); } }
@keyframes tc-candle { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.85; transform: scaleY(0.95); } }
@keyframes tc-scepter { 0% { transform: rotate(10deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(10deg); } }

.scn-antiochus-death-tidings {
  background: linear-gradient(180deg, #100b0a 0%, #1a1210 30%, #2d1f1a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2620 0%, transparent 60%);
}
.scn-antiochus-death-tidings .window { position:absolute; inset: 15% 25% 45% 25%; background: linear-gradient(135deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 8%; border: 4px solid #0a0806; box-shadow: inset 0 0 30px rgba(0,0,0,.7); overflow:hidden; }
.scn-antiochus-death-tidings .figure { position:absolute; bottom:18%; left:30%; width:20%; height:45%; background: linear-gradient(180deg, #0f0a08 0%, #050202 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ad-figure 8s ease-in-out infinite; }
.scn-antiochus-death-tidings .scroll { position:absolute; bottom:25%; left:35%; width:12%; height:4%; background: linear-gradient(180deg, #e8d0a0 0%, #c0a070 100%); border-radius: 4px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: ad-scroll 6s ease-in-out infinite alternate; }
.scn-antiochus-death-tidings .candle { position:absolute; bottom:22%; left:55%; width:2%; height:10%; background: linear-gradient(180deg, #f5d090 0%, #b07a40 100%); border-radius: 20%; box-shadow: 0 0 16px 6px #ffd080, 0 0 32px 12px rgba(255,208,128,.4); animation: ad-candle 2s ease-in-out infinite alternate; }
.scn-antiochus-death-tidings .shadow { position:absolute; bottom:5%; left:10%; width:80%; height:25%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.9) 0%, transparent 70%); filter: blur(6px); }
.scn-antiochus-death-tidings .beam { position:absolute; inset: 0 30% 50% 30%; background: linear-gradient(180deg, rgba(200,190,160,0.15) 0%, transparent 100%); clip-path: polygon(40% 0, 60% 0, 70% 100%, 30% 100%); animation: ad-beam 12s ease-in-out infinite alternate; }
@keyframes ad-figure { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-8px) rotate(-4deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ad-scroll { 0% { transform: rotate(-8deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-8deg); } }
@keyframes ad-candle { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.08); } 100% { opacity: 0.85; transform: scaleY(0.95); } }
@keyframes ad-beam { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(0.9); } 100% { opacity: 0.3; transform: scaleX(1); } }

.scn-lords-grievance {
  background: linear-gradient(180deg, #1a1210 0%, #2c1f18 50%, #3d2a20 100%),
              radial-gradient(ellipse at 30% 60%, #4d3328 0%, transparent 60%);
}
.scn-lords-grievance .lord-1 { position:absolute; bottom:10%; left:12%; width:16%; height:35%; background: linear-gradient(180deg, #1a0e0a 0%, #0a0504 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom; animation: lg-lord 5s ease-in-out infinite; }
.scn-lords-grievance .lord-2 { position:absolute; bottom:10%; left:35%; width:16%; height:40%; background: linear-gradient(180deg, #1f120c 0%, #0a0504 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom; animation: lg-lord 6s ease-in-out infinite 1s; }
.scn-lords-grievance .lord-3 { position:absolute; bottom:10%; left:58%; width:16%; height:38%; background: linear-gradient(180deg, #1a0e0a 0%, #0a0504 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom; animation: lg-lord 5.5s ease-in-out infinite 2s; }
.scn-lords-grievance .table { position:absolute; bottom:8%; left:18%; width:64%; height:6%; background: linear-gradient(180deg, #4d3020 0%, #2a1810 100%); border-radius: 4%; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-lords-grievance .goblet { position:absolute; bottom:14%; left:46%; width:4%; height:8%; background: linear-gradient(180deg, #b88a50 0%, #5c3a20 100%); border-radius: 4px 4px 30% 30%; box-shadow: 0 0 8px 2px rgba(180,140,80,.3); animation: lg-goblet 4s ease-in-out infinite; }
.scn-lords-grievance .basin { position:absolute; bottom:7%; left:40%; width:20%; height:4%; background: linear-gradient(180deg, #2a1c14 0%, #1a0e0a 100%); border-radius: 50%; box-shadow: inset 0 2px 6px rgba(0,0,0,.7); overflow:hidden; }
@keyframes lg-lord { 0% { transform: rotate(0); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0); } }
@keyframes lg-goblet { 0% { transform: rotate(0); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0); } }

.scn-succession-doubt {
  background: linear-gradient(180deg, #0c0807 0%, #1a1210 40%, #2d1f1a 100%),
              radial-gradient(ellipse at 50% 60%, #3a2620 0%, transparent 70%);
}
.scn-succession-doubt .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #050202 100%); }
.scn-succession-doubt .bg-mid { position:absolute; inset: 10% 10% 30% 10%; background: radial-gradient(ellipse at 50% 0%, #2a1c14 0%, transparent 70%); }
.scn-succession-doubt .crown { position:absolute; top:10%; left:45%; width:10%; height:8%; background: linear-gradient(180deg, #b88a50 0%, #5c3a20 100%); border-radius: 50% 50% 4px 4px; clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); box-shadow: 0 0 20px 4px #f0c060; animation: sd-crown 4s ease-in-out infinite alternate; }
.scn-succession-doubt .beam { position:absolute; inset: 0 40% 0 40%; background: linear-gradient(180deg, rgba(200,180,140,0.2) 0%, transparent 100%); clip-path: polygon(30% 0, 70% 0, 60% 100%, 40% 100%); animation: sd-beam 8s ease-in-out infinite alternate; }
.scn-succession-doubt .rubble { position:absolute; width:8%; height:6%; background: linear-gradient(180deg, #3d2a20 0%, #1a1010 100%); border-radius: 10%; box-shadow: 0 2px 6px rgba(0,0,0,.6); }
.scn-succession-doubt .r1 { bottom:20%; left:25%; transform: rotate(30deg); animation: sd-rubble 10s linear infinite; }
.scn-succession-doubt .r2 { bottom:15%; left:60%; width:12%; height:4%; transform: rotate(-20deg); animation: sd-rubble 12s linear infinite 3s; }
.scn-succession-doubt .shadow { position:absolute; bottom:0; left:0; width:100%; height:30%; background: linear-gradient(0deg, rgba(0,0,0,.8) 0%, transparent 100%); }
@keyframes sd-crown { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(20px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes sd-beam { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes sd-rubble { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(40px) rotate(360deg); } }

/* marina-honest */
.scn-marina-honest {
  background: linear-gradient(180deg, #2c1b12 0%, #1f110c 40%, #3a281e 70%, #1a0e08 100%),
              radial-gradient(ellipse at 30% 60%, #4a3425 0%, transparent 60%);
}
.scn-marina-honest .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a251a 0%, #2c1b12 70%, #1f110c 100%);
  animation: mh-wall 15s ease-in-out infinite alternate;
}
.scn-marina-honest .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a0e08 0%, #2c1b12 60%, #3a251a 100%);
  border-radius: 20% 80% 0 0 / 10% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-marina-honest .table {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5e3f2e 0%, #3a251a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-marina-honest .candle {
  position: absolute; bottom: 28%; left: 44%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d0a0 0%, #d4a06a 60%, #8a5a3a 100%);
  border-radius: 4px 4px 2px 2px;
  animation: mh-candle-body 4s ease-in-out infinite alternate;
}
.scn-marina-honest .candle-glow {
  position: absolute; bottom: 43%; left: 44%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #e8a050 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mh-glow 3s ease-in-out infinite alternate, mh-flicker 0.4s infinite;
}
.scn-marina-honest .figure-woman {
  position: absolute; bottom: 22%; left: 38%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3020 0%, #2c1b12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh-figure 6s ease-in-out infinite;
}
.scn-marina-honest .shadow-chair {
  position: absolute; bottom: 20%; left: 58%; width: 40px; height: 50px;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.3) 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  filter: blur(3px);
  animation: mh-chair 12s ease-in-out infinite;
}
@keyframes mh-wall { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes mh-candle-body { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(0.98) translateY(1px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes mh-glow { 0% { opacity: 0.6; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(1) } }
@keyframes mh-flicker { 0%,100% { opacity: 0.9 } 50% { opacity: 0.7 } }
@keyframes mh-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(0) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-2px) rotate(0) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes mh-chair { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.5; transform: scale(1.02) } 100% { opacity: 0.3; transform: scale(1) } }

/* boult-reports */
.scn-boult-reports {
  background: linear-gradient(180deg, #1f1410 0%, #2c1f18 40%, #3a2a20 100%),
              radial-gradient(ellipse at 70% 40%, #4a3425 0%, transparent 60%);
}
.scn-boult-reports .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a0e08 0%, #2c1b12 100%);
  animation: br-wall 10s ease-in-out infinite;
}
.scn-boult-reports .wood-counter {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 60px;
  background: linear-gradient(180deg, #5e3f2e 0%, #3a251a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-boult-reports .boult-figure {
  position: absolute; bottom: 30%; left: 20%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a3020 0%, #2c1b12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-figure 3s ease-in-out infinite;
}
.scn-boult-reports .boult-arm {
  position: absolute; bottom: 55%; left: 18%; width: 40px; height: 8px;
  background: linear-gradient(180deg, #3a251a 0%, #2c1b12 100%);
  border-radius: 4px;
  transform-origin: right center;
  animation: br-arm 0.8s ease-in-out infinite alternate;
}
.scn-boult-reports .listener-shadow {
  position: absolute; bottom: 28%; right: 15%; width: 50px; height: 80px;
  background: rgba(0,0,0,0.4);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  filter: blur(4px);
  animation: br-shadow 5s ease-in-out infinite;
}
.scn-boult-reports .lantern {
  position: absolute; bottom: 55%; left: 70%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #a08040 0%, #6a5020 100%);
  border-radius: 4px;
  animation: br-lantern 4s ease-in-out infinite;
}
.scn-boult-reports .lantern-glow {
  position: absolute; bottom: 58%; left: 67%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0c060 0%, #d08030 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: br-glow 2s ease-in-out infinite alternate;
}
.scn-boult-reports .drapes {
  position: absolute; top: 5%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2c1b12 0%, transparent 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
@keyframes br-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes br-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(0) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(0) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes br-arm { 0% { transform: rotate(-30deg) } 100% { transform: rotate(20deg) } }
@keyframes br-shadow { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.5; transform: scale(1.05) } 100% { opacity: 0.3; transform: scale(1) } }
@keyframes br-lantern { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }
@keyframes br-glow { 0% { opacity: 0.5; transform: scale(0.8) } 100% { opacity: 1; transform: scale(1.2) } }

/* boult-listened */
.scn-boult-listened {
  background: linear-gradient(180deg, #1f1812 0%, #2c2218 40%, #3a2e22 100%),
              radial-gradient(ellipse at 40% 50%, #4a3a2a 0%, transparent 60%);
}
.scn-boult-listened .wall-panel {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2c1f18 0%, #1f1410 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: bl-wall 12s ease-in-out infinite;
}
.scn-boult-listened .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a0e08 0%, #2c1b12 100%);
  border-top: 2px solid #3a251a;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-boult-listened .listener-figure {
  position: absolute; bottom: 25%; left: 30%; width: 32px; height: 75px;
  background: linear-gradient(180deg, #4a3425 0%, #2c1f18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bl-figure 4s ease-in-out infinite;
}
.scn-boult-listened .listener-head {
  position: absolute; bottom: 70%; left: 28%; width: 20px; height: 20px;
  background: radial-gradient(circle at 40% 40%, #5e4432 0%, #3a251a 100%);
  border-radius: 50%;
  animation: bl-head 3s ease-in-out infinite alternate;
}
.scn-boult-listened .cup {
  position: absolute; bottom: 30%; left: 55%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 4px 4px 8px 8px;
  animation: bl-cup 5s ease-in-out infinite;
}
.scn-boult-listened .cup-shadow {
  position: absolute; bottom: 28%; left: 53%; width: 24px; height: 6px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-boult-listened .doorway {
  position: absolute; top: 10%; right: 5%; width: 80px; height: 60%;
  background: linear-gradient(180deg, #1a0e08 0%, #0f0704 100%);
  border: 2px solid #2c1b12;
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: bl-door 20s ease-in-out infinite;
}
@keyframes bl-wall { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes bl-figure { 0% { transform: translateX(0) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) } }
@keyframes bl-head { 0% { transform: rotate(-5deg); opacity: 0.8 } 50% { transform: rotate(5deg); opacity: 1 } 100% { transform: rotate(-5deg); opacity: 0.8 } }
@keyframes bl-cup { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes bl-door { 0% { opacity: 0.6; transform: scaleX(1) } 50% { opacity: 0.9; transform: scaleX(1.02) } 100% { opacity: 0.6; transform: scaleX(1) } }

/* bawd-veroles */
.scn-bawd-veroles {
  background: linear-gradient(180deg, #1a1814 0%, #2c2620 40%, #3a3228 100%),
              radial-gradient(ellipse at 60% 70%, #4a4035 0%, transparent 60%);
}
.scn-bawd-veroles .wall-sick {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2c2218 0%, #1f1812 100%);
  animation: bv-wall 18s ease-in-out infinite;
}
.scn-bawd-veroles .bed-frame {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 55%;
  background: linear-gradient(180deg, #5e4432 0%, #3a251a 100%);
  border-radius: 8px 8px 12px 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
}
.scn-bawd-veroles .blanket {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 40%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%);
  border-radius: 12px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: bv-blanket 10s ease-in-out infinite;
}
.scn-bawd-veroles .sick-figure {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a30 0%, #2c2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: bv-figure 7s ease-in-out infinite;
}
.scn-bawd-veroles .pillow {
  position: absolute; bottom: 45%; left: 25%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #8a7060 0%, #6a5040 100%);
  border-radius: 30%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.3);
  animation: bv-pillow 9s ease-in-out infinite;
}
.scn-bawd-veroles .medicine-bottle {
  position: absolute; bottom: 15%; left: 65%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 4px 4px 2px 2px;
  animation: bv-bottle 5s ease-in-out infinite;
}
.scn-bawd-veroles .candle-flicker {
  position: absolute; bottom: 50%; left: 50%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e8b080 0%, #a06030 100%);
  border-radius: 2px 2px 0 0;
  animation: bv-candle 3s ease-in-out infinite alternate;
}
.scn-bawd-veroles .shadow-veroles {
  position: absolute; bottom: 5%; right: 5%; width: 60px; height: 80px;
  background: rgba(0,0,0,0.4);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  filter: blur(5px);
  animation: bv-shadow 8s ease-in-out infinite;
}
@keyframes bv-wall { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes bv-blanket { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes bv-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(2px) rotate(0) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes bv-pillow { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes bv-bottle { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes bv-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) translateY(1px) } 100% { transform: scaleY(1) } }
@keyframes bv-shadow { 0% { opacity: 0.2; transform: translateX(0) } 50% { opacity: 0.4; transform: translateX(3px) } 100% { opacity: 0.2; transform: translateX(0) } }

/* Scene: thaisa-vestal-decision — calm bright interior, Diana's temple */
.scn-thaisa-vestal-decision { background: linear-gradient(135deg, #f4e4c1 0%, #d6b78e 40%, #b88a5e 100%), radial-gradient(ellipse at 30% 20%, #ffe6b0 0%, transparent 60%); }
.scn-thaisa-vestal-decision .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #ffe5c4 0%, #e6c8a0 50%, #c9a77a 100%); mix-blend-mode: overlay; animation: thaisa-warm 12s ease-in-out infinite alternate; }
.scn-thaisa-vestal-decision .column { position:absolute; bottom:0; width:18px; height:70%; background: linear-gradient(180deg, #b5956e 0%, #8a6b48 100%); box-shadow: 6px 0 12px rgba(0,0,0,.2); border-radius: 4px; }
.scn-thaisa-vestal-decision .column.left { left:15%; animation: thaisa-column 8s ease-in-out infinite; }
.scn-thaisa-vestal-decision .column.right { right:15%; animation: thaisa-column 8s ease-in-out infinite reverse; }
.scn-thaisa-vestal-decision .altar { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:80px; height:30px; background: linear-gradient(180deg, #b8916a 0%, #7a5e3e 100%); border-radius: 8% 8% 2% 2%; box-shadow: 0 -4px 20px rgba(255,200,100,.3), inset 0 4px 6px rgba(0,0,0,.3); animation: thaisa-altar 14s ease-in-out infinite; }
.scn-thaisa-vestal-decision .figure { position:absolute; bottom:28%; left:44%; width:20px; height:44px; background: linear-gradient(180deg, #f0e0c6 0%, #c8b090 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: thaisa-figure 6s ease-in-out infinite; }
.scn-thaisa-vestal-decision .window-light { position:absolute; top:20%; left:30%; width:50px; height:40px; background: radial-gradient(ellipse, #ffeaa0 0%, transparent 70%); border-radius: 20%; box-shadow: 0 0 40px 20px rgba(255,234,160,.4); animation: thaisa-light 4s ease-in-out infinite alternate; }
.scn-thaisa-vestal-decision .incense { position:absolute; top:10%; left:42%; width:8px; height:30px; background: linear-gradient(180deg, rgba(200,180,160,.4) 0%, transparent 100%); filter: blur(4px); border-radius: 50%; animation: thaisa-incense 7s ease-in-out infinite; }
@keyframes thaisa-warm  { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.5; } }
@keyframes thaisa-column { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes thaisa-altar  { 0% { filter: brightness(1); } 50% { filter: brightness(1.15); } 100% { filter: brightness(1); } }
@keyframes thaisa-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg); } 75% { transform: translateX(-3px) rotate(2deg); } }
@keyframes thaisa-light { 0% { opacity:.6; transform: scale(1); } 100% { opacity:1; transform: scale(1.1); } }
@keyframes thaisa-incense{ 0% { transform: translateY(0) scaleY(1); opacity:.3; } 50% { transform: translateY(-10px) scaleY(1.5); opacity:.6; } 100% { transform: translateY(0) scaleY(1); opacity:.3; } }

/* Scene: gower-narrative-time — calm dark night, ship at sea */
.scn-gower-narrative-time { background: linear-gradient(180deg, #0b1428 0%, #1a2744 50%, #2a3a5e 100%), radial-gradient(ellipse at 50% 20%, #2a3a5e 0%, transparent 70%); }
.scn-gower-narrative-time .sky-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0b1428 0%, #141f3a 60%, #1e2e4e 100%); animation: gower-sky 20s ease-in-out infinite alternate; }
.scn-gower-narrative-time .sea { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a4a 0%, #0e1a2e 100%); border-radius: 80% 70% 0 0 / 60% 50% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.5); animation: gower-sea 15s ease-in-out infinite; }
.scn-gower-narrative-time .ship { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:80px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 20% 20% 60% 60% / 20% 20% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: gower-ship 10s ease-in-out infinite; }
.scn-gower-narrative-time .moon { position:absolute; top:10%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #e8e0c0 0%, #c8b090 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(200,176,144,.3); animation: gower-moon 12s ease-in-out infinite alternate; }
.scn-gower-narrative-time .star { position:absolute; width:4px; height:4px; background: radial-gradient(circle, #ffffff 0%, transparent 100%); border-radius: 50%; }
.scn-gower-narrative-time .star-1 { top:15%; left:10%; animation: gower-star 6s ease-in-out infinite; }
.scn-gower-narrative-time .star-2 { top:25%; left:40%; animation: gower-star 8s ease-in-out infinite 3s; }
.scn-gower-narrative-time .city-glow { position:absolute; bottom:25%; left:20%; width:40px; height:20px; background: radial-gradient(ellipse, #4a6a8a 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: gower-glow 18s ease-in-out infinite; }
@keyframes gower-sky  { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes gower-sea  { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes gower-ship { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg); } 75% { transform: translateX(-52%) rotate(-2deg); } }
@keyframes gower-moon { 0% { filter: brightness(.8); } 50% { filter: brightness(1.1); } 100% { filter: brightness(.9); } }
@keyframes gower-star { 0%,100% { opacity:.3; transform: scale(1); } 50% { opacity:1; transform: scale(1.5); } }
@keyframes gower-glow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.2); } 100% { opacity:.3; transform: scale(1); } }

/* Scene: philoten-envy — tense dark interior, envy and shadow */
.scn-philoten-envy { background: linear-gradient(180deg, #1a0e1a 0%, #2a142a 50%, #3a1e2a 100%), radial-gradient(ellipse at 80% 40%, #3a1e2a 0%, transparent 60%); }
.scn-philoten-envy .bg-tense { position:absolute; inset:0; background: linear-gradient(135deg, #2a142a 0%, #3a1e2a 40%, #1a0e1a 100%); mix-blend-mode: multiply; animation: philoten-bg 4s ease-in-out infinite alternate; }
.scn-philoten-envy .figure-shadow { position:absolute; bottom:20%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #0a0a1a 0%, #000000 100%); border-radius: 40% 60% 30% 50% / 60% 50% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,.8); transform-origin: bottom center; animation: philoten-shadow 2s ease-in-out infinite; }
.scn-philoten-envy .figure-loom { position:absolute; bottom:25%; right:25%; width:50px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1414 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: philoten-loom 5s ease-in-out infinite; }
.scn-philoten-envy .envy-glow { position:absolute; top:40%; left:50%; transform:translateX(-50%); width:25px; height:25px; background: radial-gradient(circle, #8a3a2a 0%, transparent 60%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(138,58,42,.5); animation: philoten-glow 1.5s ease-in-out infinite; }
.scn-philoten-envy .blade { position:absolute; bottom:30%; left:45%; width:4px; height:30px; background: linear-gradient(180deg, #b0a0a0 0%, #706060 100%); border-radius: 10% 10% 50% 50%; transform: rotate(15deg); animation: philoten-blade 3s ease-in-out infinite; }
.scn-philoten-envy .shard { position:absolute; width:6px; height:6px; background: #4a2a2a; border-radius: 2px; }
.scn-philoten-envy .shard-1 { top:20%; left:10%; transform: rotate(30deg); animation: philoten-shard 7s linear infinite; }
.scn-philoten-envy .shard-2 { top:30%; left:70%; transform: rotate(-20deg); animation: philoten-shard 9s linear infinite 2s; }
@keyframes philoten-bg    { 0% { opacity:.4; } 50% { opacity:.8; } 100% { opacity:.4; } }
@keyframes philoten-shadow { 0%,100% { transform: rotate(-3deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.05); } }
@keyframes philoten-loom  { 0% { transform: translateY(0); } 25% { transform: translateY(2px); } 75% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes philoten-glow  { 0% { opacity:.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:.5; transform: scale(1); } }
@keyframes philoten-blade { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(20deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes philoten-shard { 0% { transform: rotate(var(--rot,30deg)) translateY(0); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform: rotate(var(--rot,30deg)) translateY(-100px); opacity:0; } }

/* Scene: marina-excels — calm dark, serene figure with book */
.scn-marina-excels { background: linear-gradient(180deg, #0a1420 0%, #142238 50%, #1e3050 100%), radial-gradient(ellipse at 50% 60%, #1e3050 0%, transparent 70%); }
.scn-marina-excels .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0a1420 0%, #182c40 40%, #0e1e2e 100%); mix-blend-mode: overlay; animation: marina-bg 20s ease-in-out infinite alternate; }
.scn-marina-excels .halo { position:absolute; top:20%; left:50%; transform:translateX(-50%); width:60px; height:60px; background: radial-gradient(circle, #c8b8a0 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 50px 20px rgba(200,184,160,.2); animation: marina-halo 10s ease-in-out infinite alternate; }
.scn-marina-excels .figure-seated { position:absolute; bottom:20%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: marina-figure 8s ease-in-out infinite; }
.scn-marina-excels .book { position:absolute; bottom:22%; left:48%; width:18px; height:14px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 2px; transform: rotate(-5deg); animation: marina-book 12s ease-in-out infinite; }
.scn-marina-excels .candle { position:absolute; bottom:30%; left:30%; width:6px; height:20px; background: linear-gradient(180deg, #f0d0a0 0%, #b08050 100%); border-radius: 2px; box-shadow: 0 0 12px 6px rgba(240,208,160,.4); animation: marina-candle 4s ease-in-out infinite alternate; }
.scn-marina-excels .rays { position:absolute; top:0; left:30%; width:100px; height:100%; background: linear-gradient(90deg, transparent 0%, rgba(200,184,160,.05) 30%, transparent 70%); filter: blur(8px); animation: marina-rays 15s ease-in-out infinite; }
@keyframes marina-bg      { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.3; } }
@keyframes marina-halo    { 0% { opacity:.4; transform: scale(1) translateX(-50%); } 100% { opacity:.7; transform: scale(1.1) translateX(-45%); } }
@keyframes marina-figure  { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-1px); } 75% { transform: rotate(-2deg) translateY(-1px); } }
@keyframes marina-book    { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes marina-candle  { 0% { filter: brightness(.8); box-shadow: 0 0 10px 4px rgba(240,208,160,.3); } 100% { filter: brightness(1.2); box-shadow: 0 0 18px 8px rgba(240,208,160,.5); } }
@keyframes marina-rays    { 0% { opacity:.2; transform: translateX(0); } 50% { opacity:.4; transform: translateX(10px); } 100% { opacity:.2; transform: translateX(0); } }

/* Scene: helicanus-plea — dim interior, patient plea */
.scn-helicanus-plea {
  background: 
    radial-gradient(ellipse at 30% 60%, #2a1f1a 0%, transparent 50%),
    linear-gradient(180deg, #1a1220 0%, #2d1f30 30%, #1e1625 70%, #14101a 100%);
}
.scn-helicanus-plea .wall-deep {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1f28 0%, #1e1620 100%);
}
.scn-helicanus-plea .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1015 0%, #0e0a10 100%);
}
.scn-helicanus-plea .window-night {
  position: absolute; top: 15%; right: 12%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%);
  border: 3px solid #3a2a30; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,140,180,.15), 0 0 8px rgba(100,140,180,.08);
  animation: hp-window 12s ease-in-out infinite alternate;
}
.scn-helicanus-plea .figure-plea {
  position: absolute; bottom: 24%; left: 28%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a2028 0%, #1a1218 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hp-figure 6s ease-in-out infinite;
}
.scn-helicanus-plea .table-low {
  position: absolute; bottom: 18%; left: 24%; width: 70px; height: 10px;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1a12 100%);
  border-radius: 2px; transform: perspective(200px) rotateX(10deg);
}
.scn-helicanus-plea .candle-glow {
  position: absolute; bottom: 30%; left: 34%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 60%, #602010 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(255,180,80,.35), 0 0 60px 20px rgba(255,160,60,.12);
  animation: hp-candle 4s ease-in-out infinite alternate;
}
.scn-helicanus-plea .shadow-pool {
  position: absolute; bottom: 12%; left: 18%; width: 100px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: hp-shadow 8s ease-in-out infinite;
}
@keyframes hp-window {
  0% { opacity: .7; box-shadow: inset 0 0 20px rgba(100,140,180,.15), 0 0 8px rgba(100,140,180,.08); }
  50% { opacity: .85; box-shadow: inset 0 0 30px rgba(120,160,200,.2), 0 0 12px rgba(100,140,180,.12); }
  100% { opacity: .75; box-shadow: inset 0 0 20px rgba(100,140,180,.15), 0 0 8px rgba(100,140,180,.08); }
}
@keyframes hp-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-1px) rotate(.5deg); }
  60% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes hp-candle {
  0% { opacity: .85; box-shadow: 0 0 18px 6px rgba(255,180,80,.3), 0 0 50px 16px rgba(255,160,60,.1); }
  50% { opacity: 1; box-shadow: 0 0 28px 12px rgba(255,200,100,.4), 0 0 70px 24px rgba(255,180,80,.15); }
  100% { opacity: .9; box-shadow: 0 0 22px 8px rgba(255,180,80,.35), 0 0 55px 18px rgba(255,160,60,.12); }
}
@keyframes hp-shadow {
  0% { opacity: .6; transform: scaleX(1); }
  50% { opacity: .8; transform: scaleX(1.05); }
  100% { opacity: .6; transform: scaleX(1); }
}

/* Scene: lords-consent — dim chamber, unity */
.scn-lords-consent {
  background:
    radial-gradient(ellipse at 50% 40%, #2a2025 0%, #1a1218 40%, #0e0a10 100%),
    linear-gradient(180deg, #1a1420 0%, #221a28 30%, #1a1220 70%, #100c14 100%);
}
.scn-lords-consent .chamber-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1e1622 0%, #16101a 60%, #100c14 100%);
}
.scn-lords-consent .table-round {
  position: absolute; bottom: 22%; left: 50%; width: 120px; height: 14px;
  transform: translateX(-50%) perspective(300px) rotateX(15deg);
  background: linear-gradient(180deg, #3a2a28 0%, #2a1a18 100%);
  border-radius: 50% / 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-lords-consent .lord-left {
  position: absolute; bottom: 24%; left: 28%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #2a2228 0%, #1a1218 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lc-lord 7s ease-in-out infinite;
}
.scn-lords-consent .lord-right {
  position: absolute; bottom: 24%; right: 28%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #28202a 0%, #181018 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lc-lord 7s ease-in-out infinite 1.5s;
}
.scn-lords-consent .hands-clasp {
  position: absolute; bottom: 34%; left: 50%; width: 22px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2830 0%, #281820 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: lc-hands 4s ease-in-out infinite;
}
.scn-lords-consent .candle-center {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ffd080 0%, #c08040 50%, #602010 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 0 30px 12px rgba(255,180,80,.3), 0 0 80px 30px rgba(255,160,60,.1);
  animation: lc-candle 5s ease-in-out infinite alternate;
}
.scn-lords-consent .light-halo {
  position: absolute; bottom: 28%; left: 50%; width: 160px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, rgba(255,180,80,.08) 0%, transparent 60%);
  pointer-events: none;
  animation: lc-halo 6s ease-in-out infinite alternate;
}
@keyframes lc-lord {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-1px) rotate(.5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-.5deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes lc-hands {
  0% { transform: translateX(-50%) scaleY(1); opacity: .8; }
  30% { transform: translateX(-50%) scaleY(1.1); opacity: 1; }
  60% { transform: translateX(-50%) scaleY(.95); opacity: .9; }
  100% { transform: translateX(-50%) scaleY(1); opacity: .8; }
}
@keyframes lc-candle {
  0% { opacity: .8; box-shadow: 0 0 25px 10px rgba(255,180,80,.25), 0 0 70px 25px rgba(255,160,60,.08); }
  50% { opacity: 1; box-shadow: 0 0 35px 15px rgba(255,200,100,.35), 0 0 90px 35px rgba(255,180,80,.12); }
  100% { opacity: .85; box-shadow: 0 0 28px 12px rgba(255,180,80,.28), 0 0 75px 28px rgba(255,160,60,.1); }
}
@keyframes lc-halo {
  0% { opacity: .6; }
  50% { opacity: .9; }
  100% { opacity: .7; }
}

/* Scene: simonides-letter — bright interior, morning */
.scn-simonides-letter {
  background:
    radial-gradient(ellipse at 50% 30%, #fff8e8 0%, #f0e0c0 40%, #d0c0a0 100%),
    linear-gradient(180deg, #fff4e0 0%, #f8e8c8 40%, #e0d0b0 100%);
}
.scn-simonides-letter .wall-bright {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #fff4e0 0%, #f0e0c0 80%, #e0d0b0 100%);
}
.scn-simonides-letter .window-sun {
  position: absolute; top: 12%; right: 15%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #fff8e0 0%, #f0e8c0 100%);
  border: 4px solid #c8b898; border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(255,220,120,.3), 0 0 20px rgba(255,200,80,.15);
  animation: sl-window 10s ease-in-out infinite alternate;
}
.scn-simonides-letter .chair-back {
  position: absolute; bottom: 20%; left: 32%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform: perspective(200px) rotateY(5deg);
}
.scn-simonides-letter .figure-simon {
  position: absolute; bottom: 22%; left: 36%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #403830 0%, #282018 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sl-figure 6s ease-in-out infinite;
}
.scn-simonides-letter .letter-page {
  position: absolute; bottom: 32%; left: 42%; width: 24px; height: 30px;
  background: linear-gradient(135deg, #fff8e8 0%, #f0e0c0 100%);
  border-radius: 2px; transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.1);
  animation: sl-letter 5s ease-in-out infinite alternate;
}
.scn-simonides-letter .desk-wood {
  position: absolute; bottom: 16%; left: 28%; width: 100px; height: 12px;
  background: linear-gradient(180deg, #b09070 0%, #907050 100%);
  border-radius: 4px; transform: perspective(200px) rotateX(10deg);
  box-shadow: 0 3px 8px rgba(0,0,0,.15);
}
.scn-simonides-letter .sunbeam {
  position: absolute; top: 0; right: 10%; width: 30px; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,180,.12) 0%, rgba(255,240,180,.04) 100%);
  transform: skewX(-8deg); pointer-events: none;
  animation: sl-sunbeam 9s ease-in-out infinite alternate;
}
@keyframes sl-window {
  0% { box-shadow: inset 0 0 30px rgba(255,220,120,.3), 0 0 20px rgba(255,200,80,.15); }
  50% { box-shadow: inset 0 0 40px rgba(255,230,140,.4), 0 0 30px rgba(255,210,90,.2); }
  100% { box-shadow: inset 0 0 30px rgba(255,220,120,.3), 0 0 20px rgba(255,200,80,.15); }
}
@keyframes sl-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-1px) rotate(.5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-.5deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes sl-letter {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes sl-sunbeam {
  0% { opacity: .4; transform: skewX(-8deg) translateX(0); }
  50% { opacity: .7; transform: skewX(-8deg) translateX(5px); }
  100% { opacity: .5; transform: skewX(-8deg) translateX(0); }
}

/* Scene: knights-dismissed — bright hall, departure */
.scn-knights-dismissed {
  background:
    radial-gradient(ellipse at 50% 20%, #fff8e8 0%, #e8dcc8 40%, #c8bca8 100%),
    linear-gradient(180deg, #fff4e0 0%, #f0e4d0 30%, #e0d4c0 70%, #d0c4b0 100%);
}
.scn-knights-dismissed .hall-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #f0e4d0 0%, #e0d4c0 60%, #d0c4b0 100%);
}
.scn-knights-dismissed .column-left {
  position: absolute; bottom: 10%; left: 12%; width: 18px; height: 75%;
  background: linear-gradient(90deg, #d0c0a8 0%, #e0d0b8 30%, #c8b8a0 70%, #b8a890 100%);
  border-radius: 8px;
  box-shadow: -4px 0 12px rgba(0,0,0,.08);
}
.scn-knights-dismissed .column-right {
  position: absolute; bottom: 10%; right: 12%; width: 18px; height: 75%;
  background: linear-gradient(90deg, #d0c0a8 0%, #e0d0b8 30%, #c8b8a0 70%, #b8a890 100%);
  border-radius: 8px;
  box-shadow: 4px 0 12px rgba(0,0,0,.08);
}
.scn-knights-dismissed .figure-king {
  position: absolute; bottom: 14%; left: 46%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #a08068 0%, #806050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kd-king 7s ease-in-out infinite;
}
.scn-knights-dismissed .knight-leaving {
  position: absolute; bottom: 16%; right: 22%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kd-knight 8s ease-in-out infinite;
}
.scn-knights-dismissed .letter-roll {
  position: absolute; bottom: 28%; left: 52%; width: 18px; height: 8px;
  background: linear-gradient(180deg, #fff0d0 0%, #e0d0b0 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  transform: rotate(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  animation: kd-roll 6s ease-in-out infinite alternate;
}
.scn-knights-dismissed .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(135deg, #c8bca8 0%, #b8ac98 25%, #c0b4a0 50%, #b0a490 75%, #c8bca8 100%);
  background-size: 40px 40px;
  animation: kd-floor 20s linear infinite;
}
.scn-knights-dismissed .light-shaft {
  position: absolute; top: 0; left: 38%; width: 80px; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,180,.08) 0%, rgba(255,240,180,.02) 70%, transparent 100%);
  transform: skewX(-10deg); pointer-events: none;
  animation: kd-shaft 12s ease-in-out infinite alternate;
}
@keyframes kd-king {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(.5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes kd-knight {
  0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: .8; }
  20% { transform: translateX(-4px) translateY(-1px) rotate(1deg); opacity: .9; }
  40% { transform: translateX(-8px) translateY(0) rotate(0deg); opacity: .85; }
  60% { transform: translateX(-12px) translateY(-1px) rotate(-1deg); opacity: .9; }
  80% { transform: translateX(-16px) translateY(0) rotate(0deg); opacity: .85; }
  100% { transform: translateX(-20px) translateY(0) rotate(0deg); opacity: .7; }
}
@keyframes kd-roll {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-1px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes kd-floor {
  0% { background-position: 0 0; }
  100% { background-position: 40px 0; }
}
@keyframes kd-shaft {
  0% { opacity: .3; transform: skewX(-10deg) translateX(0); }
  50% { opacity: .6; transform: skewX(-10deg) translateX(6px); }
  100% { opacity: .4; transform: skewX(-10deg) translateX(0); }
}

.scn-pericles-asks-advice {
  background: linear-gradient(180deg, #c4a87a 0%, #9e7e5a 60%, #6b4e32 100%),
              radial-gradient(ellipse at 20% 10%, #e4c8a0 0%, transparent 60%);
}
.scn-pericles-asks-advice .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #8a7050 0%, #a08060 50%, #6b4e32 100%);
  animation: pa-wall 12s ease-in-out infinite alternate;
}
.scn-pericles-asks-advice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #4d3624 0%, #6b4e32 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.4);
}
.scn-pericles-asks-advice .window {
  position: absolute; top: 15%; left: 60%; width: 80px; height: 100px;
  background: radial-gradient(circle at 50% 40%, #d4c0a0 0%, #b09878 70%, #a08060 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(200,180,140,0.3);
  animation: pa-window 8s ease-in-out infinite;
}
.scn-pericles-asks-advice .lamp {
  position: absolute; top: 20%; left: 15%; width: 20px; height: 30px;
  background: radial-gradient(circle, #f0d090 0%, #c09850 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 60px 15px rgba(240,208,144,0.5);
  animation: pa-lamp 4s ease-in-out infinite alternate;
}
.scn-pericles-asks-advice .throne {
  position: absolute; bottom: 35%; left: 45%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #7a5c3c 0%, #4d3624 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(5deg);
}
.scn-pericles-asks-advice .figure {
  position: absolute; bottom: 36%; left: 48%; width: 22px; 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: pa-figure 6s ease-in-out infinite;
}
.scn-pericles-asks-advice .shadow {
  position: absolute; bottom: 35%; left: 38%; width: 120px; height: 40px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: pa-shadow 8s ease-in-out infinite alternate;
}
.scn-pericles-asks-advice .scroll {
  position: absolute; bottom: 40%; left: 52%; width: 16px; height: 4px;
  background: #b09060;
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(15deg);
  animation: pa-scroll 5s ease-in-out infinite;
}
@keyframes pa-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pa-window {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(1); }
}
@keyframes pa-lamp {
  0% { box-shadow: 0 0 40px 10px rgba(240,208,144,0.4); }
  50% { box-shadow: 0 0 80px 25px rgba(240,208,144,0.7); }
  100% { box-shadow: 0 0 50px 12px rgba(240,208,144,0.5); }
}
@keyframes pa-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-0.5deg); }
}
@keyframes pa-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.1); }
  100% { opacity: 0.35; transform: scaleX(1); }
}
@keyframes pa-scroll {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(15deg) translateY(0); }
}

.scn-pericles-reveal-incest {
  background: linear-gradient(180deg, #3a2a2a 0%, #5a3a3a 40%, #4a2a2a 100%),
              radial-gradient(ellipse at 30% 70%, #7a4a4a 0%, transparent 60%);
}
.scn-pericles-reveal-incest .room {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #4a2a2a 60%);
  animation: ri-room 10s ease-in-out infinite alternate;
}
.scn-pericles-reveal-incest .bed {
  position: absolute; bottom: 20%; left: 30%; width: 140px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.6);
  transform: perspective(300px) rotateX(-5deg);
}
.scn-pericles-reveal-incest .figure-left {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ri-figure-left 5s ease-in-out infinite;
}
.scn-pericles-reveal-incest .figure-right {
  position: absolute; bottom: 25%; right: 30%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ri-figure-right 5s ease-in-out infinite reverse;
}
.scn-pericles-reveal-incest .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 20px;
  background: radial-gradient(circle at 50% 0%, #f0c080 0%, #c08050 70%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(240,192,128,0.6);
  animation: ri-candle 3s ease-in-out infinite alternate;
}
.scn-pericles-reveal-incest .curtain {
  position: absolute; top: 0; left: 80%; width: 50px; height: 80%;
  background: linear-gradient(180deg, #6a3a3a 0%, #4a2020 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.5);
  animation: ri-curtain 12s ease-in-out infinite;
}
.scn-pericles-reveal-incest .throne-shadow {
  position: absolute; bottom: 20%; left: 45%; width: 70px; height: 90px;
  background: rgba(0,0,0,0.4);
  border-radius: 10%;
  filter: blur(10px);
  animation: ri-shadow 7s ease-in-out infinite alternate;
}
@keyframes ri-room {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ri-figure-left {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(3px); }
  100% { transform: rotate(-1deg) translateX(0); }
}
@keyframes ri-figure-right {
  0% { transform: rotate(2deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(-3px); }
  100% { transform: rotate(1deg) translateX(0); }
}
@keyframes ri-candle {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(-3px); opacity: 1; }
  100% { transform: translateY(0); opacity: 0.9; }
}
@keyframes ri-curtain {
  0% { width: 50px; }
  50% { width: 55px; }
  100% { width: 50px; }
}
@keyframes ri-shadow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.35; transform: scale(1); }
}

.scn-pericles-fears-war {
  background: linear-gradient(180deg, #6a5a4a 0%, #8a7a5a 40%, #5a4a3a 100%),
              radial-gradient(ellipse at 80% 20%, #b09870 0%, transparent 70%);
}
.scn-pericles-fears-war .chamber-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a4a 50%, #4a3a2a 100%);
  box-shadow: inset 0 4px 30px rgba(0,0,0,0.3);
}
.scn-pericles-fears-war .chamber-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%);
}
.scn-pericles-fears-war .table {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 100px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-pericles-fears-war .map {
  position: absolute; bottom: 32%; left: 48%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #b09060 0%, #8a7050 50%, #6a5030 100%);
  border-radius: 10%;
  transform: perspective(200px) rotateX(20deg);
  animation: fw-map 8s ease-in-out infinite;
}
.scn-pericles-fears-war .banner {
  position: absolute; top: 10%; left: 10%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #a06040 0%, #7a4020 100%);
  border-radius: 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: fw-banner 6s ease-in-out infinite alternate;
}
.scn-pericles-fears-war .figure-king {
  position: absolute; bottom: 32%; left: 40%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fw-king 5s ease-in-out infinite;
}
.scn-pericles-fears-war .figure-counselor {
  position: absolute; bottom: 32%; right: 38%; width: 18px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fw-counselor 6s ease-in-out infinite;
}
.scn-pericles-fears-war .torch {
  position: absolute; top: 15%; left: 80%; width: 12px; height: 30px;
  background: radial-gradient(circle at 50% 0%, #f0a040 0%, #c08020 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 40px 12px rgba(240,160,64,0.5);
  animation: fw-torch 3s ease-in-out infinite alternate;
}
.scn-pericles-fears-war .spear {
  position: absolute; bottom: 30%; left: 60%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  transform: rotate(15deg);
  animation: fw-spear 7s ease-in-out infinite;
}
@keyframes fw-map {
  0% { transform: perspective(200px) rotateX(20deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(22deg) translateY(-2px); }
  100% { transform: perspective(200px) rotateX(20deg) translateY(0); }
}
@keyframes fw-banner {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(3deg); }
  100% { transform: skewX(0deg); }
}
@keyframes fw-king {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fw-counselor {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0.5deg); }
}
@keyframes fw-torch {
  0% { box-shadow: 0 0 30px 8px rgba(240,160,64,0.4); }
  50% { box-shadow: 0 0 60px 20px rgba(240,160,64,0.8); }
  100% { box-shadow: 0 0 35px 10px rgba(240,160,64,0.5); }
}
@keyframes fw-spear {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(17deg) translateY(-3px); }
  100% { transform: rotate(15deg) translateY(0); }
}

.scn-helicanus-counsel-flight {
  background: linear-gradient(180deg, #b8a888 0%, #a09078 50%, #8a7a6a 100%),
              radial-gradient(ellipse at 50% 30%, #d8c8b0 0%, transparent 70%);
}
.scn-helicanus-counsel-flight .study-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #9a8a72 0%, #b8a888 60%, #8a7a6a 100%);
  animation: hc-wall 14s ease-in-out infinite alternate;
}
.scn-helicanus-counsel-flight .study-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #6a5a4a 0%, #8a7a6a 100%);
}
.scn-helicanus-counsel-flight .table-round {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%); width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 40%, #a08060 0%, #7a6030 100%);
  border-radius: 50%/50% 50% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-helicanus-counsel-flight .figure-standing {
  position: absolute; bottom: 32%; left: 36%; width: 20px; height: 68px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc-standing 8s ease-in-out infinite;
}
.scn-helicanus-counsel-flight .figure-seated {
  position: absolute; bottom: 32%; right: 36%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc-seated 9s ease-in-out infinite reverse;
}
.scn-helicanus-counsel-flight .lamp-glow {
  position: absolute; top: 15%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0e0c0 0%, #d0b880 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(240,224,192,0.4);
  animation: hc-lamp 6s ease-in-out infinite alternate;
}
.scn-helicanus-counsel-flight .window-arch {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 90px;
  background: radial-gradient(ellipse at 50% 30%, #d8c8b0 0%, #b8a888 80%);
  border-radius: 50% 50% 5% 5%;
  box-shadow: inset 0 0 30px rgba(200,180,160,0.3);
  animation: hc-window 12s ease-in-out infinite;
}
.scn-helicanus-counsel-flight .book {
  position: absolute; bottom: 36%; left: 46%; width: 14px; height: 10px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a0a 100%);
  border-radius: 10%;
  transform: rotate(-10deg);
  animation: hc-book 5s ease-in-out infinite;
}
.scn-helicanus-counsel-flight .quill {
  position: absolute; bottom: 38%; left: 48%; width: 2px; height: 18px;
  background: linear-gradient(180deg, #d0b090 0%, #a08060 100%);
  transform: rotate(20deg);
  animation: hc-quill 4s ease-in-out infinite alternate;
}
@keyframes hc-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes hc-standing {
  0% { transform: rotate(-1deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(2px); }
  100% { transform: rotate(-0.5deg) translateX(0); }
}
@keyframes hc-seated {
  0% { transform: rotate(1deg) translateX(0); }
  50% { transform: rotate(-1deg) translateX(-2px); }
  100% { transform: rotate(0.5deg) translateX(0); }
}
@keyframes hc-lamp {
  0% { box-shadow: 0 0 60px 20px rgba(240,224,192,0.3); }
  50% { box-shadow: 0 0 100px 40px rgba(240,224,192,0.6); }
  100% { box-shadow: 0 0 70px 25px rgba(240,224,192,0.35); }
}
@keyframes hc-window {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(1); }
}
@keyframes hc-book {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-1px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes hc-quill {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(22deg) translateY(-2px); }
  100% { transform: rotate(20deg) translateY(0); }
}

/* dionyza-wrens – tense, bright-interior */
.scn-dionyza-wrens {
  background:
    linear-gradient(180deg, #c8b89a 0%, #a08a6e 40%, #7a664a 100%),
    radial-gradient(ellipse at 30% 60%, #e0d4c0 0%, transparent 70%);
}
.scn-dionyza-wrens .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #c8b89a 0%, #b8a88a 50%, #a09070 100%);
}
.scn-dionyza-wrens .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-dionyza-wrens .window-frame {
  position: absolute; top: 15%; left: 50%; width: 120px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-dionyza-wrens .window-pane {
  position: absolute; top: 18%; left: calc(50% - 50px); width: 100px; height: 140px;
  background: linear-gradient(180deg, #d0e8f0 0%, #b0c8d8 100%);
  opacity: 0.5;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
}
.scn-dionyza-wrens .candle {
  position: absolute; bottom: 28%; right: 25%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a880 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 8px rgba(255,200,100,0.5);
  animation: dw-candle 6s ease-in-out infinite alternate;
}
.scn-dionyza-wrens .candle-glow {
  position: absolute; bottom: 32%; right: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(30px, 10px);
  animation: dw-candle-glow 6s ease-in-out infinite alternate;
}
.scn-dionyza-wrens .figure-dionyza {
  position: absolute; bottom: 30%; left: 28%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: dw-figure 10s ease-in-out infinite;
}
.scn-dionyza-wrens .wren {
  position: absolute; width: 14px; height: 10px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-dionyza-wrens .wren-1 {
  top: 20%; left: 20%;
  animation: dw-wren1 8s ease-in-out infinite;
}
.scn-dionyza-wrens .wren-2 {
  top: 28%; left: 60%;
  animation: dw-wren2 12s ease-in-out infinite;
}
@keyframes dw-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.05) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: 0.85; }
}
@keyframes dw-candle-glow {
  0% { transform: translate(30px, 10px) scale(0.9); opacity: 0.4; }
  50% { transform: translate(30px, 8px) scale(1.1); opacity: 0.6; }
  100% { transform: translate(30px, 12px) scale(0.95); opacity: 0.5; }
}
@keyframes dw-figure {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg) translateX(2px); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(1deg) translateX(-3px); }
  100% { transform: rotate(0deg); }
}
@keyframes dw-wren1 {
  0% { transform: translate(0,0) rotate(0deg); }
  20% { transform: translate(30px,-20px) rotate(10deg); }
  40% { transform: translate(60px,10px) rotate(-5deg); }
  60% { transform: translate(40px,-30px) rotate(15deg); }
  80% { transform: translate(80px,0) rotate(0deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes dw-wren2 {
  0% { transform: translate(0,0); }
  30% { transform: translate(-40px,-15px) rotate(-10deg); }
  60% { transform: translate(-20px,20px) rotate(8deg); }
  100% { transform: translate(0,0); }
}

/* dionyza-justifies – tense, bright-interior */
.scn-dionyza-justifies {
  background:
    linear-gradient(180deg, #b8a88a 0%, #9a8a6a 40%, #7a6a4a 100%),
    radial-gradient(ellipse at 50% 30%, #e0d4c0 0%, transparent 60%);
}
.scn-dionyza-justifies .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #b8a88a 0%, #a09070 100%);
}
.scn-dionyza-justifies .table {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(180deg, #7a664a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-dionyza-justifies .mirror {
  position: absolute; top: 18%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a09888 0%, #888070 100%);
  border-radius: 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-dionyza-justifies .mirror-reflection {
  position: absolute; top: 21%; left: calc(50% - 32px); width: 64px; height: 100px;
  background: linear-gradient(180deg, rgba(180,170,150,0.6) 0%, rgba(140,130,110,0.4) 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.2);
  animation: dj-reflection 12s ease-in-out infinite alternate;
}
.scn-dionyza-justifies .figure-dionyza-2 {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 10px rgba(0,0,0,0.3);
  animation: dj-figure 8s ease-in-out infinite;
}
.scn-dionyza-justifies .figure-marina-silhouette {
  position: absolute; bottom: 22%; left: 55%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  opacity: 0.7;
  animation: dj-marina 14s ease-in-out infinite;
}
.scn-dionyza-justifies .shadow-stripe {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 60%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: dj-stripe 8s ease-in-out infinite alternate;
}
@keyframes dj-reflection {
  0% { opacity: 0.3; transform: scaleY(0.95); }
  50% { opacity: 0.6; transform: scaleY(1); }
  100% { opacity: 0.4; transform: scaleY(0.97); }
}
@keyframes dj-figure {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(3deg) translateX(-2px); }
  60% { transform: rotate(-2deg) translateX(3px); }
  100% { transform: rotate(0deg); }
}
@keyframes dj-marina {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-5px) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  75% { transform: translateX(-8px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dj-stripe {
  0% { transform: skewX(-10deg) scaleY(1); opacity: 0.3; }
  50% { transform: skewX(-8deg) scaleY(1.2); opacity: 0.5; }
  100% { transform: skewX(-12deg) scaleY(0.9); opacity: 0.2; }
}

/* dionyza-pericles-mourn – calm, bright-interior */
.scn-dionyza-pericles-mourn {
  background:
    linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 40%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 60%, #b8a898 0%, transparent 60%);
}
.scn-dionyza-pericles-mourn .chapel-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #a09080 0%, #8a7a6a 100%);
}
.scn-dionyza-pericles-mourn .tomb {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}
.scn-dionyza-pericles-mourn .tomb-glow {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,200,150,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: dp-tombglow 10s ease-in-out infinite alternate;
}
.scn-dionyza-pericles-mourn .drape-top {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 60% 60% / 0 0 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: dp-drape 20s ease-in-out infinite alternate;
}
.scn-dionyza-pericles-mourn .figure-weeping {
  position: absolute; bottom: 22%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -2px 0 6px rgba(0,0,0,0.2);
  animation: dp-weep 15s ease-in-out infinite;
}
.scn-dionyza-pericles-mourn .candle-row {
  position: absolute; bottom: 28%; left: 30%; right: 30%; height: 6px;
  background: linear-gradient(90deg, transparent 0%, #c8a880 20%, #c8a880 80%, transparent 100%);
  border-radius: 2px;
  animation: dp-candles 8s ease-in-out infinite alternate;
}
.scn-dionyza-pericles-mourn .candle-flame {
  position: absolute; bottom: 34%; left: 50%; width: 8px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #c88040 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 16px 4px rgba(255,200,100,0.6);
  animation: dp-flame 5s ease-in-out infinite alternate;
}
@keyframes dp-tombglow {
  0% { opacity: 0.3; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 0.5; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.35; transform: translateX(-50%) scale(0.98); }
}
@keyframes dp-drape {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(2px); }
}
@keyframes dp-weep {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-3deg) translateY(-2px); }
  50% { transform: rotate(2deg) translateY(-5px); }
  75% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes dp-candles {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes dp-flame {
  0% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
  25% { transform: translateX(-50%) scaleY(1.1) rotate(5deg); }
  50% { transform: translateX(-50%) scaleY(0.95) rotate(-5deg); }
  75% { transform: translateX(-50%) scaleY(1.05) rotate(3deg); }
  100% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
}

/* dionyza-fly – calm, bright-interior */
.scn-dionyza-fly {
  background:
    linear-gradient(180deg, #c8b8a0 0%, #a89880 40%, #8a7a64 100%),
    radial-gradient(ellipse at 60% 40%, #d8c8b0 0%, transparent 60%);
}
.scn-dionyza-fly .winter-window {
  position: absolute; top: 10%; left: 50%; width: 140px; height: 180px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0c8d8 0%, #8098a8 100%);
  border-radius: 8px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  opacity: 0.5;
}
.scn-dionyza-fly .sill {
  position: absolute; bottom: 18%; left: 50%; width: 160px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-dionyza-fly .interior-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8b8a0 0%, #b8a890 100%);
}
.scn-dionyza-fly .dead-fly {
  position: absolute; bottom: 22%; left: 35%; width: 6px; height: 8px;
  background: #2a1a0a;
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-30deg);
  opacity: 0.4;
}
.scn-dionyza-fly .fly {
  position: absolute; width: 8px; height: 6px;
  background: #2a1a0a;
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.2);
}
.scn-dionyza-fly .fly-1 {
  top: 30%; left: 20%;
  animation: df-fly1 18s ease-in-out infinite, df-flybuzz 0.5s ease-in-out infinite;
}
.scn-dionyza-fly .fly-2 {
  top: 45%; left: 60%;
  animation: df-fly2 22s ease-in-out infinite, df-flybuzz 0.6s ease-in-out infinite;
  animation-delay: -9s;
}
.scn-dionyza-fly .figure-dionyza-3 {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: df-figure 20s ease-in-out infinite;
}
@keyframes df-fly1 {
  0% { transform: translate(0,0) rotate(0deg); }
  10% { transform: translate(20px,-30px) rotate(30deg); }
  30% { transform: translate(60px,10px) rotate(-20deg); }
  50% { transform: translate(80px,-40px) rotate(45deg); }
  70% { transform: translate(40px,20px) rotate(-10deg); }
  90% { transform: translate(100px,-10px) rotate(15deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes df-fly2 {
  0% { transform: translate(0,0) rotate(0deg); }
  20% { transform: translate(-40px,20px) rotate(-25deg); }
  40% { transform: translate(-80px,-10px) rotate(15deg); }
  60% { transform: translate(-30px,40px) rotate(-35deg); }
  80% { transform: translate(-90px,0) rotate(10deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes df-flybuzz {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.8) rotate(5deg); }
  100% { transform: scaleY(1); }
}
@keyframes df-figure {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-2deg) translateY(-2px); }
  50% { transform: rotate(1deg) translateY(1px); }
  75% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}

.scn-gower-visor {
  background: linear-gradient(180deg, #1d1d33 0%, #2a2a45 30%, #3a3a5c 70%, #2d2d48 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a45 0%, transparent 60%);
}
.scn-gower-visor .bg-overcast { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,.06) 0%, transparent 40%, rgba(0,0,10,.2) 100%); }
.scn-gower-visor .sky-mist   { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a4a5e 0%, #5a6a7e 50%, transparent 100%); opacity:.25; animation: gv-mist 15s ease-in-out infinite alternate; }
.scn-gower-visor .visor-figure { position:absolute; bottom:10%; left:50%; width:80px; height:120px; transform:translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #14141e 70%, #0a0a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: gv-sway 7s ease-in-out infinite;
}
.scn-gower-visor .visor-mask { position:absolute; bottom:42%; left:50%; width:44px; height:26px; transform:translateX(-50%);
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px 2px rgba(100,100,140,.3);
  animation: gv-glint 4s ease-in-out infinite alternate;
}
.scn-gower-visor .visor-hand { position:absolute; bottom:28%; left:38%; width:10px; height:16px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-15deg);
  animation: gv-hand 6s ease-in-out infinite;
}
.scn-gower-visor .visor-sash { position:absolute; bottom:20%; left:50%; width:6px; height:30px; transform:translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 3px;
  animation: gv-sash 5s ease-in-out infinite alternate;
}
.scn-gower-visor .visor-drape { position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, transparent 0%, #1a1a2a 100%);
  animation: gv-drape 9s ease-in-out infinite;
}
@keyframes gv-mist   { 0% { opacity:0.2; } 50% { opacity:0.35; } 100% { opacity:0.2; } }
@keyframes gv-sway   { 0% { transform:translateX(-50%) rotate(0deg); } 25% { transform:translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform:translateX(-50%) rotate(0deg); } 75% { transform:translateX(-50%) translateY(1px) rotate(-1deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes gv-glint  { 0% { box-shadow: 0 0 6px 1px rgba(100,100,140,.2); } 50% { box-shadow: 0 0 14px 4px rgba(140,140,180,.5); } 100% { box-shadow: 0 0 6px 1px rgba(100,100,140,.2); } }
@keyframes gv-hand   { 0% { transform:rotate(-15deg) translateX(0); } 50% { transform:rotate(-10deg) translateX(2px); } 100% { transform:rotate(-15deg) translateX(0); } }
@keyframes gv-sash   { 0% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(1.05); } 100% { transform:translateX(-50%) scaleY(1); } }
@keyframes gv-drape  { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.7; } }

.scn-street-gentlemen-talks {
  background: linear-gradient(180deg, #6a7a7a 0%, #7a8a8a 30%, #8a9a9a 70%, #7a8a8a 100%),
              radial-gradient(ellipse at 50% 0%, #aabbcc 0%, transparent 70%);
}
.scn-street-gentlemen-talks .street-bg { position:absolute; inset:0; background: linear-gradient(180deg, #d0d8d8 0%, #b0b8b8 100%); opacity:0.3; }
.scn-street-gentlemen-talks .building-left { position:absolute; bottom:20%; left:5%; width:30%; height:60%;
  background: linear-gradient(180deg, #8a8a7a 0%, #7a7a6a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: sg-breathe 10s ease-in-out infinite alternate;
}
.scn-street-gentlemen-talks .building-right { position:absolute; bottom:20%; right:5%; width:25%; height:55%;
  background: linear-gradient(180deg, #8a8a7a 0%, #7a7a6a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: sg-breathe 12s ease-in-out infinite alternate-reverse;
}
.scn-street-gentlemen-talks .gentleman-a { position:absolute; bottom:14%; left:35%; width:22px; height:50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: sg-gent-a 4s ease-in-out infinite;
}
.scn-street-gentlemen-talks .gentleman-b { position:absolute; bottom:16%; left:50%; width:20px; height:48px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a2a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: sg-gent-b 5s ease-in-out infinite;
}
.scn-street-gentlemen-talks .street-lamp { position:absolute; bottom:40%; left:45%; width:8px; height:40px;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 4px;
}
.scn-street-gentlemen-talks .doorway { position:absolute; bottom:12%; left:20%; width:30px; height:40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: sg-door 8s ease-in-out infinite alternate;
}
.scn-street-gentlemen-talks .cobbles { position:absolute; bottom:0; left:0; right:0; height:15%;
  background: repeating-linear-gradient(90deg, #7a8a8a 0px, #6a7a7a 6px, #8a9a9a 12px);
  opacity:0.3;
  animation: sg-cobbles 20s linear infinite;
}
@keyframes sg-breathe  { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.01); } 100% { transform:scaleY(1); } }
@keyframes sg-gent-a   { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(2px) rotate(2deg); } 70% { transform:translateX(-1px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes sg-gent-b   { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-3px) rotate(-2deg); } 50% { transform:translateX(1px) rotate(1deg); } 75% { transform:translateX(-2px) rotate(0deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes sg-door     { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes sg-cobbles  { 0% { background-position:0 0; } 100% { background-position:20px 0; } }

.scn-gentleman-rutting {
  background: linear-gradient(180deg, #5a5a5a 0%, #6a6a5a 30%, #7a7a6a 70%, #6a6a5a 100%),
              radial-gradient(ellipse at 50% 0%, #8a8a7a 0%, transparent 60%);
}
.scn-gentleman-rutting .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #b0b0a0 0%, #9a9a8a 100%); opacity:0.15; }
.scn-gentleman-rutting .floor { position:absolute; bottom:0; left:0; right:0; height:25%;
  background: repeating-linear-gradient(90deg, #6a5a4a 0px, #5a4a3a 8px, #7a6a5a 16px);
  animation: gr-floor 12s linear infinite;
}
.scn-gentleman-rutting .gentleman-body { position:absolute; bottom:22%; left:50%; width:40px; height:60px; transform:translateX(-50%);
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: gr-body 3s ease-in-out infinite;
}
.scn-gentleman-rutting .gentleman-head { position:absolute; bottom:60%; left:50%; width:22px; height:22px; transform:translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a2a 100%);
  border-radius: 50%;
  animation: gr-head 3.5s ease-in-out infinite alternate;
}
.scn-gentleman-rutting .gentleman-arm-l { position:absolute; bottom:35%; left:38%; width:8px; height:25px;
  background: #3a3a2a;
  border-radius: 4px;
  transform-origin: bottom center;
  animation: gr-arm-l 1.8s ease-in-out infinite;
}
.scn-gentleman-rutting .gentleman-arm-r { position:absolute; bottom:35%; right:38%; width:8px; height:25px;
  background: #3a3a2a;
  border-radius: 4px;
  transform-origin: bottom center;
  animation: gr-arm-r 2.2s ease-in-out infinite;
}
.scn-gentleman-rutting .hat { position:absolute; bottom:68%; left:50%; width:30px; height:12px; transform:translateX(-50%);
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 0 0;
  animation: gr-hat 4s ease-in-out infinite;
}
.scn-gentleman-rutting .shadow-humor { position:absolute; bottom:18%; left:50%; width:50px; height:8px; transform:translateX(-50%);
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  animation: gr-shadow 3s ease-in-out infinite;
}
@keyframes gr-floor  { 0% { background-position:0 0; } 100% { background-position:16px 0; } }
@keyframes gr-body   { 0% { transform:translateX(-50%) rotate(0deg); } 25% { transform:translateX(-50%) rotate(3deg); } 50% { transform:translateX(-50%) rotate(-2deg); } 75% { transform:translateX(-50%) rotate(4deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes gr-head   { 0% { transform:translateX(-50%) rotate(0deg) scaleY(1); } 50% { transform:translateX(-50%) rotate(5deg) scaleY(1.1); } 100% { transform:translateX(-50%) rotate(0deg) scaleY(1); } }
@keyframes gr-arm-l  { 0% { transform:rotate(20deg); } 50% { transform:rotate(-20deg); } 100% { transform:rotate(20deg); } }
@keyframes gr-arm-r  { 0% { transform:rotate(-15deg); } 50% { transform:rotate(25deg); } 100% { transform:rotate(-15deg); } }
@keyframes gr-hat    { 0% { transform:translateX(-50%) rotate(0deg) translateY(0); } 50% { transform:translateX(-50%) rotate(10deg) translateY(-2px); } 100% { transform:translateX(-50%) rotate(0deg) translateY(0); } }
@keyframes gr-shadow { 0% { transform:translateX(-50%) scaleX(1); } 50% { transform:translateX(-50%) scaleX(1.1); } 100% { transform:translateX(-50%) scaleX(1); } }

.scn-bawd-freeze {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 30%, #3a2a2a 60%, #2a1a1a 100%),
              radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-bawd-freeze .interior-dark { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 50%, rgba(0,0,0,0.6) 100%); }
.scn-bawd-freeze .candle-glow { position:absolute; bottom:45%; left:60%; width:30px; height:30px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 40%, transparent 70%);
  border-radius: 50%;
  animation: bf-flicker 2s ease-in-out infinite alternate;
}
.scn-bawd-freeze .bawd-figure { position:absolute; bottom:15%; left:35%; width:50px; height:90px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: bd-bawd 4s ease-in-out infinite;
}
.scn-bawd-freeze .bawd-hair { position:absolute; bottom:65%; left:35%; width:60px; height:30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-10deg);
  animation: bf-hair 3s ease-in-out infinite alternate;
}
.scn-bawd-freeze .priapus-statue { position:absolute; bottom:10%; right:25%; width:20px; height:50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: bf-statue 6s ease-in-out infinite;
}
.scn-bawd-freeze .bawd-arm { position:absolute; bottom:35%; left:25%; width:8px; height:30px;
  background: #2a1a1a;
  border-radius: 4px;
  transform-origin: bottom center;
  animation: bf-arm 2.5s ease-in-out infinite alternate;
}
.scn-bawd-freeze .table { position:absolute; bottom:0; left:30%; width:40%; height:8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  animation: bf-table 7s ease-in-out infinite alternate;
}
.scn-bawd-freeze .chair { position:absolute; bottom:5%; right:15%; width:20px; height:15%;
  background: #3a2a1a;
  border-radius: 4px;
  animation: bf-chair 8s ease-in-out infinite alternate-reverse;
}
@keyframes bf-flicker { 0% { opacity:0.5; transform:scale(0.8); } 50% { opacity:0.9; transform:scale(1.1); } 100% { opacity:0.6; transform:scale(0.85); } }
@keyframes bd-bawd   { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-2px) rotate(1deg); } 50% { transform:translateX(2px) rotate(-1deg); } 75% { transform:translateX(-1px) rotate(2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes bf-hair   { 0% { transform:rotate(-10deg) scaleY(1); } 50% { transform:rotate(-15deg) scaleY(1.1); } 100% { transform:rotate(-10deg) scaleY(1); } }
@keyframes bf-statue { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes bf-arm    { 0% { transform:rotate(10deg); } 100% { transform:rotate(-20deg); } }
@keyframes bf-table  { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes bf-chair  { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }

/* pentapolis-identification - calm sunlit shoreline */
.scn-pentapolis-identification {
  background: linear-gradient(180deg, #b8d4e3 0%, #e3f0f7 40%, #f5e6c4 70%, #d4a76a 100%),
              radial-gradient(ellipse at 50% 30%, #fff9e6 0%, transparent 60%);
}
.scn-pentapolis-identification .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7bb3d0 0%, #b8d4e3 100%);
  animation: pei-sky 30s ease-in-out infinite alternate;
}
.scn-pentapolis-identification .sea {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3f7a9a 0%, #2b5c7a 100%);
  border-radius: 20% 20% 0 0;
  animation: pei-sea 25s ease-in-out infinite alternate;
}
.scn-pentapolis-identification .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #e3c9a0 0%, #c9a87a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-pentapolis-identification .net {
  position: absolute; bottom: 18%; left: 20%; width: 150px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, transparent 30%, rgba(0,0,0,0.15) 30%, rgba(0,0,0,0.15) 32%, transparent 32%);
  border: 1px solid rgba(0,0,0,0.1);
  animation: pei-net 18s ease-in-out infinite;
}
.scn-pentapolis-identification .fisherman-a {
  position: absolute; bottom: 14%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #6b5240 0%, #3d2b1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pei-fish 4s ease-in-out infinite;
}
.scn-pentapolis-identification .fisherman-b {
  position: absolute; bottom: 16%; left: 50%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #5a4030 0%, #2e1e0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pei-fish 4s ease-in-out infinite reverse;
  animation-delay: -2s;
}
.scn-pentapolis-identification .sun-glow {
  position: absolute; top: 8%; right: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle at 50% 50%, #fff9e6 0%, #f5d88a 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(245,216,138,0.3);
  animation: pei-glow 8s ease-in-out infinite alternate;
}
@keyframes pei-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes pei-sea { 0% { transform: translateY(0) skewX(0deg) } 50% { transform: translateY(-2px) skewX(3deg) } 100% { transform: translateY(0) skewX(0deg) } }
@keyframes pei-net { 0% { transform: rotate(-2deg) translateX(0) } 25% { transform: rotate(2deg) translateX(5px) } 50% { transform: rotate(-1deg) translateX(10px) } 75% { transform: rotate(1deg) translateX(5px) } 100% { transform: rotate(-2deg) translateX(0) } }
@keyframes pei-fish { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(-2deg) } 50% { transform: translateX(16px) rotate(1deg) } 75% { transform: translateX(8px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pei-glow { 0% { opacity: 0.7; transform: scale(0.95) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.8; transform: scale(0.98) } }

/* pericles-wishes-joust - warm sunlit tournament */
.scn-pericles-wishes-joust {
  background: linear-gradient(180deg, #87ceeb 0%, #cce5ff 30%, #e8d5b0 70%, #c9a96e 100%),
              radial-gradient(ellipse at 50% 10%, #fff5cc 0%, transparent 50%);
}
.scn-pericles-wishes-joust .sky-joust {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5ba3d9 0%, #a3cce8 100%);
}
.scn-pericles-wishes-joust .ground-joust {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #cba37a 0%, #a67c4e 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-pericles-wishes-joust .tent-l {
  position: absolute; bottom: 28%; left: 15%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #d4a373 0%, #b5824a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: pwj-tent 12s ease-in-out infinite alternate;
}
.scn-pericles-wishes-joust .tent-r {
  position: absolute; bottom: 28%; right: 15%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #d4a373 0%, #b5824a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: pwj-tent 12s ease-in-out infinite alternate-reverse;
}
.scn-pericles-wishes-joust .pennant-l {
  position: absolute; bottom: 60%; left: 18%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #e3b374 0%, #c4914a 100%);
  transform-origin: bottom center;
  animation: pwj-pennant 4s ease-in-out infinite;
}
.scn-pericles-wishes-joust .pennant-r {
  position: absolute; bottom: 60%; right: 18%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #e3b374 0%, #c4914a 100%);
  transform-origin: bottom center;
  animation: pwj-pennant 4s ease-in-out infinite reverse;
}
.scn-pericles-wishes-joust .knight {
  position: absolute; bottom: 10%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #6b7b8d 0%, #444f5a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: pwj-knight 6s ease-in-out infinite;
}
.scn-pericles-wishes-joust .lance {
  position: absolute; bottom: 20%; left: 28%; width: 80px; height: 4px;
  background: linear-gradient(180deg, #8b7355 0%, #5c4a32 100%);
  transform-origin: left center;
  animation: pwj-lance 3s ease-in-out infinite;
}
.scn-pericles-wishes-joust .crowd {
  position: absolute; bottom: 2%; left: 10%; right: 10%; height: 30%;
  background: repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(0,0,0,0.05) 8px, rgba(0,0,0,0.05) 10px);
  border-radius: 50% 50% 0 0;
}
@keyframes pwj-tent { 0% { transform: skewY(2deg) } 50% { transform: skewY(-2deg) } 100% { transform: skewY(1deg) } }
@keyframes pwj-pennant { 0% { transform: rotate(-5deg) } 25% { transform: rotate(8deg) } 50% { transform: rotate(-3deg) } 75% { transform: rotate(6deg) } 100% { transform: rotate(-5deg) } }
@keyframes pwj-knight { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(20px) rotate(2deg) } 60% { transform: translateX(10px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pwj-lance { 0% { transform: rotate(20deg) scaleX(1) } 25% { transform: rotate(15deg) scaleX(1.1) } 50% { transform: rotate(25deg) scaleX(1) } 75% { transform: rotate(18deg) scaleX(0.95) } 100% { transform: rotate(20deg) scaleX(1) } }

/* item-rusty-armour - warm sunlit close-up */
.scn-item-rusty-armour {
  background: linear-gradient(180deg, #4a3b32 0%, #6a5040 30%, #c9a87a 70%, #e8d5b0 100%),
              radial-gradient(ellipse at 50% 40%, #ffe6b3 0%, transparent 60%);
}
.scn-item-rusty-armour .bg-armour {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #8a7050 0%, transparent 70%);
}
.scn-item-rusty-armour .chest-armour {
  position: absolute; bottom: 30%; left: 35%; width: 120px; height: 90px;
  background: linear-gradient(180deg, #b89b7a 0%, #7a6345 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5), inset 0 2px 10px rgba(255,255,200,0.3);
  animation: ira-armour 10s ease-in-out infinite alternate;
}
.scn-item-rusty-armour .helmet-armour {
  position: absolute; bottom: 55%; left: 40%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #c9a87a 0%, #8a7050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: ira-helmet 12s ease-in-out infinite;
}
.scn-item-rusty-armour .gleam {
  position: absolute; bottom: 60%; left: 38%; width: 20px; height: 20px;
  background: radial-gradient(circle, #fff4cc 0%, #e6c88a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,244,204,0.6);
  animation: ira-gleam 3s ease-in-out infinite alternate;
}
.scn-item-rusty-armour .hands {
  position: absolute; bottom: 22%; left: 32%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #d4a373 0%, #8a6b4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: ira-hands 5s ease-in-out infinite;
}
.scn-item-rusty-armour .ground-armour {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3b32 100%);
  border-radius: 30% 70% 0 0;
}
.scn-item-rusty-armour .sun-ray {
  position: absolute; top: 5%; right: 20%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,230,179,0.4) 0%, transparent 100%);
  clip-path: polygon(40% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: ira-ray 7s ease-in-out infinite alternate;
}
@keyframes ira-armour { 0% { transform: rotateY(0deg) translateY(0) } 50% { transform: rotateY(5deg) translateY(-2px) } 100% { transform: rotateY(-3deg) translateY(1px) } }
@keyframes ira-helmet { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-3px) rotate(0deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ira-gleam { 0% { opacity: 0.6; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.7; transform: scale(0.9) } }
@keyframes ira-hands { 0% { transform: rotate(-10deg) translateX(0) } 30% { transform: rotate(-8deg) translateX(5px) } 60% { transform: rotate(-12deg) translateX(-3px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes ira-ray { 0% { opacity: 0.3; transform: skewX(-10deg) } 50% { opacity: 0.7; transform: skewX(5deg) } 100% { opacity: 0.4; transform: skewX(-5deg) } }

/* pericles-claims-armour - warm sunlit court interior */
.scn-pericles-claims-armour {
  background: linear-gradient(180deg, #5c4a3a 0%, #8a7050 30%, #c9a87a 60%, #e8d5b0 100%),
              radial-gradient(ellipse at 50% 20%, #ffefcf 0%, transparent 50%);
}
.scn-pericles-claims-armour .bg-claims {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, #a08060 0%, transparent 70%);
}
.scn-pericles-claims-armour .throne {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #b8966a 0%, #7a5c3a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 30% 30%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  animation: pca-throne 15s ease-in-out infinite alternate;
}
.scn-pericles-claims-armour .king {
  position: absolute; bottom: 25%; left: 38%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6b4a2a 0%, #3a2818 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pca-king 8s ease-in-out infinite;
}
.scn-pericles-claims-armour .kneeling-pericles {
  position: absolute; bottom: 5%; left: 48%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #4a3b32 0%, #2a1e14 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: scale(0.9);
  animation: pca-kneel 6s ease-in-out infinite;
}
.scn-pericles-claims-armour .armour-held {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #c9a87a 0%, #8a7050 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  transform: rotate(10deg);
  animation: pca-armour 10s ease-in-out infinite alternate;
}
.scn-pericles-claims-armour .crown-glow {
  position: absolute; top: 15%; left: 40%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #ffd080 0%, transparent 80%);
  box-shadow: 0 0 30px 15px rgba(255,208,128,0.5);
  animation: pca-crown 4s ease-in-out infinite alternate;
}
.scn-pericles-claims-armour .court-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #8a6b4a 0%, #5c4a3a 100%);
  border-radius: 40% 60% 0 0;
}
.scn-pericles-claims-armour .pillar-l {
  position: absolute; bottom: 10%; left: 10%; width: 20px; height: 200px;
  background: linear-gradient(180deg, #b08a6a 0%, #7a5c3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 15px rgba(0,0,0,0.2);
}
.scn-pericles-claims-armour .pillar-r {
  position: absolute; bottom: 10%; right: 10%; width: 20px; height: 200px;
  background: linear-gradient(180deg, #b08a6a 0%, #7a5c3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 15px rgba(0,0,0,0.2);
  animation: pca-pillar 20s ease-in-out infinite alternate;
}
@keyframes pca-throne { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(0.98) } }
@keyframes pca-king { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pca-kneel { 0% { transform: scale(0.9) skewX(0deg) } 50% { transform: scale(0.92) skewX(2deg) } 100% { transform: scale(0.9) skewX(0deg) } }
@keyframes pca-armour { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(12deg) translateY(1px) } }
@keyframes pca-crown { 0% { opacity: 0.5; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.6; transform: scale(0.95) } }
@keyframes pca-pillar { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }

.scn-lysistratus-moved {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2515 40%, #1a0e05 100%), radial-gradient(ellipse at 60% 50%, #5a3a1a 0%, transparent 70%);
}
.scn-lysistratus-moved .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a2a15 0%, #3a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: ly1-wall 10s ease-in-out infinite alternate;
}
.scn-lysistratus-moved .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a0e05 0%, #2a1a0e 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
  animation: ly1-floor 12s ease-in-out infinite alternate;
}
.scn-lysistratus-moved .window {
  position: absolute; top: 15%; left: 20%; width: 22%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  border: 4px solid #2a1a0e;
  animation: ly1-window 15s ease-in-out infinite alternate;
}
.scn-lysistratus-moved .table {
  position: absolute; bottom: 25%; left: 40%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2515 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: ly1-table 8s ease-in-out infinite;
}
.scn-lysistratus-moved .gold {
  position: absolute; bottom: 27%; left: 45%; width: 8%; height: 6%;
  background: radial-gradient(circle, #e0b050 0%, #b08030 60%, #804010 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(224, 176, 80, 0.6), 0 0 60px 20px rgba(128, 64, 16, 0.3);
  animation: ly1-gold 3s ease-in-out infinite alternate;
}
.scn-lysistratus-moved .figure {
  position: absolute; bottom: 18%; left: 35%; width: 12%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #1a0e05 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ly1-figure 6s ease-in-out infinite;
}
.scn-lysistratus-moved .candle {
  position: absolute; bottom: 32%; left: 50%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 60%, #402010 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255, 208, 128, 0.5), 0 0 40px 15px rgba(192, 128, 64, 0.3);
  animation: ly1-candle 4s ease-in-out infinite alternate;
}

@keyframes ly1-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ly1-floor { 0% { transform:scaleY(1); } 50% { transform:scaleY(0.98); } 100% { transform:scaleY(1.02); } }
@keyframes ly1-window { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes ly1-table { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(0.5deg); } 100% { transform:translateY(0) rotate(-0.5deg); } }
@keyframes ly1-gold { 0% { box-shadow:0 0 20px 5px rgba(224,176,80,0.4); transform:scale(1); } 50% { box-shadow:0 0 40px 12px rgba(224,176,80,0.7); transform:scale(1.1); } 100% { box-shadow:0 0 25px 6px rgba(224,176,80,0.5); transform:scale(0.95); } }
@keyframes ly1-figure { 0% { transform:translateX(0) rotate(-1deg); } 25% { transform:translateX(2%) rotate(1deg); } 50% { transform:translateX(4%) rotate(-1deg); } 75% { transform:translateX(2%) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ly1-candle { 0% { filter:brightness(0.9); } 50% { filter:brightness(1.2); } 100% { filter:brightness(1); } }

.scn-lysistratus-intent {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2515 45%, #1a0e05 100%), radial-gradient(ellipse at 30% 50%, #5a3a1a 0%, transparent 70%);
}
.scn-lysistratus-intent .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a2a15 0%, #3a1a0a 100%);
  border-radius: 0 0 15% 15% / 0 0 8% 8%;
  animation: ly2-wall 12s ease-in-out infinite alternate;
}
.scn-lysistratus-intent .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a0e05 0%, #2a1a0e 100%);
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.6);
  animation: ly2-floor 14s ease-in-out infinite alternate;
}
.scn-lysistratus-intent .door {
  position: absolute; bottom: 0; left: 10%; width: 18%; height: 70%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 4px 4px 0 0;
  border: 3px solid #2a1a0e;
  box-shadow: 0 0 15px rgba(0,0,0,0.5);
  transform-origin: left center;
  animation: ly2-door 8s ease-in-out infinite alternate;
}
.scn-lysistratus-intent .window {
  position: absolute; top: 20%; right: 15%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px;
  border: 3px solid #1a0e05;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.7);
  animation: ly2-window 18s ease-in-out infinite alternate;
}
.scn-lysistratus-intent .gold-scatter {
  position: absolute; bottom: 20%; left: 40%; width: 10%; height: 5%;
  background: radial-gradient(circle, #e0b050 0%, #b08030 60%, #804010 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(224, 176, 80, 0.5);
  animation: ly2-gold 4s ease-in-out infinite alternate;
}
.scn-lysistratus-intent .figure {
  position: absolute; bottom: 15%; left: 30%; width: 12%; height: 28%;
  background: radial-gradient(ellipse at 50% 100%, #1a0e05 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ly2-figure 5s ease-in-out infinite;
}
.scn-lysistratus-intent .shadow {
  position: absolute; bottom: 10%; left: 25%; width: 20%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: ly2-shadow 6s ease-in-out infinite alternate;
}

@keyframes ly2-wall { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ly2-floor { 0% { transform:scaleY(1); } 50% { transform:scaleY(0.97); } 100% { transform:scaleY(1.03); } }
@keyframes ly2-door { 0% { transform:rotateY(0deg); } 50% { transform:rotateY(5deg); } 100% { transform:rotateY(0deg); } }
@keyframes ly2-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ly2-gold { 0% { box-shadow:0 0 15px 4px rgba(224,176,80,0.4); transform:scale(1); } 50% { box-shadow:0 0 30px 10px rgba(224,176,80,0.7); transform:scale(1.15); } 100% { box-shadow:0 0 20px 6px rgba(224,176,80,0.5); transform:scale(0.9); } }
@keyframes ly2-figure { 0% { transform:translateX(0) rotate(-2deg); } 30% { transform:translateX(3%) rotate(2deg); } 60% { transform:translateX(6%) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ly2-shadow { 0% { width:20%; height:8%; opacity:0.6; } 50% { width:25%; height:10%; opacity:0.8; } 100% { width:18%; height:7%; opacity:0.5; } }

.scn-boult-piece {
  background: linear-gradient(180deg, #2a2015 0%, #3a2a1a 40%, #1a120a 100%), radial-gradient(ellipse at 50% 40%, #4a3520 0%, transparent 70%);
}
.scn-boult-piece .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 0 0 25% 25% / 0 0 12% 12%;
  animation: bp-wall 15s ease-in-out infinite alternate;
}
.scn-boult-piece .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a120a 0%, #2a1a0e 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.5);
  animation: bp-floor 18s ease-in-out infinite alternate;
}
.scn-boult-piece .door {
  position: absolute; bottom: 0; right: 8%; width: 16%; height: 65%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 4px 4px 0 0;
  border: 2px solid #1a120a;
  box-shadow: 0 0 15px rgba(0,0,0,0.4);
  animation: bp-door 10s ease-in-out infinite alternate;
}
.scn-boult-piece .window {
  position: absolute; top: 18%; left: 12%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 6px;
  border: 3px solid #1a120a;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.6);
  animation: bp-window 20s ease-in-out infinite alternate;
}
.scn-boult-piece .chair {
  position: absolute; bottom: 22%; left: 30%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2515 100%);
  border-radius: 4px 4px 20% 20% / 4px 4px 15% 15%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: bp-chair 7s ease-in-out infinite alternate;
}
.scn-boult-piece .virgin {
  position: absolute; bottom: 15%; left: 50%; width: 10%; height: 22%;
  background: radial-gradient(ellipse at 50% 100%, #1a120a 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bp-virgin 4s ease-in-out infinite;
}
.scn-boult-piece .candle {
  position: absolute; bottom: 28%; left: 55%; width: 2%; height: 7%;
  background: linear-gradient(180deg, #ffd090 0%, #c08040 60%, #402010 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 15px 6px rgba(255, 208, 144, 0.4), 0 0 30px 12px rgba(192, 128, 64, 0.2);
  animation: bp-candle 5s ease-in-out infinite alternate;
}

@keyframes bp-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes bp-floor { 0% { transform:scaleY(1); } 50% { transform:scaleY(0.98); } 100% { transform:scaleY(1.02); } }
@keyframes bp-door { 0% { transform:rotateY(0deg); } 50% { transform:rotateY(-3deg); } 100% { transform:rotateY(0deg); } }
@keyframes bp-window { 0% { opacity:0.75; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes bp-chair { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(1deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes bp-virgin { 0% { transform:translateX(0) rotate(-1deg); } 30% { transform:translateX(2%) rotate(1deg); } 60% { transform:translateX(4%) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes bp-candle { 0% { filter:brightness(0.8); } 50% { filter:brightness(1.2); } 100% { filter:brightness(1); } }

.scn-marina-whither {
  background: linear-gradient(180deg, #1a1215 0%, #2a1a1a 40%, #0a0a0a 100%), radial-gradient(ellipse at 40% 50%, #3a1a1a 0%, transparent 70%);
}
.scn-marina-whither .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  animation: mw-wall 8s ease-in-out infinite alternate;
}
.scn-marina-whither .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a1215 100%);
  box-shadow: inset 0 18px 30px rgba(0,0,0,0.7);
  animation: mw-floor 10s ease-in-out infinite alternate;
}
.scn-marina-whither .door {
  position: absolute; bottom: 0; left: 5%; width: 20%; height: 75%;
  background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%);
  border-radius: 4px 4px 0 0;
  border: 3px solid #0a0505;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  transform-origin: left center;
  animation: mw-door 6s ease-in-out infinite alternate;
}
.scn-marina-whither .rope {
  position: absolute; top: 5%; left: 50%; width: 1%; height: 50%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 0 5px rgba(0,0,0,0.3);
  transform-origin: top center;
  animation: mw-rope 2s ease-in-out infinite;
}
.scn-marina-whither .figure-left {
  position: absolute; bottom: 15%; left: 25%; width: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-figL 3s ease-in-out infinite;
}
.scn-marina-whither .figure-right {
  position: absolute; bottom: 15%; right: 25%; width: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #1a1215 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-figR 3.5s ease-in-out infinite alternate;
}
.scn-marina-whither .lantern {
  position: absolute; top: 20%; left: 48%; width: 4%; height: 6%;
  background: radial-gradient(circle, #e04030 0%, #802010 60%, #200a05 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(224, 64, 48, 0.5), 0 0 60px 20px rgba(128, 32, 16, 0.3);
  animation: mw-lantern 1s ease-in-out infinite alternate;
}

@keyframes mw-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes mw-floor { 0% { transform:scaleY(1); } 50% { transform:scaleY(0.96); } 100% { transform:scaleY(1.04); } }
@keyframes mw-door { 0% { transform:rotateY(0deg); } 50% { transform:rotateY(10deg); } 100% { transform:rotateY(0deg); } }
@keyframes mw-rope { 0% { transform:rotate(0deg) scaleY(1); } 25% { transform:rotate(2deg) scaleY(1.02); } 50% { transform:rotate(-2deg) scaleY(0.98); } 75% { transform:rotate(1deg) scaleY(1.01); } 100% { transform:rotate(0deg) scaleY(1); } }
@keyframes mw-figL { 0% { transform:translateX(0) rotate(-3deg); } 25% { transform:translateX(2%) rotate(3deg); } 50% { transform:translateX(4%) rotate(-3deg); } 75% { transform:translateX(2%) rotate(3deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes mw-figR { 0% { transform:translateX(0) rotate(2deg); } 50% { transform:translateX(-2%) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes mw-lantern { 0% { transform:rotate(-5deg) scale(1); } 50% { transform:rotate(5deg) scale(1.1); } 100% { transform:rotate(-5deg) scale(1); } }

/* Scene: marina-stranger */
.scn-marina-stranger {
  background: linear-gradient(180deg, #87ceeb 0%, #5ba3d9 50%, #3a7fb5 100%),
              radial-gradient(ellipse at 70% 100%, #f5deb3 0%, transparent 60%);
}
.scn-marina-stranger .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 100%);
  animation: ms-sky 12s ease-in-out infinite alternate;
}
.scn-marina-stranger .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1c5d8a 0%, #0a3b5c 100%);
  animation: ms-sea 8s ease-in-out infinite alternate;
  border-top: 2px solid rgba(255,255,255,0.2);
}
.scn-marina-stranger .ship {
  position: absolute; bottom: 35%; left: 35%; width: 120px; height: 40px;
  background: linear-gradient(90deg, #8b4513 0%, #a0522d 50%, #6b3410 100%);
  border-radius: 40% 60% 30% 30% / 100% 100% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ms-ship 6s ease-in-out infinite;
}
.scn-marina-stranger .sail-far {
  position: absolute; bottom: 45%; left: 48%; width: 20px; height: 35px;
  background: linear-gradient(135deg, #ede6d6 0%, #d4cabc 50%, #b8a89a 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%;
  animation: ms-sail 4s ease-in-out infinite alternate;
}
.scn-marina-stranger .figure-on-deck {
  position: absolute; bottom: 36%; left: 42%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #2c1e16 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ms-figure 5s ease-in-out infinite;
}
.scn-marina-stranger .cloud1 {
  position: absolute; top: 15%; left: -10%; width: 100px; height: 25px;
  background: rgba(255,255,255,0.6); filter: blur(8px);
  border-radius: 50%; animation: ms-cloud1 40s linear infinite;
}
.scn-marina-stranger .cloud2 {
  position: absolute; top: 30%; right: -10%; width: 130px; height: 20px;
  background: rgba(255,255,255,0.5); filter: blur(6px);
  border-radius: 50%; animation: ms-cloud2 55s linear infinite reverse;
}
.scn-marina-stranger .sun {
  position: absolute; top: 10%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd700 0%, #ffb347 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.4);
  animation: ms-sun 10s ease-in-out infinite alternate;
}
.scn-marina-stranger .reflection {
  position: absolute; bottom: 5%; left: 40%; width: 40px; height: 15px;
  background: linear-gradient(180deg, rgba(255,215,0,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: ms-reflection 4s ease-in-out infinite alternate;
}
@keyframes ms-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ms-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes ms-ship { 0%, 100% { transform: translate(0, 0) rotate(-1deg); } 50% { transform: translate(4px, -2px) rotate(1deg); } }
@keyframes ms-sail { 0% { transform: scaleX(1) rotate(-2deg); } 100% { transform: scaleX(1.1) rotate(2deg); } }
@keyframes ms-figure { 0%, 100% { transform: translate(0, 0); } 25% { transform: translate(8px, -1px); } 75% { transform: translate(-8px, -1px); } }
@keyframes ms-cloud1 { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }
@keyframes ms-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }
@keyframes ms-sun { 0% { opacity: 0.9; box-shadow: 0 0 30px 15px rgba(255,215,0,0.3); } 100% { opacity: 1; box-shadow: 0 0 50px 25px rgba(255,215,0,0.5); } }
@keyframes ms-reflection { 0% { opacity: 0.3; transform: scaleY(1); } 100% { opacity: 0.8; transform: scaleY(1.5); } }

/* Scene: pericles-believe */
.scn-pericles-believe {
  background: linear-gradient(180deg, #dac292 0%, #c4a87c 50%, #b09060 100%),
              radial-gradient(ellipse at 50% 20%, #f5e6d3 0%, transparent 70%);
}
.scn-pericles-believe .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #cbb390 0%, #b89870 100%);
  animation: pb-wall 15s ease-in-out infinite alternate;
}
.scn-pericles-believe .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08050 0%, #806040 100%);
  border-top: 2px solid #b09060;
  animation: pb-floor 10s ease-in-out infinite alternate;
}
.scn-pericles-believe .throne {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 80px;
  background: linear-gradient(180deg, #8b6914 0%, #6b4f12 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: pb-throne 8s ease-in-out infinite alternate;
}
.scn-pericles-believe .king-figure {
  position: absolute; bottom: 26%; left: 43%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pb-king 6s ease-in-out infinite;
}
.scn-pericles-believe .maiden-figure {
  position: absolute; bottom: 26%; right: 43%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #5e4030 0%, #3a2820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pb-maiden 7s ease-in-out infinite;
}
.scn-pericles-believe .window {
  position: absolute; top: 15%; left: 70%; width: 50px; height: 70px;
  background: radial-gradient(circle, #ffe082 0%, #ffb300 60%, transparent 100%);
  border: 4px solid #8b6914; border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255,179,0,0.4);
  animation: pb-window 4s ease-in-out infinite alternate;
}
.scn-pericles-believe .light-ray {
  position: absolute; top: 0; left: 68%; width: 60px; height: 100%;
  background: linear-gradient(180deg, rgba(255,224,130,0.3) 0%, transparent 80%);
  filter: blur(8px);
  animation: pb-ray 6s ease-in-out infinite alternate;
}
.scn-pericles-believe .pillar {
  position: absolute; bottom: 0; left: 10%; width: 20px; height: 60%;
  background: linear-gradient(180deg, #cbb390 0%, #a08050 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -2px 0 4px rgba(0,0,0,0.2);
  animation: pb-pillar 12s ease-in-out infinite alternate;
}
@keyframes pb-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes pb-floor { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes pb-throne { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } }
@keyframes pb-king { 0% { transform: translate(0, 0) rotate(-2deg); } 25% { transform: translate(-2px, -1px) rotate(1deg); } 75% { transform: translate(2px, -1px) rotate(-1deg); } 100% { transform: translate(0, 0) rotate(0); } }
@keyframes pb-maiden { 0% { transform: translate(0, 0) rotate(0); } 33% { transform: translate(3px, -2px) rotate(2deg); } 66% { transform: translate(-3px, -1px) rotate(-1deg); } 100% { transform: translate(0, 0); } }
@keyframes pb-window { 0% { opacity: 0.6; box-shadow: 0 0 20px 5px rgba(255,179,0,0.3); } 100% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,179,0,0.6); } }
@keyframes pb-ray { 0% { opacity: 0.2; transform: rotate(-3deg); } 50% { opacity: 0.5; transform: rotate(0deg); } 100% { opacity: 0.3; transform: rotate(3deg); } }
@keyframes pb-pillar { 0% { opacity: 0.9; } 100% { opacity: 1; } }

/* Scene: marina-so-indeed */
.scn-marina-so-indeed {
  background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 60%, #5ba3d9 100%),
              radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 50%);
}
.scn-marina-so-indeed .sky-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #cceeff 0%, #a0d8ef 100%);
  animation: msi-sky 14s ease-in-out infinite alternate;
}
.scn-marina-so-indeed .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7cb342 0%, #558b2f 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  animation: msi-grass 10s ease-in-out infinite alternate;
}
.scn-marina-so-indeed .figure-left {
  position: absolute; bottom: 25%; left: 25%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #3e2723 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: msi-figL 6s ease-in-out infinite;
}
.scn-marina-so-indeed .figure-right {
  position: absolute; bottom: 25%; right: 25%; width: 26px; height: 46px;
  background: linear-gradient(180deg, #4e342e 0%, #2c1a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: msi-figR 8s ease-in-out infinite;
}
.scn-marina-so-indeed .flower1 {
  position: absolute; bottom: 30%; left: 15%; width: 12px; height: 12px;
  background: radial-gradient(circle, #e69a8a 0%, #c8553d 100%);
  border-radius: 50%;
  animation: msi-flower1 5s ease-in-out infinite alternate;
}
.scn-marina-so-indeed .flower2 {
  position: absolute; bottom: 33%; right: 20%; width: 10px; height: 10px;
  background: radial-gradient(circle, #b87878 0%, #a0461a 100%);
  border-radius: 50%;
  animation: msi-flower2 6s ease-in-out infinite alternate;
}
.scn-marina-so-indeed .butterfly {
  position: absolute; top: 40%; left: 50%; width: 8px; height: 6px;
  background: #ffb347;
  border-radius: 50% 0 50% 0;
  animation: msi-butterfly 12s ease-in-out infinite;
  filter: blur(1px);
}
@keyframes msi-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes msi-grass { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes msi-figL { 0%, 100% { transform: translate(0, 0) rotate(-1deg); } 25% { transform: translate(5px, -2px) rotate(1deg); } 75% { transform: translate(-5px, -1px) rotate(0); } }
@keyframes msi-figR { 0% { transform: translate(0, 0) rotate(0); } 33% { transform: translate(-4px, -1px) rotate(2deg); } 66% { transform: translate(4px, -2px) rotate(-1deg); } 100% { transform: translate(0, 0); } }
@keyframes msi-flower1 { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.2) rotate(15deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes msi-flower2 { 0% { transform: scale(1) rotate(0) translateY(0); } 50% { transform: scale(1.1) rotate(-10deg) translateY(-2px); } 100% { transform: scale(1) rotate(0) translateY(0); } }
@keyframes msi-butterfly { 0% { transform: translate(0, 0) rotate(0); } 25% { transform: translate(20px, -10px) rotate(5deg); } 50% { transform: translate(40px, 0) rotate(-5deg); } 75% { transform: translate(60px, -8px) rotate(3deg); } 100% { transform: translate(80px, -4px) rotate(0); } }

/* Scene: pericles-marina-meeting */
.scn-pericles-marina-meeting {
  background: linear-gradient(180deg, #ffd54f 0%, #ffb300 40%, #ff8f00 100%),
              radial-gradient(ellipse at 50% 30%, #fff176 0%, transparent 60%);
}
.scn-pericles-marina-meeting .sky-bright {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fff9c4 0%, #fff176 100%);
  animation: pm-sky 5s ease-in-out infinite alternate;
}
.scn-pericles-marina-meeting .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8d6e63 0%, #5d4037 100%);
  animation: pm-ground 7s ease-in-out infinite alternate;
}
.scn-pericles-marina-meeting .figure-pericles {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pm-per 4s ease-in-out infinite;
}
.scn-pericles-marina-meeting .figure-marina {
  position: absolute; bottom: 25%; right: 35%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2c1e16 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pm-mar 6s ease-in-out infinite;
}
.scn-pericles-marina-meeting .shadow-stretch {
  position: absolute; bottom: 0; left: 30%; width: 60px; height: 20px;
  background: rgba(0,0,0,0.3);
  filter: blur(6px); border-radius: 50%;
  animation: pm-shadow 4s ease-in-out infinite alternate;
}
.scn-pericles-marina-meeting .dust-particles {
  position: absolute; top: 20%; left: 45%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,241,118,0.6) 0%, transparent 70%);
  animation: pm-dust 3s ease-in-out infinite;
}
.scn-pericles-marina-meeting .light-beam {
  position: absolute; top: 0; left: 45%; width: 30px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 90%);
  filter: blur(4px);
  animation: pm-beam 2s ease-in-out infinite alternate;
}
@keyframes pm-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes pm-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pm-per { 0%, 100% { transform: translate(0, 0) rotate(0); } 30% { transform: translate(6px, -3px) rotate(2deg); } 60% { transform: translate(-6px, -1px) rotate(-2deg); } }
@keyframes pm-mar { 0% { transform: translate(0, 0) rotate(0); } 40% { transform: translate(-8px, -2px) rotate(3deg); } 80% { transform: translate(4px, -1px) rotate(-1deg); } 100% { transform: translate(0, 0); } }
@keyframes pm-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 100% { transform: scaleX(1.5); opacity: 0.6; } }
@keyframes pm-dust { 0% { transform: scale(0.8) rotate(0); opacity: 0.4; } 50% { transform: scale(1.2) rotate(180deg); opacity: 0.8; } 100% { transform: scale(0.8) rotate(360deg); opacity: 0.4; } }
@keyframes pm-beam { 0% { opacity: 0.2; transform: rotate(-5deg); } 100% { opacity: 0.6; transform: rotate(5deg); } }

.scn-pericles-hum {
  background: linear-gradient(135deg, #c0733a 0%, #4a2a1a 60%, #1a0e08 100%), radial-gradient(ellipse at 30% 20%, #ffcc80 0%, transparent 50%);
}
.scn-pericles-hum .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffd27a 0%, #e89a4a 40%, #7a3a1a 100%);
  animation: ph-sky 20s ease-in-out infinite alternate;
}
.scn-pericles-hum .window {
  position: absolute; top: 10%; left: 50%; width: 120px; height: 160px; transform: translateX(-50%);
  background: linear-gradient(180deg, #fffade 0%, #ffe099 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 0 40px rgba(255,200,100,.5);
  animation: ph-window 12s ease-in-out infinite alternate;
}
.scn-pericles-hum .figure {
  position: absolute; bottom: 25%; left: 48%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0804 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ph-figure 8s ease-in-out infinite;
}
.scn-pericles-hum .comet-glow {
  position: absolute; top: 12%; right: 15%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 0% 50%, #ffffaa 0%, #ffaa44 40%, transparent 100%);
  filter: blur(6px);
  animation: ph-comet 15s linear infinite;
}
.scn-pericles-hum .sun-rays {
  position: absolute; top: 5%; left: 20%; width: 200%; height: 80%;
  background: radial-gradient(ellipse at 30% 20%, rgba(255,220,150,.3) 0%, transparent 70%);
  animation: ph-rays 9s ease-in-out infinite alternate;
}
.scn-pericles-hum .shadow {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: ph-shadow 8s ease-in-out infinite;
}
@keyframes ph-sky {
  0% { opacity: .8; }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: .85; transform: scaleY(1); }
}
@keyframes ph-window {
  0% { box-shadow: inset 0 0 20px rgba(255,200,100,.3); }
  50% { box-shadow: inset 0 0 60px rgba(255,220,130,.6); }
  100% { box-shadow: inset 0 0 30px rgba(255,210,110,.4); }
}
@keyframes ph-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-1deg); }
  75% { transform: translateX(1px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ph-comet {
  0% { transform: translateX(0) rotate(0deg); opacity: .6; }
  25% { transform: translateX(20px) rotate(5deg); opacity: 1; }
  50% { transform: translateX(40px) rotate(10deg); opacity: .8; }
  75% { transform: translateX(60px) rotate(5deg); opacity: 1; }
  100% { transform: translateX(80px) rotate(0deg); opacity: .6; }
}
@keyframes ph-rays {
  0% { opacity: .3; filter: blur(4px); }
  50% { opacity: .6; filter: blur(2px); }
  100% { opacity: .4; filter: blur(5px); }
}
@keyframes ph-shadow {
  0% { transform: scaleX(1); opacity: .5; }
  50% { transform: scaleX(1.2); opacity: .7; }
  100% { transform: scaleX(1); opacity: .5; }
}

.scn-pericles-aside {
  background: linear-gradient(165deg, #a3662a 0%, #3a1e0a 50%, #1a0e05 100%), radial-gradient(ellipse at 70% 30%, #ffd280 0%, transparent 60%);
}
.scn-pericles-aside .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(200,140,70,.4) 0%, transparent 100%);
  animation: pa-bg 10s ease-in-out infinite alternate;
}
.scn-pericles-aside .figure {
  position: absolute; bottom: 20%; left: 45%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-figure 6s ease-in-out infinite;
}
.scn-pericles-aside .cheek-glow {
  position: absolute; bottom: 55%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffb070 0%, #ff8040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,160,80,.5);
  animation: pa-cheek 3s ease-in-out infinite alternate;
}
.scn-pericles-aside .hand {
  position: absolute; bottom: 50%; left: 52%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom left;
  animation: pa-hand 7s ease-in-out infinite;
}
.scn-pericles-aside .breath {
  position: absolute; bottom: 35%; left: 42%; width: 20px; height: 8px;
  background: radial-gradient(ellipse, rgba(255,255,230,.2) 0%, transparent 100%);
  filter: blur(2px);
  animation: pa-breath 5s ease-in-out infinite;
}
.scn-pericles-aside .eye {
  position: absolute; bottom: 60%; left: 47%; width: 4px; height: 6px;
  background: #0a0804;
  border-radius: 50%;
  box-shadow: 0 0 2px rgba(0,0,0,.8);
  animation: pa-eye 3s ease-in-out infinite;
}
@keyframes pa-bg {
  0% { opacity: .3; }
  50% { opacity: .6; }
  100% { opacity: .4; }
}
@keyframes pa-figure {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-2px) rotate(2deg); }
  60% { transform: translateX(1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pa-cheek {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); box-shadow: 0 0 30px 12px rgba(255,160,80,.6); }
  100% { opacity: .7; transform: scale(1); }
}
@keyframes pa-hand {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-4px) rotate(15deg); }
  50% { transform: translateX(1px) translateY(-2px) rotate(10deg); }
  75% { transform: translateX(3px) translateY(-5px) rotate(20deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes pa-breath {
  0% { opacity: .1; transform: scaleX(1); }
  50% { opacity: .3; transform: scaleX(1.5) translateX(2px); }
  100% { opacity: .1; transform: scaleX(1); }
}
@keyframes pa-eye {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(.3); }
  100% { transform: scaleY(1); }
}

.scn-marina-no-shore {
  background: linear-gradient(180deg, #b3d9ff 0%, #7ab0e0 40%, #3a6a9a 100%), radial-gradient(ellipse at 50% 20%, #ffffff 0%, transparent 60%);
}
.scn-marina-no-shore .sky-water {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(180,210,240,.2) 100%);
  animation: mn-skywater 15s ease-in-out infinite alternate;
}
.scn-marina-no-shore .figure {
  position: absolute; bottom: 45%; left: 50%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a121a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: mn-figure 10s ease-in-out infinite;
}
.scn-marina-no-shore .reflection {
  position: absolute; bottom: 38%; left: 49%; width: 30px; height: 40px;
  background: linear-gradient(180deg, rgba(180,210,240,.2) 0%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: mn-reflection 10s ease-in-out infinite reverse;
}
.scn-marina-no-shore .light-rays {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: radial-gradient(ellipse at 30% 10%, rgba(255,255,230,.15) 0%, transparent 70%);
  animation: mn-rays 8s ease-in-out infinite alternate;
}
.scn-marina-no-shore .ripple {
  position: absolute; bottom: 30%; left: 30%; width: 100px; height: 8px;
  background: radial-gradient(ellipse, rgba(255,255,255,.15) 0%, transparent 100%);
  filter: blur(1px);
  animation: mn-ripple 6s ease-in-out infinite;
}
.scn-marina-no-shore .cloud-soft {
  position: absolute; top: 12%; left: 20%; width: 90px; height: 20px;
  background: radial-gradient(ellipse at 30% 30%, rgba(255,255,255,.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: mn-cloud 40s linear infinite;
}
@keyframes mn-skywater {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes mn-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-48%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-52%) translateY(-3px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes mn-reflection {
  0% { opacity: .4; }
  50% { opacity: .2; }
  100% { opacity: .4; }
}
@keyframes mn-rays {
  0% { opacity: .1; transform: scaleY(1); }
  50% { opacity: .3; transform: scaleY(1.1); }
  100% { opacity: .15; transform: scaleY(1); }
}
@keyframes mn-ripple {
  0% { transform: scaleX(1); opacity: .2; }
  50% { transform: scaleX(1.3); opacity: .4; }
  100% { transform: scaleX(1); opacity: .2; }
}
@keyframes mn-cloud {
  0% { transform: translateX(-20px); }
  100% { transform: translateX(120vw); }
}

.scn-pericles-woe {
  background: linear-gradient(135deg, #c08840 0%, #5a2a18 50%, #1a0e08 100%), radial-gradient(ellipse at 40% 20%, #ffd090 0%, transparent 70%);
}
.scn-pericles-woe .bg-sorrow {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(180,120,60,.2) 0%, transparent 100%);
  animation: pw-bg 12s ease-in-out infinite alternate;
}
.scn-pericles-woe .figure-kneeling {
  position: absolute; bottom: 15%; left: 45%; width: 36px; height: 60px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0804 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pw-kneel 7s ease-in-out infinite;
}
.scn-pericles-woe .wife-ghost {
  position: absolute; bottom: 30%; left: 55%; width: 28px; height: 70px;
  background: linear-gradient(180deg, rgba(255,220,180,.3) 0%, rgba(255,200,160,.05) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: pw-ghost 9s ease-in-out infinite alternate;
}
.scn-pericles-woe .tears {
  position: absolute; bottom: 25%; left: 46%; width: 2px; height: 4px;
  background: radial-gradient(circle, #aaccee 0%, transparent 100%);
  box-shadow: 0 6px 0 #aaccee, 0 12px 0 #aaccee, 0 18px 0 #aaccee;
  animation: pw-tears 4s ease-in-out infinite;
}
.scn-pericles-woe .light-beam {
  position: absolute; top: 5%; left: 30%; width: 140%; height: 60%;
  background: radial-gradient(ellipse at 30% 10%, rgba(255,230,180,.2) 0%, transparent 60%);
  animation: pw-beam 15s ease-in-out infinite alternate;
}
.scn-pericles-woe .shadow-deep {
  position: absolute; bottom: 10%; left: 30%; width: 120px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%);
  animation: pw-shadow 7s ease-in-out infinite;
}
@keyframes pw-bg {
  0% { opacity: .3; }
  50% { opacity: .6; }
  100% { opacity: .4; }
}
@keyframes pw-kneel {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  75% { transform: translateY(-4px) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pw-ghost {
  0% { opacity: .2; transform: translateY(0); }
  50% { opacity: .5; transform: translateY(-5px); }
  100% { opacity: .3; transform: translateY(2px); }
}
@keyframes pw-tears {
  0% { opacity: .4; transform: translateY(0); }
  50% { opacity: .8; transform: translateY(10px); }
  100% { opacity: .5; transform: translateY(20px); }
}
@keyframes pw-beam {
  0% { opacity: .1; transform: scaleY(1); }
  50% { opacity: .3; transform: scaleY(1.2); }
  100% { opacity: .15; transform: scaleY(1); }
}
@keyframes pw-shadow {
  0% { transform: scaleX(1); opacity: .6; }
  50% { transform: scaleX(1.1); opacity: .8; }
  100% { transform: scaleX(1); opacity: .6; }
}

/* gower-chorus-marina */
.scn-gower-chorus-marina { background: linear-gradient(180deg, #6b7b8b 0%, #4a5a6a 50%, #3a4a5a 100%), radial-gradient(ellipse at 50% 100%, #5a6a7a 0%, transparent 70%); }
.scn-gower-chorus-marina .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #7a8a9a 0%, transparent 100%); animation: gcm-sky 20s ease-in-out infinite alternate; }
.scn-gower-chorus-marina .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-gower-chorus-marina .monument { position:absolute; bottom:30%; left:50%; width:80px; height:110px; transform:translateX(-50%); background: linear-gradient(135deg, #8a9aaa 0%, #5a6a7a 50%, #3a4a5a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.5), inset 0 0 20px rgba(255,255,255,.1); animation: gcm-monument 18s ease-in-out infinite; }
.scn-gower-chorus-marina .figure { position:absolute; bottom:28%; left:42%; width:20px; height:48px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gcm-walk 6s ease-in-out infinite; }
.scn-gower-chorus-marina .cloud-left { position:absolute; top:15%; left:5%; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(255,255,255,.05) 100%); border-radius:50%; filter: blur(8px); animation: gcm-drift-r 45s linear infinite; }
.scn-gower-chorus-marina .cloud-right { position:absolute; top:20%; right:8%; width:80px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,.25) 0%, rgba(255,255,255,.03) 100%); border-radius:50%; filter: blur(6px); animation: gcm-drift-l 50s linear infinite reverse; }
.scn-gower-chorus-marina .light-halo { position:absolute; bottom:35%; left:50%; width:120px; height:120px; transform:translate(-50%, -50%); background: radial-gradient(circle, rgba(200,210,220,.15) 0%, rgba(200,210,220,.02) 60%, transparent 100%); border-radius:50%; animation: gcm-pulse 8s ease-in-out infinite alternate; }
@keyframes gcm-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes gcm-monument { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) scale(1.01) } }
@keyframes gcm-walk { 0%,100% { transform: translateX(0) translateY(0) } 25% { transform: translateX(4px) translateY(-2px) rotate(-2deg) } 50% { transform: translateX(8px) translateY(0) rotate(1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(-1deg) } }
@keyframes gcm-drift-r { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }
@keyframes gcm-drift-l { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes gcm-pulse { 0% { opacity:.3; transform: translate(-50%,-50%) scale(1) } 50% { opacity:.6; transform: translate(-50%,-50%) scale(1.1) } 100% { opacity:.4; transform: translate(-50%,-50%) scale(.95) } }

/* gower-dumb-show */
.scn-gower-dumb-show { background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 50%, #2a3a4a 100%), radial-gradient(ellipse at 50% 0%, #4a5a6a 0%, transparent 70%); }
.scn-gower-dumb-show .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a8a9a 0%, transparent 100%); animation: gds-sky 30s ease-in-out infinite alternate; }
.scn-gower-dumb-show .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 6px 16px rgba(0,0,0,.4); }
.scn-gower-dumb-show .tomb { position:absolute; bottom:25%; left:50%; width:90px; height:100px; transform:translateX(-50%); background: linear-gradient(135deg, #7a8a9a 0%, #3a4a5a 100%); border-radius: 10% 10% 5% 5% / 15% 15% 5% 5%; box-shadow: 0 10px 20px rgba(0,0,0,.5), inset 0 0 15px rgba(255,255,255,.08); animation: gds-tomb 20s ease-in-out infinite; }
.scn-gower-dumb-show .figure-pericles { position:absolute; bottom:22%; left:38%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gds-kneel 8s ease-in-out infinite; }
.scn-gower-dumb-show .figure-cleon { position:absolute; bottom:26%; right:30%; width:20px; height:44px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gds-stand 12s ease-in-out infinite; }
.scn-gower-dumb-show .figure-dionyza { position:absolute; bottom:26%; right:20%; width:18px; height:42px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gds-stand 12s ease-in-out infinite reverse; }
.scn-gower-dumb-show .cloud { position:absolute; top:12%; right:10%; width:90px; height:18px; background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, rgba(255,255,255,.02) 100%); border-radius:50%; filter: blur(7px); animation: gds-drift 60s linear infinite; }
.scn-gower-dumb-show .tear { position:absolute; bottom:20%; left:42%; width:4px; height:8px; background: linear-gradient(180deg, #8a9a9a 0%, transparent 100%); border-radius:50%; animation: gds-fall 3s ease-in infinite; }
@keyframes gds-sky { 0% { opacity:.6 } 50% { opacity:.85 } 100% { opacity:.7 } }
@keyframes gds-tomb { 0%,100% { transform: translateX(-50%) translateY(0) scale(1) } 50% { transform: translateX(-50%) translateY(-3px) scale(1.01) } }
@keyframes gds-kneel { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-2px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(0) translateY(-4px) rotate(0) } 75% { transform: translateX(2px) translateY(-2px) rotate(-3deg) } }
@keyframes gds-stand { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-1px) translateY(-1px) } }
@keyframes gds-drift { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes gds-fall { 0% { opacity:1; transform: translateY(0) scale(1) } 100% { opacity:0; transform: translateY(30px) scale(.5) } }

/* gower-belief */
.scn-gower-belief { background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 30%, #2a3a4a 70%, #1a2a3a 100%), radial-gradient(ellipse at 50% 80%, #3a4a5a 0%, transparent 60%); }
.scn-gower-belief .bg-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7a8a9a 0%, transparent 100%); animation: gbe-sky 25s ease-in-out infinite alternate; }
.scn-gower-belief .bg-sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 30% 50% 0 0 / 50% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: gbe-sea 14s ease-in-out infinite alternate; }
.scn-gower-belief .ship { position:absolute; bottom:20%; left:20%; width:100px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 80% 30% 70% / 60% 40% 60% 40%; box-shadow: 0 6px 12px rgba(0,0,0,.6); animation: gbe-rock 10s ease-in-out infinite; }
.scn-gower-belief .sail { position:absolute; bottom:40%; left:28%; width:40px; height:50px; background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%); border-radius: 10% 90% 10% 90% / 30% 30% 70% 70%; transform-origin: bottom center; animation: gbe-sail 8s ease-in-out infinite alternate; }
.scn-gower-belief .figure-sorrow { position:absolute; bottom:18%; left:30%; 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: gbe-bow 6s ease-in-out infinite; }
.scn-gower-belief .wave-1 { position:absolute; bottom:0; left:-10%; width:120%; height:30px; background: linear-gradient(180deg, #3a4a5a 0%, transparent 100%); border-radius:50%; animation: gbe-wave1 10s linear infinite; }
.scn-gower-belief .wave-2 { position:absolute; bottom:10px; left:-10%; width:120%; height:25px; background: linear-gradient(180deg, #4a5a6a 0%, transparent 100%); border-radius:50%; animation: gbe-wave2 12s linear infinite reverse; }
.scn-gower-belief .cloud { position:absolute; top:10%; left:5%; width:80px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, rgba(255,255,255,.02) 100%); border-radius:50%; filter: blur(5px); animation: gbe-drift 40s linear infinite; }
@keyframes gbe-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes gbe-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes gbe-rock { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(-2px) rotate(2deg) } 75% { transform: translateX(1px) rotate(-1deg) } }
@keyframes gbe-sail { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(-3deg) scaleY(.98) } }
@keyframes gbe-bow { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-1px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(0) translateY(-4px) rotate(0) } 75% { transform: translateX(1px) translateY(-2px) rotate(-2deg) } }
@keyframes gbe-wave1 { 0% { transform: translateX(0) } 100% { transform: translateX(-20%) } }
@keyframes gbe-wave2 { 0% { transform: translateX(-20%) } 100% { transform: translateX(0) } }
@keyframes gbe-drift { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

/* item-epitaph-monument */
.scn-item-epitaph-monument { background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #00000a 100%), radial-gradient(circle at 50% 30%, #2a2a3a 0%, transparent 70%); }
.scn-item-epitaph-monument .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); animation: iem-dark 30s ease-in-out infinite alternate; }
.scn-item-epitaph-monument .monument { position:absolute; bottom:20%; left:30%; width:140px; height:200px; background: linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 30%, #1a1a2a 70%, #0a0a1a 100%); border-radius: 8% 8% 4% 4% / 12% 12% 4% 4%; box-shadow: 0 12px 24px rgba(0,0,0,.8), inset 0 0 30px rgba(255,255,255,.05); animation: iem-move 25s ease-in-out infinite; }
.scn-item-epitaph-monument .carved-lines { position:absolute; bottom:38%; left:35%; width:100px; height:80px; background: repeating-linear-gradient(0deg, transparent 0, transparent 6px, #4a4a5a 6px, #4a4a5a 8px, transparent 8px); border-radius: 2px; opacity:.4; animation: iem-fade 6s ease-in-out infinite alternate; }
.scn-item-epitaph-monument .figure-reader { position:absolute; bottom:22%; left:55%; width:22px; height:55px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iem-read 10s ease-in-out infinite; }
.scn-item-epitaph-monument .ghost-glow { position:absolute; bottom:30%; left:40%; width:80px; height:100px; background: radial-gradient(circle, rgba(180,190,200,.1) 0%, rgba(180,190,200,.02) 50%, transparent 100%); border-radius:50%; animation: iem-glow 8s ease-in-out infinite alternate; }
.scn-item-epitaph-monument .dust { position:absolute; top:10%; left:20%; width:5px; height:5px; background: rgba(200,210,220,.15); border-radius:50%; box-shadow: 0 0 6px 2px rgba(200,210,220,.1); animation: iem-dust 12s linear infinite; }
@keyframes iem-dark { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes iem-move { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.01) } }
@keyframes iem-fade { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.35 } }
@keyframes iem-read { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(2px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(0) translateY(-4px) rotate(0) } 75% { transform: translateX(-2px) translateY(-2px) rotate(-2deg) } }
@keyframes iem-glow { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.2) } 100% { opacity:.4; transform: scale(.9) } }
@keyframes iem-dust { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(30px, -40px) scale(2) } 100% { transform: translate(60px, -80px) scale(1) opacity:0 } }

/* bawd-leads – dim interior, calm */
.scn-bawd-leads {
  background: linear-gradient(180deg, #2b1f1a 0%, #1e1512 50%, #0d0806 100%),
              radial-gradient(ellipse at 50% 30%, #3d2b21 0%, transparent 70%);
}
.scn-bawd-leads .wall-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #2a2019 0%, #3d3028 40%, #2a2019 100%);
  animation: bawd-wall 20s ease-in-out infinite;
}
.scn-bawd-leads .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1f1712 0%, #120c08 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-bawd-leads .doorway {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 180px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #120c08 0%, #0a0604 100%);
  border-radius: 50% 50% 5% 5% / 60% 60% 5% 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
  animation: bawd-door 30s ease-in-out infinite;
}
.scn-bawd-leads .figure-lead {
  position: absolute; bottom: 28%; left: 44%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a120e 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: bawd-walk-lead 6s ease-in-out infinite;
}
.scn-bawd-leads .figure-follow {
  position: absolute; bottom: 28%; left: 38%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #1c1612 0%, #100c08 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: bawd-walk-follow 6s ease-in-out 2s infinite;
}
.scn-bawd-leads .lantern-glow {
  position: absolute; bottom: 48%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #cc8844 0%, #aa6622 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(204,136,68,.6), 0 0 100px 40px rgba(204,136,68,.3);
  animation: bawd-lantern 4s ease-in-out infinite alternate;
}
.scn-bawd-leads .lantern-body {
  position: absolute; bottom: 50%; left: 50%; width: 10px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d49749 0%, #b07030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 2px 4px #eebb77;
  animation: bawd-lantern-rock 4s ease-in-out infinite;
}

@keyframes bawd-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes bawd-door {
  0% { transform: translateX(-50%) scaleX(1); }
  33% { transform: translateX(-50%) scaleX(0.98); }
  66% { transform: translateX(-50%) scaleX(1.02); }
  100% { transform: translateX(-50%) scaleX(1); }
}
@keyframes bawd-walk-lead {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bawd-walk-follow {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(1deg); }
  50% { transform: translateX(2px) rotate(-1deg); }
  75% { transform: translateX(-3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bawd-lantern {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes bawd-lantern-rock {
  0% { transform: translateX(-50%) rotate(-2deg); }
  25% { transform: translateX(-50%) rotate(3deg); }
  50% { transform: translateX(-50%) rotate(-1deg); }
  75% { transform: translateX(-50%) rotate(4deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}

/* cleon-horror – bright interior, dark mood */
.scn-cleon-horror {
  background: linear-gradient(180deg, #f0e0c0 0%, #ddcca8 50%, #b8a78a 100%);
  box-shadow: inset 0 0 80px rgba(100,50,20,.3);
}
.scn-cleon-horror .ch-light-beam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, rgba(255,255,200,0.1) 50%, transparent 100%);
  clip-path: polygon(40% 0, 60% 0, 80% 100%, 20% 100%);
  animation: ch-beam 8s ease-in-out infinite alternate;
}
.scn-cleon-horror .ch-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  box-shadow: inset 0 6px 20px rgba(0,0,0,.3);
}
.scn-cleon-horror .ch-body {
  position: absolute; bottom: 12%; left: 40%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: ch-body 12s ease-in-out infinite;
}
.scn-cleon-horror .ch-blood {
  position: absolute; bottom: 8%; left: 42%; width: 30px; height: 8px;
  background: radial-gradient(ellipse, #8a3a2a 0%, #5a2a1a 70%, transparent 100%);
  border-radius: 50%;
  animation: ch-blood 6s ease-in-out infinite alternate;
}
.scn-cleon-horror .ch-figure {
  position: absolute; bottom: 15%; left: 50%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ch-figure 5s ease-in-out infinite;
}
.scn-cleon-horror .ch-hand {
  position: absolute; bottom: 25%; left: 52%; width: 20px; height: 30px;
  background: linear-gradient(120deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 30% 60% 40% 40% / 50% 70% 30% 30%;
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: ch-hand 4s ease-in-out infinite alternate;
}
.scn-cleon-horror .ch-shadow {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: ch-shadow 10s ease-in-out infinite alternate;
}

@keyframes ch-beam {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.2; }
}
@keyframes ch-body {
  0% { transform: rotate(-5deg) translateY(0); }
  33% { transform: rotate(-4deg) translateY(-2px); }
  66% { transform: rotate(-6deg) translateY(1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes ch-blood {
  0% { opacity: 0.8; transform: scale(1); }
  100% { opacity: 0.5; transform: scale(1.2); }
}
@keyframes ch-figure {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(3px) rotate(4deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(-3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes ch-hand {
  0% { transform: rotate(20deg) scale(1); }
  100% { transform: rotate(30deg) scale(1.1); }
}
@keyframes ch-shadow {
  0% { opacity: 0.3; }
  100% { opacity: 0.6; }
}

/* cleon-regret – bright interior, dark mood */
.scn-cleon-regret {
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 60%, #a89880 100%),
              radial-gradient(ellipse at 70% 30%, #f0e0c8 0%, transparent 60%);
}
.scn-cleon-regret .cr-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #b8a890 0%, #d0c0a8 50%, #b8a890 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.2);
  animation: cr-wall 15s ease-in-out infinite;
}
.scn-cleon-regret .cr-window {
  position: absolute; top: 10%; right: 20%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #9ac8e8 0%, #d0eaf8 50%, #b0d0e0 100%);
  border: 4px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(255,255,200,0.6);
  animation: cr-window 20s ease-in-out infinite alternate;
}
.scn-cleon-regret .cr-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a09080 0%, #807060 100%);
  box-shadow: inset 0 6px 20px rgba(0,0,0,.3);
}
.scn-cleon-regret .cr-kneeling {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #120a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cr-kneel 6s ease-in-out infinite;
}
.scn-cleon-regret .cr-cup {
  position: absolute; bottom: 15%; left: 30%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  transform: rotate(15deg);
  animation: cr-cup 4s ease-in-out infinite alternate;
}
.scn-cleon-regret .cr-hand {
  position: absolute; bottom: 25%; left: 32%; width: 16px; height: 24px;
  background: linear-gradient(120deg, #3a2a22 0%, #1a0e08 100%);
  border-radius: 30% 50% 40% 40% / 40% 60% 30% 30%;
  transform: rotate(-30deg);
  transform-origin: bottom right;
  animation: cr-hand 5s ease-in-out infinite;
}
.scn-cleon-regret .cr-tear {
  position: absolute; bottom: 30%; left: 36%; width: 4px; height: 8px;
  background: rgba(180,200,220,0.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: cr-tear 3s ease-in-out infinite;
}

@keyframes cr-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cr-window {
  0% { opacity: 0.6; transform: scaleY(0.98); }
  100% { opacity: 1; transform: scaleY(1.02); }
}
@keyframes cr-kneel {
  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 cr-cup {
  0% { transform: rotate(15deg) translateY(0); }
  100% { transform: rotate(20deg) translateY(-2px); }
}
@keyframes cr-hand {
  0% { transform: rotate(-30deg) scale(1); }
  50% { transform: rotate(-25deg) scale(1.1); }
  100% { transform: rotate(-30deg) scale(0.95); }
}
@keyframes cr-tear {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(10px); opacity: 0.3; }
  100% { transform: translateY(0); opacity: 0.8; }
}

/* dionyza-she-dead – bright interior, calm */
.scn-dionyza-she-dead {
  background: linear-gradient(180deg, #f5efe0 0%, #e8dcc8 50%, #d0c4b0 100%),
              radial-gradient(ellipse at 60% 20%, #fff8f0 0%, transparent 70%);
}
.scn-dionyza-she-dead .dsd-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #d0c0a8 0%, #e0d0b8 50%, #c8b8a0 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.1);
  animation: dsd-wall 20s ease-in-out infinite;
}
.scn-dionyza-she-dead .dsd-window {
  position: absolute; top: 8%; left: 15%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #b0d8f0 0%, #d0eaf8 60%, #e8f4fc 100%);
  border: 5px solid #6a5a4a;
  border-radius: 5px;
  box-shadow: 0 0 20px rgba(200,220,255,0.5);
  animation: dsd-window 30s ease-in-out infinite alternate;
}
.scn-dionyza-she-dead .dsd-bed {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 6px 20px rgba(0,0,0,.3);
  animation: dsd-bed 15s ease-in-out infinite;
}
.scn-dionyza-she-dead .dsd-figure-dead {
  position: absolute; bottom: 22%; left: 50%; width: 45px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b8a0 0%, #a09080 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.2);
  animation: dsd-dead 12s ease-in-out infinite;
}
.scn-dionyza-she-dead .dsd-nurse {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 62px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dsd-nurse 8s ease-in-out infinite;
}
.scn-dionyza-she-dead .dsd-sheet {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #f0e8dc 0%, #d8d0c0 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  animation: dsd-sheet 6s ease-in-out infinite alternate;
}
.scn-dionyza-she-dead .dsd-shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.2) 0%, transparent 70%);
  animation: dsd-shadow 18s ease-in-out infinite alternate;
}

@keyframes dsd-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes dsd-window {
  0% { opacity: 0.5; }
  100% { opacity: 0.9; }
}
@keyframes dsd-bed {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.98); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes dsd-dead {
  0% { transform: translateX(-50%) rotate(0deg); }
  33% { transform: translateX(-50%) rotate(-1deg); }
  66% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes dsd-nurse {
  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 dsd-sheet {
  0% { transform: scaleX(1) translateY(0); }
  100% { transform: scaleX(1.05) translateY(-2px); }
}
@keyframes dsd-shadow {
  0% { opacity: 0.2; }
  100% { opacity: 0.4; }
}

/* Scene 1: tarsus-welcome-peace */
.scn-tarsus-welcome-peace {
  background: 
    linear-gradient(180deg, #6a7b8b 0%, #7a8b9b 50%, #5a6b7b 100%),
    radial-gradient(ellipse at 50% 100%, #8a9baf 0%, transparent 70%);
}
.scn-tarsus-welcome-peace .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6b7b 0%, #8a9bb5 100%);
  animation: twp-sky 20s ease-in-out infinite alternate;
}
.scn-tarsus-welcome-peace .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%);
  border-radius: 30% 20% 0 0 / 20% 10% 0 0;
  animation: twp-sea 12s ease-in-out infinite alternate;
}
.scn-tarsus-welcome-peace .cloud {
  position: absolute; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(200,210,220,0.6) 0%, rgba(200,210,220,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
}
.scn-tarsus-welcome-peace .cloud-a {
  top: 10%; left: 20%;
  animation: twp-drift-a 40s linear infinite;
}
.scn-tarsus-welcome-peace .cloud-b {
  top: 25%; right: 10%;
  animation: twp-drift-b 35s linear infinite reverse;
}
.scn-tarsus-welcome-peace .city-wall {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: twp-wall 15s ease-in-out infinite alternate;
}
.scn-tarsus-welcome-peace .ship {
  position: absolute; bottom: 40%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: twp-ship 8s ease-in-out infinite;
}
.scn-tarsus-welcome-peace .sail {
  position: absolute; bottom: 60%; left: 34%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: twp-sail 6s ease-in-out infinite alternate;
}
.scn-tarsus-welcome-peace .figure {
  position: absolute; bottom: 38%; left: 25%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: twp-figure 9s ease-in-out infinite;
}
@keyframes twp-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes twp-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes twp-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(100vw) } }
@keyframes twp-drift-b { 0% { transform: translateX(40px) } 100% { transform: translateX(-100vw) } }
@keyframes twp-wall { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(0.98) translateY(1px) } }
@keyframes twp-ship { 0% { transform: rotate(-1deg) translateX(0) } 50% { transform: rotate(1deg) translateX(2px) } 100% { transform: rotate(-1deg) translateX(-1px) } }
@keyframes twp-sail { 0% { transform: skewX(2deg) } 50% { transform: skewX(-3deg) } 100% { transform: skewX(2deg) } }
@keyframes twp-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* Scene 2: pericles-brings-corn */
.scn-pericles-brings-corn {
  background: 
    linear-gradient(180deg, #6a5a4a 0%, #8a7a6a 50%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 0%, #a09080 0%, transparent 70%);
}
.scn-pericles-brings-corn .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #3a3a2a 0%, #4a4a3a 50%, #3a3a2a 100%);
  animation: pbc-wall 20s ease-in-out infinite alternate;
}
.scn-pericles-brings-corn .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 20% 0 0 / 5% 10% 0 0;
}
.scn-pericles-brings-corn .beam {
  position: absolute; top: 15%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pbc-beam 14s ease-in-out infinite;
}
.scn-pericles-brings-corn .sack {
  position: absolute; bottom: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #a09070 0%, #706050 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.3);
}
.scn-pericles-brings-corn .sack-1 { left: 20%; animation: pbc-sack1 12s ease-in-out infinite; }
.scn-pericles-brings-corn .sack-2 { left: 50%; animation: pbc-sack2 14s ease-in-out infinite reverse; }
.scn-pericles-brings-corn .figure-giver {
  position: absolute; bottom: 22%; left: 35%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pbc-giver 8s ease-in-out infinite;
}
.scn-pericles-brings-corn .figure-receiver {
  position: absolute; bottom: 22%; left: 55%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pbc-receiver 9s ease-in-out infinite;
}
.scn-pericles-brings-corn .light-ray {
  position: absolute; top: 0; left: 40%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(200,180,120,0.2) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: pbc-light 18s ease-in-out infinite alternate;
}
@keyframes pbc-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes pbc-beam { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.8) } 100% { transform: scaleY(1) } }
@keyframes pbc-sack1 { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pbc-sack2 { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes pbc-giver { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pbc-receiver { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes pbc-light { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.5 } }

/* Scene 3: tarsus-feast-welcome */
.scn-tarsus-feast-welcome {
  background: 
    linear-gradient(180deg, #5a3a2a 0%, #7a5a3a 50%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 70%, #9a7a5a 0%, transparent 70%);
}
.scn-tarsus-feast-welcome .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-tarsus-feast-welcome .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: tfw-table 10s ease-in-out infinite;
}
.scn-tarsus-feast-welcome .plate {
  position: absolute; bottom: 25%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #b0a080 0%, #807060 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-tarsus-feast-welcome .plate-1 { left: 30%; animation: tfw-plate1 8s ease-in-out infinite; }
.scn-tarsus-feast-welcome .plate-2 { left: 55%; animation: tfw-plate2 7s ease-in-out infinite alternate; }
.scn-tarsus-feast-welcome .cup {
  position: absolute; bottom: 26%; left: 42%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #8a7040 0%, #5a3a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: tfw-cup 6s ease-in-out infinite;
}
.scn-tarsus-feast-welcome .figure {
  position: absolute; bottom: 10%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-tarsus-feast-welcome .seated { left: 20%; animation: tfw-seated 12s ease-in-out infinite; }
.scn-tarsus-feast-welcome .standing { left: 70%; animation: tfw-standing 9s ease-in-out infinite; }
.scn-tarsus-feast-welcome .lantern {
  position: absolute; top: 15%; left: 45%; width: 14px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 24px 6px #b08040, 0 0 48px 12px rgba(176,128,64,0.5);
  animation: tfw-lantern 3s ease-in-out infinite alternate;
}
@keyframes tfw-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tfw-plate1 { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tfw-plate2 { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes tfw-cup { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tfw-seated { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tfw-standing { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes tfw-lantern { 0% { opacity: 0.7; box-shadow: 0 0 18px 4px #b08040; } 50% { opacity: 1; box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 18px rgba(255,208,128,0.4); } 100% { opacity: 0.8; box-shadow: 0 0 22px 5px #b08040; } }

/* Scene 4: gower-narrates-dumb-show */
.scn-gower-narrates-dumb-show {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 50%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 50%, #8a7a6a 0%, transparent 80%);
}
.scn-gower-narrates-dumb-show .curtain {
  position: absolute; top: 0; bottom: 0; width: 20%;
  background: linear-gradient(180deg, #8a1a1a 0%, #5a0a0a 100%); /* use burgundy/mulberry instead of bright red */
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: gnd-curtain 15s ease-in-out infinite alternate;
}
.scn-gower-narrates-dumb-show .curtain-left { left: 0; border-radius: 0 40% 40% 0 / 0 20% 20% 0; }
.scn-gower-narrates-dumb-show .curtain-right { right: 0; border-radius: 40% 0 0 40% / 20% 0 0 20%; animation-delay: 6s; }
.scn-gower-narrates-dumb-show .stage-floor {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-gower-narrates-dumb-show .backdrop {
  position: absolute; top: 0; left: 20%; right: 20%; bottom: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-gower-narrates-dumb-show .figure {
  position: absolute; bottom: 18%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-gower-narrates-dumb-show .player-1 { left: 30%; animation: gnd-player1 8s ease-in-out infinite; }
.scn-gower-narrates-dumb-show .player-2 { left: 55%; animation: gnd-player2 9s ease-in-out infinite reverse; }
.scn-gower-narrates-dumb-show .prop {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: gnd-statue 12s ease-in-out infinite;
}
@keyframes gnd-curtain { 0% { width: 20% } 50% { width: 18% } 100% { width: 20% } }
@keyframes gnd-player1 { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes gnd-player2 { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes gnd-statue { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }

/* ===== BANQUET-MIRTH (warm interior, knights drinking) ===== */
.scn-banquet-mirth {
  background: 
    radial-gradient(ellipse at 30% 60%, #a07040 0%, transparent 60%),
    radial-gradient(ellipse at 70% 40%, #d4b060 0%, transparent 50%),
    linear-gradient(180deg, #6a3e20 0%, #9c5a30 30%, #c87840 60%, #8c4a28 100%);
}
.scn-banquet-mirth .bg-wall {
  position: absolute; inset: 0 0 10% 0;
  background: repeating-linear-gradient(90deg, #8c5a3a 0px, #8c5a3a 2px, transparent 2px, transparent 8px);
  opacity: 0.3; animation: bm-wall 30s linear infinite;
}
.scn-banquet-mirth .bg-arch {
  position: absolute; top: 0; left: 20%; right: 20%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, #9c6030 0%, #6a3a20 70%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
}
.scn-banquet-mirth .table {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #c07840 0%, #8c5028 60%, #603818 100%);
  border-radius: 10px; box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-banquet-mirth .cup {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 40px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 30% 30%, #f0d080 0%, #c09830 60%, #a07818 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: bm-cup 8s ease-in-out infinite;
}
.scn-banquet-mirth .fig-knight-left {
  position: absolute; bottom: 12%; left: 20%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 30%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: bm-knight-left 5s ease-in-out infinite;
}
.scn-banquet-mirth .fig-knight-right {
  position: absolute; bottom: 12%; right: 18%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 30%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: bm-knight-right 5.5s ease-in-out infinite;
}
.scn-banquet-mirth .fig-bard {
  position: absolute; bottom: 14%; left: 44%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a4030 0%, #3a2218 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; transform-origin: bottom center;
  animation: bm-bard 7s ease-in-out infinite;
}
.scn-banquet-mirth .candle-glow {
  position: absolute; bottom: 30%; left: 48%; width: 8px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #e09030 70%);
  border-radius: 40%; box-shadow: 0 0 24px 8px #e09030;
  animation: bm-candle 3s ease-in-out infinite alternate;
}
.scn-banquet-mirth .candle-flame {
  position: absolute; bottom: 46%; left: 48.5%; width: 6px; height: 10px;
  background: radial-gradient(ellipse at 50% 100%, #ffe090 0%, #ffb040 100%);
  border-radius: 50% 50% 20% 20%; filter: blur(1px);
  animation: bm-flame 0.8s ease-in-out infinite alternate;
}
@keyframes bm-wall { 0% { background-position: 0 0; } 100% { background-position: 200px 0; } }
@keyframes bm-cup { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-1px) rotate(2deg); } }
@keyframes bm-knight-left { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes bm-knight-right { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes bm-bard { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(0deg); } 75% { transform: translateY(-3px) rotate(1deg); } }
@keyframes bm-candle { 0% { opacity: 0.7; box-shadow: 0 0 16px 4px #e09030; } 100% { opacity: 1; box-shadow: 0 0 32px 10px #f0a040; } }
@keyframes bm-flame { 0% { transform: scaleY(1) translateY(0); } 100% { transform: scaleY(1.2) translateY(-1px); } }

/* ===== STANDING-BOWL-TOAST (close-up bowl, hand) ===== */
.scn-standing-bowl-toast {
  background:
    radial-gradient(ellipse at 50% 70%, #a06030 0%, transparent 70%),
    linear-gradient(180deg, #3a2a1a 0%, #6a4a2a 50%, #4a3220 100%);
}
.scn-standing-bowl-toast .bg-marble {
  position: absolute; inset: 0 0 25% 0;
  background: repeating-linear-gradient(45deg, #7a5a3a 0px, #7a5a3a 4px, #9c7a4a 4px, #9c7a4a 8px);
  opacity: 0.15; animation: sb-marble 30s linear infinite;
}
.scn-standing-bowl-toast .bulkhead {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-standing-bowl-toast .bowl-rim {
  position: absolute; bottom: 30%; left: 35%; right: 35%; height: 10%;
  background: linear-gradient(180deg, #e0b070 0%, #c09040 100%);
  border-radius: 50% / 100% 100% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sb-rim 6s ease-in-out infinite;
}
.scn-standing-bowl-toast .bowl-body {
  position: absolute; bottom: 15%; left: 36%; right: 36%; height: 20%;
  background: radial-gradient(ellipse at 50% 20%, #d0a060 0%, #a07030 80%);
  border-radius: 0 0 40% 40% / 0 0 80% 80%; box-shadow: inset 0 -6px 12px rgba(0,0,0,0.4);
  animation: sb-bowl 8s ease-in-out infinite;
}
.scn-standing-bowl-toast .hand-grip {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #c09050 0%, #9c7040 40%, #7a5028 100%);
  border-radius: 20% 40% 40% 20% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: sb-hand 4s ease-in-out infinite alternate;
}
.scn-standing-bowl-toast .sparkle-1 {
  position: absolute; top: 40%; left: 40%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffe090 0%, #ffd080 100%);
  border-radius: 50%; box-shadow: 0 0 12px 2px #ffd080;
  animation: sb-sparkle 3s ease-in-out infinite;
}
.scn-standing-bowl-toast .sparkle-2 {
  position: absolute; top: 45%; left: 55%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffe090 0%, #ffd080 100%);
  border-radius: 50%; box-shadow: 0 0 8px 1px #ffd080;
  animation: sb-sparkle 4s ease-in-out infinite reverse;
}
.scn-standing-bowl-toast .candle-bg {
  position: absolute; top: 10%; right: 15%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #e0a050 0%, #a07030 100%);
  border-radius: 30%; box-shadow: 0 0 24px 6px #e0a050;
  animation: sb-candle 5s ease-in-out infinite alternate;
}
@keyframes sb-marble { 0% { background-position: 0 0; } 100% { background-position: 100px 100px; } }
@keyframes sb-rim { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes sb-bowl { 0%,100% { transform: scale(1); } 50% { transform: scale(1.01) translateY(-1px); } }
@keyframes sb-hand { 0% { transform: translateX(0) rotate(-2deg); } 100% { transform: translateX(5px) rotate(1deg); } }
@keyframes sb-sparkle { 0%,100% { opacity: 0.3; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } }
@keyframes sb-candle { 0% { opacity: 0.6; box-shadow: 0 0 16px 3px #e0a050; } 100% { opacity: 1; box-shadow: 0 0 36px 8px #f0b060; } }

/* ===== THAISA-MODESTY (calm, bright interior, figure profile) ===== */
.scn-thaisa-modesty {
  background:
    radial-gradient(ellipse at 70% 30%, #c8a878 0%, transparent 60%),
    radial-gradient(ellipse at 30% 50%, #e0c090 0%, transparent 50%),
    linear-gradient(180deg, #9c7a58 0%, #c8a070 30%, #b08858 70%, #805a38 100%);
}
.scn-thaisa-modesty .bg-tapestry {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: repeating-linear-gradient(90deg, #a08060 0px, #a08060 4px, #c0a080 4px, #c0a080 8px, #b09070 8px, #b09070 12px);
  opacity: 0.2; border-radius: 0 0 40% 40%; animation: tm-tapestry 40s linear infinite;
}
.scn-thaisa-modesty .bg-panel {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
}
.scn-thaisa-modesty .figure-robe {
  position: absolute; bottom: 5%; left: 45%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #b09060 0%, #8a6a3a 40%, #5a3a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 60% 60%; transform-origin: bottom center;
  animation: tm-robe 12s ease-in-out infinite;
}
.scn-thaisa-modesty .figure-head {
  position: absolute; bottom: 70%; left: 46%; width: 28px; height: 34px;
  background: linear-gradient(180deg, #c0a080 0%, #a07850 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%; transform-origin: bottom center;
  animation: tm-head 10s ease-in-out infinite;
}
.scn-thaisa-modesty .figure-hand {
  position: absolute; bottom: 55%; left: 48%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #c0a080 0%, #a07850 100%);
  border-radius: 30% 30% 20% 20%; transform-origin: top left;
  animation: tm-hand 6s ease-in-out infinite alternate;
}
.scn-thaisa-modesty .diadem {
  position: absolute; bottom: 85%; left: 48%; width: 30px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #e0c070 0%, #c09830 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tm-diadem 8s ease-in-out infinite;
}
.scn-thaisa-modesty .window-light {
  position: absolute; top: 10%; right: 10%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,230,180,0.5) 0%, transparent 70%);
  border-radius: 10% 10% 40% 40%; filter: blur(6px);
  animation: tm-window 8s ease-in-out infinite alternate;
}
.scn-thaisa-modesty .shadow-veil {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 60% 40%, transparent 40%, rgba(0,0,0,0.2) 100%);
  pointer-events: none; animation: tm-veil 15s ease-in-out infinite;
}
@keyframes tm-tapestry { 0% { background-position: 0 0; } 100% { background-position: 100px 0; } }
@keyframes tm-robe { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes tm-head { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes tm-hand { 0% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes tm-diadem { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes tm-window { 0% { opacity: 0.5; } 100% { opacity: 1; } }
@keyframes tm-veil { 0%,100% { opacity: 0.6; } 50% { opacity: 1; } }

/* ===== PERICLES-PLEDGE (two figures, cups raised) ===== */
.scn-pericles-pledge {
  background:
    radial-gradient(ellipse at 50% 40%, #c8a858 0%, transparent 60%),
    radial-gradient(ellipse at 20% 60%, #8c6030 0%, transparent 40%),
    linear-gradient(180deg, #5a3a20 0%, #8a5a30 40%, #4a2a10 100%);
}
.scn-pericles-pledge .bg-column {
  position: absolute; top: 0; left: 10%; right: 10%; height: 60%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 30px, #6a4a2a 30px, #6a4a2a 32px);
  opacity: 0.3;
  animation: pp-column 20s linear infinite;
}
.scn-pericles-pledge .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0a 100%);
  border-radius: 40% 40% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
}
.scn-pericles-pledge .fig-left {
  position: absolute; bottom: 8%; left: 20%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: pp-fig-left 6s ease-in-out infinite;
}
.scn-pericles-pledge .fig-right {
  position: absolute; bottom: 8%; right: 20%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: pp-fig-right 6.5s ease-in-out infinite;
}
.scn-pericles-pledge .cup-left {
  position: absolute; bottom: 40%; left: 25%; width: 14px; height: 20px;
  background: radial-gradient(ellipse at 30% 30%, #f0c870 0%, #c09830 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center; animation: pp-cup-left 4s ease-in-out infinite alternate;
}
.scn-pericles-pledge .cup-right {
  position: absolute; bottom: 40%; right: 25%; width: 14px; height: 20px;
  background: radial-gradient(ellipse at 30% 30%, #f0c870 0%, #c09830 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center; animation: pp-cup-right 4s ease-in-out infinite alternate;
}
.scn-pericles-pledge .cup-clash {
  position: absolute; bottom: 52%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffe090 0%, transparent 70%);
  border-radius: 50%; transform: translateX(-50%);
  animation: pp-clash 4s ease-in-out infinite;
}
.scn-pericles-pledge .light-ray {
  position: absolute; top: 0; left: 40%; right: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,230,180,0.15) 0%, transparent 80%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: pp-ray 8s ease-in-out infinite alternate;
}
.scn-pericles-pledge .dust-motes {
  position: absolute; top: 20%; left: 30%; right: 30%; bottom: 20%;
  background: radial-gradient(circle, rgba(255,220,160,0.2) 0%, transparent 50%);
  filter: blur(4px); animation: pp-dust 6s ease-in-out infinite;
}
@keyframes pp-column { 0% { background-position: 0 0; } 100% { background-position: 100px 0; } }
@keyframes pp-fig-left { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes pp-fig-right { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes pp-cup-left { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes pp-cup-right { 0% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes pp-clash { 0%,100% { opacity: 0; transform: translateX(-50%) scale(0.5); } 50% { opacity: 1; transform: translateX(-50%) scale(1.2); } }
@keyframes pp-ray { 0% { opacity: 0.3; } 100% { opacity: 0.7; } }
@keyframes pp-dust { 0%,100% { opacity: 0.4; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(-5px); } }

/* Scene: antioch-assassin-hired */
.scn-antioch-assassin-hired {
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%);
}
.scn-antioch-assassin-hired .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3c2a1a 0%, #1a0f0a 100%); animation: aa-wall 20s ease-in-out infinite alternate; }
.scn-antioch-assassin-hired .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #0f0500 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-antioch-assassin-hired .table { position:absolute; bottom:25%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #5e3e2e 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-antioch-assassin-hired .vial { position:absolute; bottom:30%; left:40%; width:16px; height:32px; background: linear-gradient(180deg, #4a6a3a 0%, #1a2a1a 100%); border-radius: 40% 40% 30% 30%; box-shadow: inset 0 0 8px #6a8a4a; animation: aa-vial 4s ease-in-out infinite; }
.scn-antioch-assassin-hired .coin { position:absolute; bottom:30%; left:55%; width:24px; height:24px; background: radial-gradient(circle at 40% 40%, #c8a040 0%, #a07820 70%); border-radius:50%; box-shadow: 0 0 12px 2px rgba(200,160,64,.6); animation: aa-coin 6s ease-in-out infinite alternate; }
.scn-antioch-assassin-hired .hand { position:absolute; bottom:20%; left:25%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 20%, #2a1a1a 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aa-hand 3s ease-in-out infinite; }
.scn-antioch-assassin-hired .coin-shadow { position:absolute; bottom:26%; left:52%; width:30px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); border-radius:50%; animation: aa-shadow 6s ease-in-out infinite alternate; }
@keyframes aa-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes aa-vial { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(4deg) } }
@keyframes aa-coin { 0% { transform: rotateY(0deg) scale(1) } 100% { transform: rotateY(180deg) scale(.9) } }
@keyframes aa-hand { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-8px) rotate(4deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes aa-shadow { 0% { opacity:.5; transform: scaleX(1) } 100% { opacity:.3; transform: scaleX(.7) } }

/* Scene: item-poison-and-gold */
.scn-item-poison-and-gold {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 50%, #3a2a4e 100%),
    radial-gradient(ellipse at 30% 50%, #2a1a2e 0%, transparent 70%);
}
.scn-item-poison-and-gold .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a0a1a 100%); animation: pg-deep 12s ease-in-out infinite alternate; }
.scn-item-poison-and-gold .table { position:absolute; bottom:20%; left:5%; right:5%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 6px 20px rgba(0,0,0,.7); }
.scn-item-poison-and-gold .pistol { position:absolute; bottom:25%; left:20%; width:80px; height:18px; background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 10% 10% 40%; transform: rotate(-15deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: pg-pistol 5s ease-in-out infinite; }
.scn-item-poison-and-gold .pouch { position:absolute; bottom:25%; left:60%; width:30px; height:22px; background: radial-gradient(ellipse at 50% 30%, #8a6a3a 0%, #4a2a0a 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: pg-pouch 7s ease-in-out infinite alternate; }
.scn-item-poison-and-gold .vial { position:absolute; bottom:27%; left:80%; width:12px; height:28px; background: linear-gradient(180deg, #3a5a2a 0%, #1a2a0a 100%); border-radius: 30% 30% 20% 20%; box-shadow: inset 0 0 6px #5a8a4a; animation: pg-vial 4s ease-in-out infinite; }
.scn-item-poison-and-gold .hand { position:absolute; bottom:18%; left:10%; width:34px; height:50px; background: radial-gradient(ellipse at 50% 20%, #1a0a0a 0%, #0a0000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pg-hand 3s ease-in-out infinite; }
.scn-item-poison-and-gold .sparkle { position:absolute; bottom:30%; left:55%; width:6px; height:6px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 10px 2px rgba(255,208,128,.5); animation: pg-spark 2s ease-in-out infinite; }
@keyframes pg-deep { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pg-pistol { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes pg-pouch { 0% { transform: scale(1) } 100% { transform: scale(1.05) } }
@keyframes pg-vial { 0%,100% { transform: rotate(0) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } }
@keyframes pg-hand { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-6px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pg-spark { 0% { opacity:.3; transform: scale(1) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:.3; transform: scale(1) } }

/* Scene: tyre-palace-melancholy */
.scn-tyre-palace-melancholy {
  background:
    linear-gradient(180deg, #0f0f1e 0%, #1a1a2e 40%, #2a2a3e 100%),
    radial-gradient(ellipse at 50% 20%, #2a2a4e 0%, transparent 60%);
}
.scn-tyre-palace-melancholy .bg-darkroom { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a14 0%, #16161e 100%); animation: tp-dark 20s ease-in-out infinite alternate; }
.scn-tyre-palace-melancholy .window-frame { position:absolute; top:10%; left:30%; width:100px; height:120px; border: 4px solid #3a2a1a; background: transparent; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-tyre-palace-melancholy .moonlight { position:absolute; top:10%; left:30%; width:100px; height:120px; background: linear-gradient(135deg, rgba(180,180,255,.2) 0%, transparent 60%); border-radius: 4px; animation: tp-moon 12s ease-in-out infinite alternate; }
.scn-tyre-palace-melancholy .chair { position:absolute; bottom:15%; left:45%; width:40px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.7); }
.scn-tyre-palace-melancholy .figure-sil { position:absolute; bottom:20%; left:48%; width:30px; height:70px; background: radial-gradient(ellipse at 50% 20%, #0a0a14 0%, #000005 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tp-figure 8s ease-in-out infinite; }
.scn-tyre-palace-melancholy .candle { position:absolute; bottom:22%; left:60%; width:10px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; }
.scn-tyre-palace-melancholy .flame { position:absolute; bottom:40%; left:60%; width:8px; height:16px; background: radial-gradient(ellipse at 50% 100%, #ffd060 0%, #ff8030 60%, transparent 100%); border-radius: 50% 50% 30% 30%; animation: tp-flame 2s ease-in-out infinite alternate; }
@keyframes tp-dark { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes tp-moon { 0% { opacity:.4; transform: scale(1) } 100% { opacity:.7; transform: scale(1.05) } }
@keyframes tp-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tp-flame { 0% { transform: scaleY(1) translateX(0) } 50% { transform: scaleY(1.2) translateX(1px) } 100% { transform: scaleY(.9) translateX(-1px) } }

/* Scene: tyre-fear-of-antiochus */
.scn-tyre-fear-of-antiochus {
  background:
    linear-gradient(180deg, #0a0a14 0%, #1a0e0e 50%, #2a1414 100%),
    radial-gradient(ellipse at 30% 70%, #3a1a1a 0%, transparent 60%);
}
.scn-tyre-fear-of-antiochus .bg-shadow { position:absolute; inset:0; background: linear-gradient(180deg, #0a0000 0%, #1a0606 100%); animation: tf-shadow 15s ease-in-out infinite alternate; }
.scn-tyre-fear-of-antiochus .door { position:absolute; right:10%; top:20%; width:80px; height:140px; background: linear-gradient(180deg, #2a1a0a 0%, #0f0500 100%); border-radius: 4px; box-shadow: 0 8px 24px rgba(0,0,0,.8); transform-origin: right center; animation: tf-door 6s ease-in-out infinite alternate; }
.scn-tyre-fear-of-antiochus .light-beam { position:absolute; right:20%; top:20%; width:40px; height:140px; background: linear-gradient(90deg, rgba(255,200,100,.3) 0%, transparent 100%); border-radius: 0 4px 4px 0; animation: tf-beam 4s ease-in-out infinite alternate; }
.scn-tyre-fear-of-antiochus .figure-cower { position:absolute; bottom:15%; left:20%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 30%, #0a0a0a 0%, #000000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tf-cower 1s ease-in-out infinite; }
.scn-tyre-fear-of-antiochus .shadow-puppet { position:absolute; bottom:15%; right:30%; width:70px; height:90px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.8) 0%, transparent 80%); border-radius: 50%; filter: blur(3px); animation: tf-puppet 3s ease-in-out infinite alternate; }
.scn-tyre-fear-of-antiochus .crack { position:absolute; top:10%; left:5%; width:3px; height:30px; background: #2a1a0a; border-radius: 2px; animation: tf-crack 10s linear infinite; }
.scn-tyre-fear-of-antiochus .dust { position:absolute; top:40%; left:50%; width:4px; height:4px; background: rgba(200,160,100,.3); border-radius:50%; animation: tf-dust 8s linear infinite; }
.scn-tyre-fear-of-antiochus .tremble { position:absolute; inset:0; background: transparent; animation: tf-tremble 0.5s ease-in-out infinite; }
@keyframes tf-shadow { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes tf-door { 0% { transform: perspective(600px) rotateY(0deg) } 100% { transform: perspective(600px) rotateY(8deg) } }
@keyframes tf-beam { 0% { opacity:.2; transform: scaleX(1) } 100% { opacity:.5; transform: scaleX(1.2) } }
@keyframes tf-cower { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tf-puppet { 0% { transform: scale(1) translateX(0) } 100% { transform: scale(1.1) translateX(5px) } }
@keyframes tf-crack { 0% { transform: translateY(0) } 100% { transform: translateY(100vh) } }
@keyframes tf-dust { 0% { transform: translate(0,0) scale(1); opacity:1 } 100% { transform: translate(20px,-20px) scale(0); opacity:0 } }
@keyframes tf-tremble { 0% { transform: translate(0,0) } 25% { transform: translate(1px,-1px) } 50% { transform: translate(-1px,1px) } 75% { transform: translate(1px,0) } 100% { transform: translate(0,0) } }

/* pericles-storm-prayer */
.scn-pericles-storm-prayer {
  background: linear-gradient(180deg, #0b0e1a 0%, #1a1f3a 40%, #28334a 70%, #0f121c 100%),
              radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 70%);
}
.scn-pericles-storm-prayer .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1c2238 0%, #323e5a 40%, #404f6e 100%);
  animation: psp-sky 8s ease-in-out infinite alternate;
}
.scn-pericles-storm-prayer .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0f1420 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: psp-sea 10s ease-in-out infinite alternate;
}
.scn-pericles-storm-prayer .ship {
  position: absolute; bottom: 35%; left: 50%; width: 120px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #2a1a0a 0%, #4a3220 50%, #2a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: psp-ship 4s ease-in-out infinite;
}
.scn-pericles-storm-prayer .figure {
  position: absolute; bottom: 38%; left: 50%; width: 16px; height: 30px;
  transform: translateX(-50%) translateY(-5px);
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: psp-fig 3s ease-in-out infinite;
}
.scn-pericles-storm-prayer .lightning {
  position: absolute; top: 10%; left: 30%; width: 4px; height: 60px;
  background: #c8dfff;
  filter: blur(1px);
  box-shadow: 0 0 20px 10px rgba(200,223,255,0.5), 0 0 40px 20px rgba(200,223,255,0.2);
  animation: psp-lightning 0.6s steps(2) infinite;
}
.scn-pericles-storm-prayer .wave-1 {
  position: absolute; bottom: 0; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(90deg, #1a2a3a 0%, #2a3a4a 50%, #1a2a3a 100%);
  border-radius: 50%; filter: blur(4px);
  animation: psp-wave1 6s ease-in-out infinite alternate;
}
.scn-pericles-storm-prayer .wave-2 {
  position: absolute; bottom: 10%; right: 5%; width: 100px; height: 16px;
  background: linear-gradient(90deg, #1a2a3a 0%, #2a3a4a 50%, #1a2a3a 100%);
  border-radius: 50%; filter: blur(4px);
  animation: psp-wave2 8s ease-in-out infinite alternate-reverse;
}
.scn-pericles-storm-prayer .cloud {
  position: absolute; top: 12%; right: 20%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: psp-cloud 40s linear infinite;
}
@keyframes psp-sky { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.02); } 100% { opacity: 0.6; transform: scaleY(0.98); } }
@keyframes psp-sea { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes psp-ship { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-2deg) translateY(2px); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); } 75% { transform: translateX(-50%) rotate(-1deg) translateY(1px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes psp-fig { 0% { transform: translateX(-50%) translateY(-5px) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-8px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(-5px) rotate(0deg); } }
@keyframes psp-lightning { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } }
@keyframes psp-wave1 { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(20px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(0.9); } }
@keyframes psp-wave2 { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-15px) scaleX(1.15); } 100% { transform: translateX(0) scaleX(0.95); } }
@keyframes psp-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

/* lychorida-infant */
.scn-lychorida-infant {
  background: linear-gradient(180deg, #0d0d12 0%, #1c1824 30%, #2a1f2e 60%, #0f0d14 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a3e 0%, transparent 60%);
}
.scn-lychorida-infant .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1520 0%, #2a2230 50%, #1a1520 100%);
  animation: lci-wall 20s ease-in-out infinite alternate;
}
.scn-lychorida-infant .bed {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1f1410 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8);
}
.scn-lychorida-infant .queen-cover {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1a10 100%);
  border-radius: 10%;
  filter: blur(2px);
  animation: lci-cover 12s ease-in-out infinite alternate;
}
.scn-lychorida-infant .lychorida {
  position: absolute; bottom: 5%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lci-lych 6s ease-in-out infinite;
}
.scn-lychorida-infant .infant {
  position: absolute; bottom: 12%; left: 40%; width: 18px; height: 22px;
  background: radial-gradient(circle, #c8a080 0%, #7a5a40 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(200,160,128,0.3);
  animation: lci-infant 4s ease-in-out infinite alternate;
}
.scn-lychorida-infant .candle {
  position: absolute; bottom: 25%; left: 55%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #b08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 24px 12px rgba(255,208,128,0.5), 0 0 40px 20px rgba(255,208,128,0.2);
  animation: lci-candle 3s ease-in-out infinite alternate;
}
.scn-lychorida-infant .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: lci-shadow 15s ease-in-out infinite alternate;
}
@keyframes lci-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes lci-cover { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(0.98); } }
@keyframes lci-lych { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes lci-infant { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes lci-candle { 0% { transform: scaleY(1) scaleX(1); opacity: 0.8; } 50% { transform: scaleY(1.1) scaleX(0.9); opacity: 1; } 100% { transform: scaleY(1) scaleX(1); opacity: 0.9; } }
@keyframes lci-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* pericles-baby-blessing */
.scn-pericles-baby-blessing {
  background: linear-gradient(180deg, #0f121a 0%, #1a1f2a 40%, #2a2f3a 70%, #0f0f14 100%),
              radial-gradient(ellipse at 50% 30%, #2a3a4a 0%, transparent 60%);
}
.scn-pericles-baby-blessing .bg-window {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #141a24 0%, #1a2230 100%);
  animation: pbb-bg 15s ease-in-out infinite alternate;
}
.scn-pericles-baby-blessing .storm-outside {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2230 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  filter: blur(4px);
  animation: pbb-storm 8s ease-in-out infinite alternate;
}
.scn-pericles-baby-blessing .pericles {
  position: absolute; bottom: 8%; left: 38%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbb-per 5s ease-in-out infinite;
}
.scn-pericles-baby-blessing .baby {
  position: absolute; bottom: 18%; left: 45%; width: 16px; height: 18px;
  background: radial-gradient(circle, #d4b088 0%, #8a6a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 15px rgba(212,176,136,0.3);
  animation: pbb-baby 4s ease-in-out infinite alternate;
}
.scn-pericles-baby-blessing .aura {
  position: absolute; bottom: 15%; left: 42%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(212,176,136,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: pbb-aura 6s ease-in-out infinite alternate;
}
.scn-pericles-baby-blessing .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a2a22 0%, #1a1a12 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-pericles-baby-blessing .pillar {
  position: absolute; bottom: 0; left: 20%; right: 60%; height: 70%;
  background: linear-gradient(90deg, #3a3a3a 0%, #2a2a2a 50%, #1a1a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.5);
  animation: pbb-pillar 20s ease-in-out infinite alternate;
}
@keyframes pbb-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.65; } }
@keyframes pbb-storm { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-8px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(0.95); } }
@keyframes pbb-per { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes pbb-baby { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(10deg) scale(1.08); } 100% { transform: rotate(-8deg) scale(1); } }
@keyframes pbb-aura { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(1.05); } }
@keyframes pbb-pillar { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

/* sailors-command */
.scn-sailors-command {
  background: linear-gradient(180deg, #0a0e1a 0%, #161e2e 40%, #1e2a3a 70%, #0a0c12 100%),
              radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 70%);
}
.scn-sailors-command .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #141c2a 0%, #1c2434 50%, #242c3e 100%);
  animation: sc-sky 10s ease-in-out infinite alternate;
}
.scn-sailors-command .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0f1824 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
  animation: sc-sea 12s ease-in-out infinite alternate;
}
.scn-sailors-command .ship-deck {
  position: absolute; bottom: 25%; left: 50%; width: 140px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #2a1a0a 0%, #4a3220 50%, #2a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: sc-deck 4s ease-in-out infinite;
}
.scn-sailors-command .queen {
  position: absolute; bottom: 28%; left: 52%; width: 18px; height: 38px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a4230 0%, #5a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px 2px rgba(0,0,0,0.5);
  animation: sc-queen 3s ease-in-out infinite alternate;
}
.scn-sailors-command .sail-1 {
  position: absolute; bottom: 24%; left: 42%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1414 100%);
  border-radius: 40%;
  transform-origin: bottom center;
  animation: sc-sail1 5s ease-in-out infinite;
}
.scn-sailors-command .sail-2 {
  position: absolute; bottom: 24%; left: 58%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1414 100%);
  border-radius: 40%;
  transform-origin: bottom center;
  animation: sc-sail2 5s ease-in-out infinite -2s;
}
.scn-sailors-command .wave {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 20px;
  background: linear-gradient(90deg, #1a2a3a 0%, #2a3a4a 50%, #1a2a3a 100%);
  border-radius: 50%; filter: blur(3px);
  animation: sc-wave 7s ease-in-out infinite alternate;
}
.scn-sailors-command .lightning {
  position: absolute; top: 8%; left: 60%; width: 3px; height: 50px;
  background: #c8d0e0;
  filter: blur(1px);
  box-shadow: 0 0 20px 8px rgba(200,208,224,0.4), 0 0 40px 16px rgba(200,208,224,0.15);
  animation: sc-lightning 0.5s steps(2) infinite;
}
@keyframes sc-sky { 0% { opacity: 0.6; } 50% { opacity: 0.85; } 100% { opacity: 0.55; } }
@keyframes sc-sea { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(1.5deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sc-deck { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(-3deg) translateY(3px); } 60% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes sc-queen { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg) translateX(-3px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes sc-sail1 { 0% { transform: rotate(0deg); } 25% { transform: rotate(-8deg) translateY(2px); } 50% { transform: rotate(0deg); } 75% { transform: rotate(6deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes sc-sail2 { 0% { transform: rotate(0deg); } 25% { transform: rotate(6deg) translateY(-1px); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-8deg) translateY(2px); } 100% { transform: rotate(0deg); } }
@keyframes sc-wave { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-20px) scaleY(1.2); } 100% { transform: translateX(0) scaleY(0.9); } }
@keyframes sc-lightning { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } }

.scn-thaisa-witnesses { background: linear-gradient(180deg, #f5e6d0 0%, #d9c3a0 50%, #b8a080 100%), radial-gradient(ellipse at 30% 40%, #fff7e6 0%, transparent 60%); }
.scn-thaisa-witnesses .bg { position:absolute; inset:0; background: linear-gradient(135deg, #f2e8d6 0%, #e0cbb0 100%); }
.scn-thaisa-witnesses .wall { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #d9c3a0 0%, #c9b08a 100%); border-bottom:4px solid #a08060; }
.scn-thaisa-witnesses .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); }
.scn-thaisa-witnesses .window { position:absolute; top:15%; left:20%; width:22%; height:45%; background: linear-gradient(180deg, #b8d0e0 0%, #e0f0ff 100%); border:6px solid #5a4a30; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,240,0.3); animation: th-window 8s ease-in-out infinite alternate; }
.scn-thaisa-witnesses .candle { position:absolute; bottom:35%; left:55%; width:6px; height:20px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a060 100%); border-radius:3px 3px 2px 2px; }
.scn-thaisa-witnesses .father-silhouette { position:absolute; bottom:0; left:30%; width:80px; height:140px; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: th-figure 6s ease-in-out infinite; }
.scn-thaisa-witnesses .daughter-silhouette { position:absolute; bottom:0; left:50%; width:70px; height:120px; background: radial-gradient(ellipse at 50% 45%, #4a3a2a 0%, #2a1a0a 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; animation: th-figure 7s ease-in-out infinite 0.5s; }
.scn-thaisa-witnesses .table { position:absolute; bottom:15%; left:40%; width:30%; height:10px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
@keyframes th-window { 0% { opacity:0.8; box-shadow: inset 0 0 15px rgba(255,255,240,0.2); } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(255,255,240,0.5); } 100% { opacity:0.85; box-shadow: inset 0 0 20px rgba(255,255,240,0.3); } }
@keyframes th-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-simonides-consent { background: linear-gradient(180deg, #f0e6d8 0%, #d8c8b0 40%, #b8a080 100%), radial-gradient(ellipse at 70% 30%, #fff8ec 0%, transparent 60%); }
.scn-simonides-consent .bg { position:absolute; inset:0; background: linear-gradient(135deg, #f2e8d6 0%, #e0cbb0 100%); }
.scn-simonides-consent .throne { position:absolute; bottom:5%; left:10%; width:25%; height:60%; background: linear-gradient(180deg, #c0a070 0%, #8a6a40 100%); border-radius:10% 10% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.3); }
.scn-simonides-consent .king-silhouette { position:absolute; bottom:20%; left:15%; width:60px; height:130px; background: radial-gradient(ellipse at 50% 35%, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: si-king 8s ease-in-out infinite; }
.scn-simonides-consent .daughter-silhouette { position:absolute; bottom:5%; left:35%; width:55px; height:110px; background: radial-gradient(ellipse at 50% 45%, #4a3a2a 0%, #2a1a0a 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; animation: si-figure 7s ease-in-out infinite 0.3s; }
.scn-simonides-consent .suitor-silhouette { position:absolute; bottom:5%; left:55%; width:60px; height:115px; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: si-figure 7s ease-in-out infinite 0.8s; }
.scn-simonides-consent .column { position:absolute; top:0; right:15%; width:6%; height:100%; background: linear-gradient(180deg, #d9c8b0 0%, #a08060 50%, #d9c8b0 100%); border-radius:4px; }
.scn-simonides-consent .ray { position:absolute; top:0; left:50%; width:60%; height:70%; background: linear-gradient(180deg, rgba(255,255,240,0.3) 0%, rgba(255,255,240,0) 100%); clip-path: polygon(30% 0, 70% 0, 80% 100%, 20% 100%); animation: si-ray 10s ease-in-out infinite alternate; }
@keyframes si-king { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes si-figure { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(0); } }
@keyframes si-ray { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-pericles-accepts { background: linear-gradient(180deg, #f5e6d0 0%, #d9c3a0 50%, #b8a080 100%), radial-gradient(ellipse at 50% 60%, #fff7e6 0%, transparent 60%); }
.scn-pericles-accepts .bg { position:absolute; inset:0; background: linear-gradient(135deg, #f2e8d6 0%, #e0cbb0 100%); }
.scn-pericles-accepts .canopy { position:absolute; top:0; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #c0a880 0%, #a08060 100%); border-radius:40% 40% 0 0; animation: pe-canopy 12s ease-in-out infinite alternate; }
.scn-pericles-accepts .bedpost-left { position:absolute; bottom:5%; left:22%; width:4%; height:60%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius:4px; }
.scn-pericles-accepts .bedpost-right { position:absolute; bottom:5%; right:22%; width:4%; height:60%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius:4px; }
.scn-pericles-accepts .bride-silhouette { position:absolute; bottom:30%; left:38%; width:55px; height:100px; background: radial-gradient(ellipse at 50% 45%, #5a4a3a 0%, #2a1a0a 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; animation: pe-bride 6s ease-in-out infinite; }
.scn-pericles-accepts .groom-silhouette { position:absolute; bottom:30%; right:38%; width:60px; height:105px; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: pe-groom 6s ease-in-out infinite 0.5s; }
.scn-pericles-accepts .candle { position:absolute; bottom:60%; left:50%; width:8px; height:25px; background: linear-gradient(180deg, #e8d0a0 0%, #c0a060 100%); border-radius:4px 4px 2px 2px; }
.scn-pericles-accepts .candle-flame { position:absolute; bottom:82%; left:50%; width:10px; height:14px; margin-left:-5px; background: radial-gradient(circle, #ffd060 0%, #ffa030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px #ffd060; animation: pe-flame 2s ease-in-out infinite alternate; }
@keyframes pe-canopy { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes pe-bride { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pe-groom { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes pe-flame { 0% { transform: scale(0.9); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.85; } }

.scn-gower-narrative-marriage { background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 50%, #000000 100%), radial-gradient(ellipse at 50% 20%, #2a2a4e 0%, transparent 70%); }
.scn-gower-narrative-marriage .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1e1e32 0%, #0a0a14 100%); }
.scn-gower-narrative-marriage .window { position:absolute; top:15%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #2a3a5e 0%, #3a4a6e 100%); border:4px solid #3a3a4a; border-radius:6px; box-shadow: inset 0 0 20px rgba(100,130,200,0.2); }
.scn-gower-narrative-marriage .moonbeam { position:absolute; top:15%; left:12%; width:26%; height:60%; background: linear-gradient(135deg, rgba(180,200,255,0.15) 0%, rgba(180,200,255,0) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: go-moon 15s ease-in-out infinite alternate; }
.scn-gower-narrative-marriage .cat-silhouette { position:absolute; bottom:30%; left:20%; width:40px; height:30px; background: #1a1a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: go-cat 4s ease-in-out infinite; }
.scn-gower-narrative-marriage .cat-silhouette::before { content:''; position:absolute; top:-30px; left:50%; width:4px; height:30px; background:#1a1a2a; border-radius:2px; transform-origin: bottom center; animation: go-cat-tail 3s ease-in-out infinite; }
.scn-gower-narrative-marriage .cricket { position:absolute; bottom:20%; right:25%; width:8px; height:12px; background: #3a4a2a; border-radius:50% 50% 0 0; animation: go-cricket 1.5s ease-in-out infinite; }
.scn-gower-narrative-marriage .oven { position:absolute; bottom:5%; right:10%; width:15%; height:25%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius:10% 10% 5% 5%; box-shadow: inset 0 0 20px #8a4a1a; animation: go-oven 5s ease-in-out infinite alternate; }
.scn-gower-narrative-marriage .mound-left { position:absolute; bottom:2%; left:10%; width:25%; height:20%; background: radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, #111122 100%); border-radius:50% 50% 0 0; }
.scn-gower-narrative-marriage .mound-right { position:absolute; bottom:2%; right:10%; width:20%; height:18%; background: radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, #111122 100%); border-radius:50% 50% 0 0; }
@keyframes go-moon { 0% { opacity:0.3; transform: translateX(-5px); } 50% { opacity:0.6; transform: translateX(5px); } 100% { opacity:0.4; transform: translateX(-3px); } }
@keyframes go-cat { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes go-cat-tail { 0% { transform: rotate(-15deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-15deg); } }
@keyframes go-cricket { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(0.8) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes go-oven { 0% { box-shadow: inset 0 0 15px #8a4a1a; } 50% { box-shadow: inset 0 0 30px #b06020; } 100% { box-shadow: inset 0 0 18px #8a4a1a; } }

.scn-antioch-palace-intro { background: linear-gradient(180deg, #3a2a1a 0%, #6a4a3a 30%, #8a6a4a 60%, #7a5a3a 100%), radial-gradient(ellipse at 50% 0%, #b08a5a 0%, transparent 70%); }

.scn-antioch-palace-intro .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 22%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); box-shadow: inset 0 8px 20px rgba(0, 0, 0, 0.6); }

.scn-antioch-palace-intro .col-l { position: absolute; bottom: 22%; left: 10%; width: 10%; height: 60%; background: linear-gradient(180deg, #b09a7a 0%, #8a7a5a 50%, #6a5a3a 100%); border-radius: 4% 4% 0 0; box-shadow: 4px 0 12px rgba(0, 0, 0, 0.3); animation: api-col 6s ease-in-out infinite alternate; }

.scn-antioch-palace-intro .col-r { position: absolute; bottom: 22%; right: 10%; width: 10%; height: 60%; background: linear-gradient(180deg, #b09a7a 0%, #8a7a5a 50%, #6a5a3a 100%); border-radius: 4% 4% 0 0; box-shadow: -4px 0 12px rgba(0, 0, 0, 0.3); animation: api-col 6s ease-in-out infinite alternate-reverse; }

.scn-antioch-palace-intro .arch { position: absolute; bottom: 35%; left: 20%; right: 20%; height: 45%; background: linear-gradient(180deg, #c0a87a 0%, #a08a5a 60%, #7a6a3a 100%); clip-path: ellipse(50% 60% at 50% 100%); box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.4); animation: api-arch 9s ease-in-out infinite alternate; }

.scn-antioch-palace-intro .throne { position: absolute; bottom: 22%; left: 38%; right: 38%; height: 28%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 8% 8% / 60% 60% 20% 20%; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.7); animation: api-throne 12s ease-in-out infinite alternate; }

.scn-antioch-palace-intro .figure-king { position: absolute; bottom: 30%; left: 42%; width: 8%; height: 22%; background: linear-gradient(180deg, #5a2a1a 0%, #3a1810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); animation: api-king 5s ease-in-out infinite alternate; }

.scn-antioch-palace-intro .figure-prince { position: absolute; bottom: 24%; left: 30%; width: 6%; height: 18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.4); animation: api-prince 4s ease-in-out infinite alternate; }

.scn-antioch-palace-intro .torch-l { position: absolute; bottom: 65%; left: 12%; width: 3%; height: 8%; background: linear-gradient(180deg, #c06020 0%, #8a3a10 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 24px 8px #c06020, 0 0 48px 16px rgba(192, 96, 32, 0.4); animation: api-torch 2s ease-in-out infinite alternate; }

.scn-antioch-palace-intro .torch-r { position: absolute; bottom: 65%; right: 12%; width: 3%; height: 8%; background: linear-gradient(180deg, #c06020 0%, #8a3a10 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 24px 8px #c06020, 0 0 48px 16px rgba(192, 96, 32, 0.4); animation: api-torch 2.5s ease-in-out infinite alternate-reverse; }

@keyframes api-col { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.02); opacity: 1; } 100% { transform: scaleY(0.98); opacity: 0.85; } }

@keyframes api-arch { 0% { opacity: 0.85; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.01); } 100% { opacity: 0.9; transform: scaleX(0.99); } }

@keyframes api-throne { 0% { box-shadow: 0 6px 16px rgba(0, 0, 0, 0.7); } 50% { box-shadow: 0 8px 24px rgba(0, 0, 0, 0.8); } 100% { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6); } }

@keyframes api-king { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(1deg); } 70% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }

@keyframes api-prince { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 40% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(-3px) translateY(0) rotate(-2deg); } }

@keyframes api-torch { 0% { box-shadow: 0 0 18px 4px #c06020, 0 0 36px 8px rgba(192, 96, 32, 0.3); opacity: 0.8; } 50% { box-shadow: 0 0 30px 10px #e08030, 0 0 60px 18px rgba(224, 128, 48, 0.5); opacity: 1; } 100% { box-shadow: 0 0 22px 6px #c06020, 0 0 44px 12px rgba(192, 96, 32, 0.35); opacity: 0.85; } }

/* Daughter entrance */
.scn-daughter-entrance-admiration { background: linear-gradient(180deg, #c0a87a 0%, #d0b88a 30%, #e0c8a0 60%, #d0b88a 100%), radial-gradient(ellipse at 50% 0%, #f0d8b0 0%, transparent 70%); }

.scn-daughter-entrance-admiration .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 18%; background: linear-gradient(180deg, #b09870 0%, #8a7a5a 100%); box-shadow: inset 0 8px 20px rgba(0, 0, 0, 0.2); }

.scn-daughter-entrance-admiration .wall-bg { position: absolute; bottom: 18%; left: 0; right: 0; height: 82%; background: linear-gradient(180deg, #e0c8a0 0%, #c8b088 100%); opacity: 0.6; }

.scn-daughter-entrance-admiration .arch-d { position: absolute; bottom: 28%; left: 30%; right: 30%; height: 55%; background: linear-gradient(180deg, #f0d8b0 0%, #e0c8a0 60%, #c8b088 100%); clip-path: ellipse(50% 60% at 50% 100%); box-shadow: inset 0 0 40px rgba(255, 215, 140, 0.3); animation: dea-arch 10s ease-in-out infinite alternate; }

.scn-daughter-entrance-admiration .figure-daughter { position: absolute; bottom: 18%; left: 42%; width: 10%; height: 38%; background: linear-gradient(180deg, #f0d8b0 0%, #e0c09a 30%, #d0a880 70%, #c09870 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; box-shadow: 0 0 30px 10px rgba(240, 200, 140, 0.3); animation: dea-figure 8s ease-in-out infinite alternate; }

.scn-daughter-entrance-admiration .veil { position: absolute; bottom: 38%; left: 40%; right: 40%; height: 30%; background: linear-gradient(180deg, rgba(255, 235, 200, 0.6) 0%, rgba(255, 235, 200, 0.1) 100%); clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%); filter: blur(2px); animation: dea-veil 6s ease-in-out infinite alternate; }

.scn-daughter-entrance-admiration .light-ray { position: absolute; bottom: 20%; left: 35%; right: 35%; height: 80%; background: linear-gradient(180deg, rgba(255, 240, 200, 0.3) 0%, rgba(255, 240, 200, 0) 100%); clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%); filter: blur(4px); animation: dea-light 5s ease-in-out infinite alternate; }

.scn-daughter-entrance-admiration .petal { position: absolute; width: 1.5%; height: 1.5%; border-radius: 50% 0% 50% 0%; background: radial-gradient(circle, #f0c8a0 0%, #e0b080 100%); opacity: 0.7; }

.scn-daughter-entrance-admiration .petal-a { bottom: 40%; left: 30%; animation: dea-petal-fall 12s linear infinite; }

.scn-daughter-entrance-admiration .petal-b { bottom: 60%; left: 55%; animation: dea-petal-fall 15s linear infinite 3s; }

.scn-daughter-entrance-admiration .petal-c { bottom: 50%; left: 20%; animation: dea-petal-fall 18s linear infinite 6s; }

@keyframes dea-arch { 0% { opacity: 0.9; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.85; transform: scaleY(0.98); } }

@keyframes dea-figure { 0% { transform: translateY(0) rotate(0deg); opacity: 0.9; } 50% { transform: translateY(-4px) rotate(2deg); opacity: 1; } 100% { transform: translateY(2px) rotate(-1deg); opacity: 0.85; } }

@keyframes dea-veil { 0% { transform: translateX(0) rotate(-2deg); opacity: 0.5; } 50% { transform: translateX(3px) rotate(2deg); opacity: 0.8; } 100% { transform: translateX(-3px) rotate(0deg); opacity: 0.6; } }

@keyframes dea-light { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

@keyframes dea-petal-fall { 0% { transform: translateY(-10vh) rotate(0deg) scale(1); opacity: 0; } 10% { opacity: 0.7; } 50% { transform: translateY(30vh) rotate(180deg) scale(0.8); opacity: 0.5; } 90% { opacity: 0.3; } 100% { transform: translateY(70vh) rotate(360deg) scale(0.5); opacity: 0; } }

/* Pericles declaration of love */
.scn-pericles-declaration-love { background: linear-gradient(180deg, #d0b898 0%, #e0c8a8 30%, #f0d8b8 60%, #e0c8a8 100%), radial-gradient(ellipse at 50% 50%, #f8e0c0 0%, transparent 70%); }

.scn-pericles-declaration-love .wall { position: absolute; bottom: 20%; left: 0; right: 0; height: 80%; background: linear-gradient(90deg, #b09878 0%, #d0b898 30%, #e0c8a8 50%, #d0b898 70%, #b09878 100%); }

.scn-pericles-declaration-love .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #a08868 0%, #8a7050 100%); box-shadow: inset 0 8px 20px rgba(0, 0, 0, 0.2); }

.scn-pericles-declaration-love .window { position: absolute; bottom: 60%; left: 38%; right: 38%; height: 30%; background: linear-gradient(180deg, #f8e8c8 0%, #e0d0b0 100%); clip-path: ellipse(50% 100% at 50% 100%); box-shadow: 0 0 40px 12px rgba(248, 232, 200, 0.3); animation: pdl-window 8s ease-in-out infinite alternate; }

.scn-pericles-declaration-love .figure-per { position: absolute; bottom: 20%; left: 34%; 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; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4); animation: pdl-pericles 5s ease-in-out infinite alternate; }

.scn-pericles-declaration-love .figure-d { position: absolute; bottom: 20%; left: 52%; width: 8%; height: 30%; background: linear-gradient(180deg, #f0d0b0 0%, #e0c09a 50%, #d0b088 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); animation: pdl-daughter 5s ease-in-out infinite alternate-reverse; }

.scn-pericles-declaration-love .glow-heart { position: absolute; bottom: 32%; left: 46%; width: 4%; height: 4%; background: radial-gradient(circle, #f0a080 0%, #e08060 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(240, 160, 128, 0.4), 0 0 60px 20px rgba(240, 160, 128, 0.2); animation: pdl-heart 4s ease-in-out infinite alternate; }

.scn-pericles-declaration-love .petal-drift { position: absolute; width: 1.2%; height: 1.2%; border-radius: 50% 0% 50% 0%; background: radial-gradient(circle, #f0c0a0 0%, #e0a880 100%); }

.scn-pericles-declaration-love .petal-d1 { bottom: 40%; left: 25%; animation: pdl-petal 14s linear infinite; }

.scn-pericles-declaration-love .petal-d2 { bottom: 55%; left: 60%; animation: pdl-petal 18s linear infinite 5s; }

@keyframes pdl-window { 0% { opacity: 0.8; box-shadow: 0 0 30px 8px rgba(248, 232, 200, 0.2); } 50% { opacity: 1; box-shadow: 0 0 50px 16px rgba(248, 232, 200, 0.4); } 100% { opacity: 0.85; box-shadow: 0 0 35px 10px rgba(248, 232, 200, 0.25); } }

@keyframes pdl-pericles { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 40% { transform: translateX(2px) translateY(-2px) rotate(3deg); } 80% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

@keyframes pdl-daughter { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 40% { transform: translateX(-2px) translateY(-2px) rotate(-3deg); } 80% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

@keyframes pdl-heart { 0% { transform: scale(0.8); opacity: 0.6; box-shadow: 0 0 20px 6px rgba(240, 160, 128, 0.3), 0 0 40px 12px rgba(240, 160, 128, 0.1); } 50% { transform: scale(1.2); opacity: 1; box-shadow: 0 0 40px 14px rgba(240, 160, 128, 0.5), 0 0 80px 24px rgba(240, 160, 128, 0.2); } 100% { transform: scale(0.9); opacity: 0.7; box-shadow: 0 0 25px 8px rgba(240, 160, 128, 0.35), 0 0 50px 16px rgba(240, 160, 128, 0.15); } }

@keyframes pdl-petal { 0% { transform: translateY(-10vh) rotate(0deg) scale(1); opacity: 0; } 10% { opacity: 0.6; } 50% { transform: translateY(40vh) rotate(240deg) scale(0.7); opacity: 0.4; } 90% { opacity: 0.2; } 100% { transform: translateY(80vh) rotate(480deg) scale(0.4); opacity: 0; } }

/* Hesperides warning */
.scn-hesperides-warning { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #6a3a2a 60%, #5a2a1a 100%), radial-gradient(ellipse at 50% 0%, #7a4a2a 0%, transparent 70%); }

.scn-hesperides-warning .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 18%; background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%); box-shadow: inset 0 8px 20px rgba(0, 0, 0, 0.7); }

.scn-hesperides-warning .wall-dark { position: absolute; bottom: 18%; left: 0; right: 0; height: 82%; background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 50%, #2a0a00 100%); box-shadow: inset 0 20px 40px rgba(0, 0, 0, 0.5); }

.scn-hesperides-warning .tree { position: absolute; bottom: 18%; left: 38%; right: 38%; height: 50%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); clip-path: polygon(45% 0%, 55% 0%, 60% 30%, 65% 60%, 60% 100%, 40% 100%, 35% 60%, 40% 30%); box-shadow: 0 0 20px 6px rgba(0, 0, 0, 0.4); animation: hw-tree 14s ease-in-out infinite alternate; }

.scn-hesperides-warning .fruit-glow { position: absolute; bottom: 38%; left: 46%; right: 46%; height: 6%; background: radial-gradient(circle, #f0c040 0%, #d0a030 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(240, 192, 64, 0.5), 0 0 60px 20px rgba(240, 192, 64, 0.2); animation: hw-fruit 3s ease-in-out infinite alternate; }

.scn-hesperides-warning .dragon-shadow { position: absolute; bottom: 40%; left: 20%; right: 20%; height: 50%; background: linear-gradient(180deg, rgba(180, 60, 40, 0.3) 0%, rgba(180, 60, 40, 0.1) 50%, transparent 100%); clip-path: polygon(20% 100%, 40% 20%, 50% 10%, 60% 20%, 80% 100%, 70% 100%, 55% 40%, 45% 40%, 30% 100%); filter: blur(6px); animation: hw-dragon 7s ease-in-out infinite alternate; }

.scn-hesperides-warning .figure-per { position: absolute; bottom: 18%; left: 32%; width: 7%; height: 24%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.6); animation: hw-pericles 5s ease-in-out infinite alternate; }

.scn-hesperides-warning .figure-ant { position: absolute; bottom: 18%; left: 56%; width: 8%; height: 26%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.6); animation: hw-antiochus 6s ease-in-out infinite alternate-reverse; }

.scn-hesperides-warning .warning-rune { position: absolute; bottom: 25%; left: 46%; width: 3%; height: 4%; background: radial-gradient(circle, #c06020 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 4px rgba(192, 96, 32, 0.4); animation: hw-rune 8s ease-in-out infinite; }

@keyframes hw-tree { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.02) scaleX(0.98); opacity: 0.9; } 100% { transform: scaleY(0.98) scaleX(1.02); opacity: 0.7; } }

@keyframes hw-fruit { 0% { box-shadow: 0 0 20px 6px rgba(240, 192, 64, 0.3), 0 0 40px 12px rgba(240, 192, 64, 0.1); opacity: 0.7; } 50% { box-shadow: 0 0 40px 14px rgba(240, 192, 64, 0.6), 0 0 80px 24px rgba(240, 192, 64, 0.3); opacity: 1; } 100% { box-shadow: 0 0 25px 8px rgba(240, 192, 64, 0.35), 0 0 50px 16px rgba(240, 192, 64, 0.15); opacity: 0.8; } }

@keyframes hw-dragon { 0% { transform: translateX(0) scaleX(1); opacity: 0.3; } 50% { transform: translateX(4px) scaleX(1.05); opacity: 0.6; } 100% { transform: translateX(-4px) scaleX(0.95); opacity: 0.2; } }

@keyframes hw-pericles { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(2px) rotate(-2deg); } 70% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

@keyframes hw-antiochus { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-2px) rotate(2deg); } 70% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }

@keyframes hw-rune { 0% { transform: scale(0.8) rotate(0deg); opacity: 0.4; } 25% { transform: scale(1.1) rotate(90deg); opacity: 0.8; } 50% { transform: scale(1) rotate(180deg); opacity: 0.6; } 75% { transform: scale(1.2) rotate(270deg); opacity: 0.9; } 100% { transform: scale(0.9) rotate(360deg); opacity: 0.3; } }

.scn-pericles-identity {
  background: linear-gradient(180deg, #f2e8d0 0%, #d4c4a8 40%, #b8a688 100%),
              radial-gradient(ellipse at 50% 20%, #fff8e6 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-pericles-identity .wall { position:absolute; inset:0; background: linear-gradient(135deg, #e8ddd0 0%, #c8baa8 100%); }
.scn-pericles-identity .window { position:absolute; top:15%; left:10%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 30%, #ffe8b0 0%, #d4c090 40%, transparent 60%); border-radius:4% 4% 2% 2%; box-shadow: inset 0 0 40px 10px rgba(255,232,176,0.3); animation: p1-window 4s ease-in-out infinite alternate; }
.scn-pericles-identity .curtain { position:absolute; top:10%; left:8%; width:34%; height:50%; background: linear-gradient(90deg, rgba(180,160,140,0.8) 0%, rgba(200,180,160,0.4) 50%, transparent 100%); filter: blur(4px); animation: p1-curtain 12s ease-in-out infinite; }
.scn-pericles-identity .figure { position:absolute; bottom:20%; right:20%; width:22px; height:50px; background: linear-gradient(180deg, #3a2e24 0%, #1a1410 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: p1-figure 5s ease-in-out infinite alternate; }
.scn-pericles-identity .table { position:absolute; bottom:18%; right:10%; width:60px; height:8px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 2px 2px 0 0; }
.scn-pericles-identity .lamp { position:absolute; bottom:26%; right:12%; width:8px; height:14px; background: radial-gradient(ellipse at 50% 20%, #f0c868 0%, #c08030 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px rgba(240,200,104,0.5); animation: p1-lamp 3s ease-in-out infinite alternate; }
.scn-pericles-identity .dust { position:absolute; top:30%; left:45%; width:3px; height:3px; background: #fff8e0; border-radius: 50%; filter: blur(1px); animation: p1-dust 15s linear infinite; }
@keyframes p1-window { 0% { opacity:0.9; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:0.85; transform: scale(0.98); } }
@keyframes p1-curtain { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(2px) rotate(-0.5deg); } }
@keyframes p1-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes p1-lamp { 0% { box-shadow: 0 0 15px 4px rgba(240,200,104,0.4); } 50% { box-shadow: 0 0 25px 8px rgba(240,200,104,0.7); } 100% { box-shadow: 0 0 18px 5px rgba(240,200,104,0.5); } }
@keyframes p1-dust { 0% { transform: translate(0,0) scale(1); opacity:0; } 10% { opacity:0.8; } 90% { opacity:0.6; } 100% { transform: translate(30px, -40px) scale(0.5); opacity:0; } }

.scn-knights-dance {
  background: linear-gradient(180deg, #4a2a1a 0%, #7a4a2a 30%, #c08050 60%, #e8c090 100%),
              radial-gradient(ellipse at 50% 30%, #f0d090 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-knights-dance .bg-hall { position:absolute; inset:0; background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 40%, #8a5a3a 100%); }
.scn-knights-dance .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-knights-dance .knight-left { position:absolute; bottom:15%; left:28%; width:30px; height:60px; background: linear-gradient(180deg, #806050 0%, #403028 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: kd-left 2s ease-in-out infinite; }
.scn-knights-dance .knight-right { position:absolute; bottom:15%; right:28%; width:30px; height:62px; background: linear-gradient(180deg, #705040 0%, #302018 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: kd-right 2.2s ease-in-out infinite; }
.scn-knights-dance .chandelier { position:absolute; top:5%; left:50%; width:40px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #f0c868 0%, #c08030 50%, transparent 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 10px rgba(240,200,104,0.5); animation: kd-chandelier 4s ease-in-out infinite alternate; }
.scn-knights-dance .sparkle-1 { position:absolute; top:12%; left:35%; width:4px; height:4px; background: #ffe8b0; border-radius: 50%; filter: blur(1px); animation: kd-sparkle 3s ease-in-out infinite; }
.scn-knights-dance .sparkle-2 { position:absolute; top:8%; right:30%; width:3px; height:3px; background: #ffe8b0; border-radius: 50%; filter: blur(1px); animation: kd-sparkle 3s ease-in-out infinite 1.5s; }
@keyframes kd-left { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(5deg) translateY(-2px); } 50% { transform: translateX(0) rotate(0deg) translateY(0); } 75% { transform: translateX(-8px) rotate(-5deg) translateY(-2px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kd-right { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-8px) rotate(-5deg) translateY(-2px); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(8px) rotate(5deg) translateY(-2px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kd-chandelier { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes kd-sparkle { 0%,100% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.5); } }

.scn-dance-conclusion {
  background: linear-gradient(180deg, #5a3020 0%, #8a5030 30%, #c08050 60%, #e8c090 100%),
              radial-gradient(ellipse at 50% 40%, #f0d0a0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-dance-conclusion .bg-stage { position:absolute; inset:0; background: linear-gradient(180deg, #4a2010 0%, #6a3a1a 40%, #a06040 100%); }
.scn-dance-conclusion .curtain-left { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(90deg, #802020 0%, #a03030 50%, transparent 100%); filter: blur(2px); animation: dc-curtain-left 6s ease-in-out infinite; }
.scn-dance-conclusion .curtain-right { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(270deg, #802020 0%, #a03030 50%, transparent 100%); filter: blur(2px); animation: dc-curtain-right 6s ease-in-out infinite 0.5s; }
.scn-dance-conclusion .bow-figure { position:absolute; bottom:15%; left:30%; width:24px; height:40px; background: linear-gradient(180deg, #604830 0%, #302018 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: dc-bow 4s ease-in-out infinite; }
.scn-dance-conclusion .stand-figure { position:absolute; bottom:15%; right:30%; width:22px; height:50px; background: linear-gradient(180deg, #705040 0%, #403028 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; animation: dc-stand 3s ease-in-out infinite; }
.scn-dance-conclusion .footlight { position:absolute; bottom:5%; left:20%; width:60%; height:8px; background: linear-gradient(90deg, transparent, #f0c868 20%, #f0c868 80%, transparent); filter: blur(4px); animation: dc-footlight 5s ease-in-out infinite alternate; }
.scn-dance-conclusion .glow-spot { position:absolute; top:10%; left:30%; width:40%; height:60%; background: radial-gradient(ellipse at 50% 0%, rgba(240,200,104,0.3) 0%, transparent 70%); animation: dc-glow 8s ease-in-out infinite alternate; }
@keyframes dc-curtain-left { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-5px); } }
@keyframes dc-curtain-right { 0%,100% { transform: translateX(0); } 50% { transform: translateX(5px); } }
@keyframes dc-bow { 0% { transform: rotate(0deg); } 25% { transform: rotate(30deg) translateY(5px); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-30deg) translateY(5px); } 100% { transform: rotate(0deg); } }
@keyframes dc-stand { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dc-footlight { 0% { opacity:0.8; filter: blur(4px); } 50% { opacity:1; filter: blur(3px); } 100% { opacity:0.9; filter: blur(5px); } }
@keyframes dc-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.6; transform: scale(0.95); } }

.scn-rest-retire {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 30%, #2a2a4e 60%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 20%, #3a3a5e 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-rest-retire .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #080820 0%, #1a1a38 100%); }
.scn-rest-retire .bed { position:absolute; bottom:10%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0a08 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 4px 12px rgba(0,0,0,0.6); }
.scn-rest-retire .sleeper { position:absolute; bottom:15%; left:35%; width:18px; height:35px; background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rr-sleeper 6s ease-in-out infinite alternate; }
.scn-rest-retire .window-moon { position:absolute; top:12%; right:12%; width:25%; height:35%; background: radial-gradient(ellipse at 50% 30%, #a0a0c0 0%, #606080 40%, transparent 60%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 30px 8px rgba(160,160,192,0.3); animation: rr-moon 8s ease-in-out infinite alternate; }
.scn-rest-retire .candle { position:absolute; bottom:22%; left:15%; width:6px; height:16px; background: linear-gradient(180deg, #e8c040 0%, #c08020 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; }
.scn-rest-retire .candle-glow { position:absolute; bottom:24%; left:15%; width:20px; height:20px; background: radial-gradient(circle, rgba(232,192,64,0.6) 0%, rgba(232,192,64,0) 100%); border-radius: 50%; animation: rr-candle 3s ease-in-out infinite alternate; }
.scn-rest-retire .breath { position:absolute; bottom:20%; left:38%; width:12px; height:6px; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.1) 0%, transparent 100%); filter: blur(2px); animation: rr-breath 6s ease-in-out infinite; }
@keyframes rr-sleeper { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes rr-moon { 0% { opacity:0.6; box-shadow: 0 0 20px 4px rgba(160,160,192,0.3); } 50% { opacity:0.8; box-shadow: 0 0 35px 8px rgba(160,160,192,0.5); } 100% { opacity:0.7; box-shadow: 0 0 25px 5px rgba(160,160,192,0.4); } }
@keyframes rr-candle { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.8; transform: scale(0.9); } }
@keyframes rr-breath { 0% { transform: translateX(0) scaleX(1); } 25% { transform: translateX(3px) scaleX(1.3); } 50% { transform: translateX(0) scaleX(1); } 75% { transform: translateX(-3px) scaleX(0.8); } 100% { transform: translateX(0) scaleX(1); } }

.scn-brothel-dionyza-coaxing {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a18 40%, #1a1008 100%), radial-gradient(ellipse at 50% 100%, #1a1008 0%, transparent 70%);
}
.scn-brothel-dionyza-coaxing .bg-wall {
  position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3420 0%, #2a1a10 100%); animation: bdc-wall 12s ease-in-out infinite alternate;
}
.scn-brothel-dionyza-coaxing .bg-floor {
  position: absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-brothel-dionyza-coaxing .table {
  position: absolute; bottom:30%; left:40%; width:80px; height:50px; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-brothel-dionyza-coaxing .candle {
  position: absolute; bottom:48%; left:45%; width:6px; height:20px; background: linear-gradient(180deg, #f0b060 0%, #c08040 60%, #804020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px #e0a040, 0 0 40px 12px rgba(224,160,64,.3); animation: bdc-candle 0.8s ease-in-out infinite alternate;
}
.scn-brothel-dionyza-coaxing .figure-large {
  position: absolute; bottom:24%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #3a2010 0%, #1a0800 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bdc-figureL 2s ease-in-out infinite;
}
.scn-brothel-dionyza-coaxing .figure-small {
  position: absolute; bottom:24%; left:50%; width:18px; height:40px; background: linear-gradient(180deg, #4a2a18 0%, #2a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bdc-figureS 1.5s ease-in-out infinite;
}
.scn-brothel-dionyza-coaxing .drape {
  position: absolute; top:0; right:10%; width:30px; height:100%; background: linear-gradient(180deg, rgba(80,40,20,.7) 0%, rgba(40,20,10,.9) 100%); border-radius: 0 10% 10% 0; filter: blur(2px); animation: bdc-drape 3s ease-in-out infinite alternate;
}
.scn-brothel-dionyza-coaxing .shadow-flicker {
  position: absolute; bottom:30%; left:35%; width:60px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); animation: bdc-shadow 1.2s ease-in-out infinite alternate;
}
@keyframes bdc-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes bdc-candle { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 18px 4px #e0a040, 0 0 36px 8px rgba(224,160,64,.3); } 50% { transform: scaleY(1.05) translateY(-2px); box-shadow: 0 0 28px 8px #f0c060, 0 0 48px 12px rgba(240,192,96,.5); } 100% { transform: scaleY(.95) translateY(0); box-shadow: 0 0 20px 5px #e0a040, 0 0 36px 8px rgba(224,160,64,.3); } }
@keyframes bdc-figureL { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes bdc-figureS { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-3px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes bdc-drape { 0% { transform: skewX(0) translateX(0); } 50% { transform: skewX(-3deg) translateX(-5px); } 100% { transform: skewX(0) translateX(0); } }
@keyframes bdc-shadow { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.8; transform: scale(1.1); } 100% { opacity:.5; transform: scale(1); } }

.scn-brothel-marina-reluctant {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #0e0e1e 0%, transparent 60%);
}
.scn-brothel-marina-reluctant .bg-wall {
  position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); animation: bmr-wall 15s ease-in-out infinite alternate;
}
.scn-brothel-marina-reluctant .bg-floor {
  position: absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 15% 15% 0 0 / 8% 8% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.5);
}
.scn-brothel-marina-reluctant .window {
  position: absolute; top:20%; left:35%; width:80px; height:100px; background: linear-gradient(180deg, #4a4a6e 0%, #2a2a4e 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); overflow: hidden;
}
.scn-brothel-marina-reluctant .window::after {
  content: ''; position: absolute; inset:0; background: linear-gradient(135deg, rgba(255,255,255,.05) 0%, transparent 50%, rgba(0,0,0,.2) 100%); animation: bmr-window 8s ease-in-out infinite alternate;
}
.scn-brothel-marina-reluctant .bench {
  position: absolute; bottom:30%; left:45%; width:60px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-brothel-marina-reluctant .figure {
  position: absolute; bottom:22%; left:50%; width:16px; height:38px; background: linear-gradient(180deg, #3a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bmr-figure 6s ease-in-out infinite;
}
.scn-brothel-marina-reluctant .lantern {
  position: absolute; bottom:35%; left:30%; width:10px; height:14px; background: radial-gradient(circle, #c0a060 0%, #806030 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 15px 4px #a08040, 0 0 30px 8px rgba(160,128,64,.3); animation: bmr-lantern 4s ease-in-out infinite alternate;
}
.scn-brothel-marina-reluctant .flower {
  position: absolute; bottom:32%; left:48%; width:8px; height:12px; background: radial-gradient(circle, #b87878 0%, #5a2a2a 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(184,120,120,.5); animation: bmr-flower 7s ease-in-out infinite alternate;
}
@keyframes bmr-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes bmr-window { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes bmr-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes bmr-lantern { 0% { box-shadow: 0 0 12px 3px #a08040, 0 0 24px 6px rgba(160,128,64,.2); opacity:.8; } 50% { box-shadow: 0 0 20px 6px #c0a060, 0 0 36px 10px rgba(192,160,96,.4); opacity:1; } 100% { box-shadow: 0 0 14px 4px #a08040, 0 0 28px 8px rgba(160,128,64,.25); opacity:.85; } }
@keyframes bmr-flower { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(-5deg) scale(1); } }

.scn-brothel-marina-thanks {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 80% 100%, #0e0e1e 0%, transparent 70%);
}
.scn-brothel-marina-thanks .bg-wall {
  position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); animation: bmt-wall 14s ease-in-out infinite alternate;
}
.scn-brothel-marina-thanks .bg-floor {
  position: absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 10% 10% 0 0 / 5% 5% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.5);
}
.scn-brothel-marina-thanks .window {
  position: absolute; top:15%; right:15%; width:90px; height:110px; background: linear-gradient(180deg, #2a3a4e 0%, #1a2a3e 100%); border: 2px solid #4a3a2a; border-radius: 8px; overflow: hidden;
}
.scn-brothel-marina-thanks .window::after {
  content: ''; position: absolute; inset:0; background: linear-gradient(135deg, rgba(255,255,255,.1) 0%, transparent 50%, rgba(0,0,0,.3) 100%); animation: bmt-seascape 20s linear infinite;
}
.scn-brothel-marina-thanks .figure {
  position: absolute; bottom:22%; left:35%; width:16px; height:40px; background: linear-gradient(180deg, #3a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bmt-figure 8s ease-in-out infinite;
}
.scn-brothel-marina-thanks .rope-coil {
  position: absolute; bottom:26%; left:55%; width:20px; height:20px; background: radial-gradient(circle, #6a5a3a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: bmt-rope 12s ease-in-out infinite alternate;
}
.scn-brothel-marina-thanks .candle {
  position: absolute; bottom:40%; left:25%; width:5px; height:18px; background: linear-gradient(180deg, #f0b060 0%, #c08040 60%, #804020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 16px 4px #e0a040, 0 0 32px 8px rgba(224,160,64,.3); animation: bmt-candle 3s ease-in-out infinite alternate;
}
.scn-brothel-marina-thanks .curtain {
  position: absolute; top:0; left:5%; width:20px; height:100%; background: linear-gradient(180deg, rgba(80,40,60,.6) 0%, rgba(40,20,30,.8) 100%); border-radius: 0 10% 10% 0; filter: blur(3px); animation: bmt-curtain 15s ease-in-out infinite alternate;
}
@keyframes bmt-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes bmt-seascape { 0% { background-position: 0 0; } 100% { background-position: 0 50px; } }
@keyframes bmt-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes bmt-rope { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(10deg) scale(1.05); } 100% { transform: rotate(0) scale(1); } }
@keyframes bmt-candle { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 14px 3px #e0a040, 0 0 28px 6px rgba(224,160,64,.3); } 50% { transform: scaleY(1.03) translateY(-1px); box-shadow: 0 0 22px 6px #f0c060, 0 0 40px 10px rgba(240,192,96,.4); } 100% { transform: scaleY(.97) translateY(0); box-shadow: 0 0 16px 4px #e0a040, 0 0 30px 7px rgba(224,160,64,.3); } }
@keyframes bmt-curtain { 0% { transform: skewX(0) translateX(0); } 50% { transform: skewX(-2deg) translateX(-3px); } 100% { transform: skewX(0) translateX(0); } }

.scn-brothel-leonine-asks-when {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 50%, #1a1008 100%), radial-gradient(ellipse at 30% 100%, #1a1008 0%, transparent 70%);
}
.scn-brothel-leonine-asks-when .bg-wall {
  position: absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a3420 0%, #2a1a10 100%); animation: blw-wall 16s ease-in-out infinite alternate;
}
.scn-brothel-leonine-asks-when .bg-floor {
  position: absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%); border-radius: 25% 25% 0 0 / 12% 12% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-brothel-leonine-asks-when .table {
  position: absolute; bottom:25%; left:35%; width:90px; height:45px; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-brothel-leonine-asks-when .map {
  position: absolute; bottom:38%; left:38%; width:50px; height:35px; background: linear-gradient(135deg, #c8a060 0%, #a08040 50%, #c8a060 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(-5deg); animation: blw-map 20s ease-in-out infinite alternate;
}
.scn-brothel-leonine-asks-when .figure-left {
  position: absolute; bottom:20%; left:30%; width:22px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: blw-figureL 5s ease-in-out infinite;
}
.scn-brothel-leonine-asks-when .figure-right {
  position: absolute; bottom:20%; right:30%; width:20px; height:42px; background: linear-gradient(180deg, #4a2a18 0%, #2a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: blw-figureR 4.5s ease-in-out infinite;
}
.scn-brothel-leonine-asks-when .lantern {
  position: absolute; bottom:35%; left:50%; width:12px; height:16px; background: radial-gradient(circle, #e0b060 0%, #a08040 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 5px #c0a060, 0 0 40px 10px rgba(192,160,96,.4); animation: blw-lantern 3.5s ease-in-out infinite alternate;
}
.scn-brothel-leonine-asks-when .ship-model {
  position: absolute; bottom:30%; right:20%; width:30px; height:20px; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 5% 5% 20% 20%; clip-path: polygon(0 50%, 100% 50%, 80% 100%, 20% 100%); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: blw-ship 15s ease-in-out infinite alternate;
}
@keyframes blw-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes blw-map { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes blw-figureL { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes blw-figureR { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes blw-lantern { 0% { box-shadow: 0 0 16px 4px #c0a060, 0 0 32px 8px rgba(192,160,96,.3); opacity:.85; } 50% { box-shadow: 0 0 28px 8px #e0c080, 0 0 48px 12px rgba(224,192,128,.5); opacity:1; } 100% { box-shadow: 0 0 20px 5px #c0a060, 0 0 36px 9px rgba(192,160,96,.35); opacity:.9; } }
@keyframes blw-ship { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(5deg) scale(1.02); } 100% { transform: rotate(0) scale(1); } }

.scn-lysistratus-see { 
  background: 
    linear-gradient(180deg, #f5e6d3 0%, #d4c4a8 100%), 
    radial-gradient(ellipse at 50% 30%, #fff8e7 0%, transparent 70%); 
}
.scn-lysistratus-see .wall-left { 
  position: absolute; left:0; top:0; bottom:0; width:20%; 
  background: linear-gradient(90deg, #c9b698 0%, #b8a084 100%); 
  box-shadow: inset -4px 0 8px rgba(0,0,0,.1); 
}
.scn-lysistratus-see .wall-right { 
  position: absolute; right:0; top:0; bottom:0; width:20%; 
  background: linear-gradient(-90deg, #c9b698 0%, #b8a084 100%); 
  box-shadow: inset 4px 0 8px rgba(0,0,0,.1); 
}
.scn-lysistratus-see .floor { 
  position: absolute; left:20%; right:20%; bottom:0; height:30%; 
  background: linear-gradient(180deg, #d6c3a8 0%, #b8a084 100%); 
  border-radius: 20% 20% 0 0; 
}
.scn-lysistratus-see .window { 
  position: absolute; left:40%; right:40%; top:15%; bottom:45%; 
  background: linear-gradient(180deg, #87ceeb 0%, #4682b4 100%); 
  border: 6px solid #8b7355; border-radius: 8px; 
  box-shadow: inset 0 0 20px rgba(255,255,200,.4); 
  animation: lss-window 12s ease-in-out infinite alternate; 
}
.scn-lysistratus-see .figure { 
  position: absolute; left:45%; right:45%; bottom:20%; height:45%; 
  background: radial-gradient(ellipse 70% 60% at 50% 30%, #3a2a1a 0%, #1a100a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); 
  animation: lss-figure 6s ease-in-out infinite; 
}
.scn-lysistratus-see .sunbeam { 
  position: absolute; left:35%; right:35%; top:10%; bottom:50%; 
  background: linear-gradient(180deg, rgba(255,255,200,.3) 0%, rgba(255,255,200,0) 100%); 
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%); 
  filter: blur(8px); 
  animation: lss-beam 15s ease-in-out infinite alternate; 
}
@keyframes lss-window { 0% { opacity:.9; box-shadow: inset 0 0 20px rgba(255,255,200,.3); } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,255,200,.6); } 100% { opacity:.95; box-shadow: inset 0 0 30px rgba(255,255,200,.4); } }
@keyframes lss-figure { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes lss-beam { 0% { transform: rotate(-2deg) scaleY(.9); opacity:.4; } 50% { transform: rotate(0deg) scaleY(1); opacity:.7; } 100% { transform: rotate(2deg) scaleY(.95); opacity:.5; } }

.scn-helicanus-vain { 
  background: 
    linear-gradient(180deg, #a8d8ea 0%, #7ec8e3 40%, #f2e6c9 100%), 
    radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%); 
}
.scn-helicanus-vain .sky { 
  position: absolute; inset:0 0 40% 0; 
  background: linear-gradient(180deg, #a8d8ea 0%, #7ec8e3 100%); 
  animation: hvn-sky 20s ease-in-out infinite alternate; 
}
.scn-helicanus-vain .ground { 
  position: absolute; bottom:0; left:0; right:0; height:45%; 
  background: linear-gradient(180deg, #c4d4a8 0%, #8ba86a 100%); 
  border-radius: 30% 70% 0 0 / 40% 60% 0 0; 
  animation: hvn-ground 30s ease-in-out infinite alternate; 
}
.scn-helicanus-vain .maid-figure { 
  position: absolute; left:45%; right:45%; bottom:20%; height:50%; 
  background: radial-gradient(ellipse 60% 70% at 50% 30%, #d6c3a8 0%, #b8a084 40%, #6a5040 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: hvn-maid 8s ease-in-out infinite; 
}
.scn-helicanus-vain .shrub { 
  position: absolute; left:20%; bottom:25%; width:12%; height:20%; 
  background: radial-gradient(ellipse 60% 50% at 50% 60%, #5a7a3a 0%, #3a5a2a 100%); 
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; 
  animation: hvn-shrub 12s ease-in-out infinite alternate; 
}
.scn-helicanus-vain .cloud-a { 
  position: absolute; top:8%; left:10%; width:18%; height:10%; 
  background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); 
  border-radius: 50%; filter: blur(6px); 
  animation: hvn-drift-a 40s linear infinite; 
}
.scn-helicanus-vain .cloud-b { 
  position: absolute; top:14%; right:15%; width:14%; height:8%; 
  background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.05) 100%); 
  border-radius: 50%; filter: blur(5px); 
  animation: hvn-drift-b 55s linear infinite reverse; 
}
.scn-helicanus-vain .flower { 
  position: absolute; left:35%; bottom:30%; width:4%; height:6%; 
  background: radial-gradient(ellipse at 50% 100%, #e8a0a0 0%, #d08080 50%, transparent 100%); 
  border-radius: 50%; 
  animation: hvn-flower 5s ease-in-out infinite; 
}
@keyframes hvn-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes hvn-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes hvn-maid { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hvn-shrub { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes hvn-drift-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes hvn-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes hvn-flower { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.1); } 100% { transform: rotate(-5deg) scale(1); } }

.scn-helicanus-well-bethought { 
  background: 
    linear-gradient(180deg, #4a7a3a 0%, #2a5a2a 40%, #1a3a1a 100%), 
    radial-gradient(ellipse at 50% 70%, #6a9a5a 0%, transparent 70%); 
}
.scn-helicanus-well-bethought .trunk { 
  position: absolute; left:45%; right:45%; bottom:0; height:60%; 
  background: linear-gradient(90deg, #5a3a1a 0%, #3a2a0a 50%, #5a3a1a 100%); 
  border-radius: 30% 30% 0 0; 
  animation: hwb-trunk 10s ease-in-out infinite alternate; 
}
.scn-helicanus-well-bethought .canopy { 
  position: absolute; left:30%; right:30%; top:5%; bottom:45%; 
  background: radial-gradient(ellipse 60% 70% at 50% 40%, #5a8a3a 0%, #2a5a1a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: hwb-canopy 15s ease-in-out infinite alternate; 
}
.scn-helicanus-well-bethought .figure { 
  position: absolute; left:42%; right:42%; bottom:22%; height:30%; 
  background: radial-gradient(ellipse 60% 70% at 50% 30%, #d6c3a8 0%, #8a7a6a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: hwb-figure 4s ease-in-out infinite; 
}
.scn-helicanus-well-bethought .instrument { 
  position: absolute; left:48%; right:48%; bottom:28%; height:12%; 
  background: radial-gradient(ellipse 50% 40% at 50% 50%, #c8a060 0%, #8a6a3a 100%); 
  border-radius: 10% 10% 30% 30%; 
  transform: rotate(-20deg); 
  animation: hwb-instr 6s ease-in-out infinite; 
}
.scn-helicanus-well-bethought .leaf1 { 
  position: absolute; left:35%; top:30%; width:12%; height:8%; 
  background: radial-gradient(ellipse at 50% 50%, #6aaa3a 0%, #3a7a1a 100%); 
  border-radius: 80% 20% 50% 50%; 
  animation: hwb-leaf1 8s ease-in-out infinite alternate; 
}
.scn-helicanus-well-bethought .leaf2 { 
  position: absolute; right:33%; top:22%; width:10%; height:6%; 
  background: radial-gradient(ellipse at 50% 50%, #5a9a2a 0%, #2a6a0a 100%); 
  border-radius: 20% 80% 50% 50%; 
  animation: hwb-leaf2 10s ease-in-out infinite alternate; 
}
.scn-helicanus-well-bethought .sunray { 
  position: absolute; left:25%; right:25%; top:2%; bottom:40%; 
  background: linear-gradient(180deg, rgba(255,255,200,.3) 0%, rgba(255,255,200,0) 100%); 
  clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%); 
  filter: blur(10px); 
  animation: hwb-ray 12s ease-in-out infinite alternate; 
}
@keyframes hwb-trunk { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes hwb-canopy { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes hwb-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hwb-instr { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-18deg) scale(1.05); } 100% { transform: rotate(-20deg) scale(1); } }
@keyframes hwb-leaf1 { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes hwb-leaf2 { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.1); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes hwb-ray { 0% { opacity:.3; transform: rotate(-3deg); } 50% { opacity:.6; transform: rotate(0deg); } 100% { opacity:.4; transform: rotate(3deg); } }

.scn-helicanus-effectless { 
  background: 
    linear-gradient(180deg, #4682b4 0%, #87ceeb 40%, #b0e0e6 100%), 
    radial-gradient(ellipse at 50% 80%, #b0e0e6 0%, transparent 60%); 
}
.scn-helicanus-effectless .sky { 
  position: absolute; inset:0 0 30% 0; 
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); 
  animation: hfe-sky 18s ease-in-out infinite alternate; 
}
.scn-helicanus-effectless .sea { 
  position: absolute; bottom:0; left:0; right:0; height:35%; 
  background: linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 100%); 
  border-radius: 40% 60% 0 0 / 30% 50% 0 0; 
  animation: hfe-sea 15s ease-in-out infinite alternate; 
}
.scn-helicanus-effectless .ship-hull { 
  position: absolute; left:30%; right:30%; bottom:20%; height:20%; 
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); 
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; 
  animation: hfe-hull 8s ease-in-out infinite; 
}
.scn-helicanus-effectless .mast { 
  position: absolute; left:48%; right:48%; bottom:35%; height:30%; 
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); 
  border-radius: 10% 10% 0 0; 
  animation: hfe-mast 12s ease-in-out infinite alternate; 
}
.scn-helicanus-effectless .sail-fore { 
  position: absolute; left:35%; right:50%; bottom:30%; height:25%; 
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b8a0 100%); 
  border-radius: 40% 10% 10% 40%; 
  transform: skewX(5deg); 
  animation: hfe-sail1 10s ease-in-out infinite alternate; 
}
.scn-helicanus-effectless .sail-aft { 
  position: absolute; left:50%; right:35%; bottom:28%; height:22%; 
  background: linear-gradient(225deg, #e8dcc8 0%, #c8b8a0 100%); 
  border-radius: 10% 40% 40% 10%; 
  transform: skewX(-5deg); 
  animation: hfe-sail2 12s ease-in-out infinite alternate; 
}
.scn-helicanus-effectless .flag { 
  position: absolute; left:48%; right:48%; top:35%; height:8%; 
  background: linear-gradient(90deg, #c8553d 0%, #a0461a 100%); 
  border-radius: 0 40% 40% 0; 
  transform-origin: left center; 
  animation: hfe-flag 4s ease-in-out infinite; 
}
.scn-helicanus-effectless .wave1 { 
  position: absolute; bottom:10%; left:0; right:0; height:15%; 
  background: linear-gradient(180deg, rgba(42,106,138,.3) 0%, transparent 100%); 
  border-radius: 50% 50% 0 0; filter: blur(4px); 
  animation: hfe-wave1 20s ease-in-out infinite alternate; 
}
.scn-helicanus-effectless .wave2 { 
  position: absolute; bottom:5%; left:0; right:0; height:12%; 
  background: linear-gradient(180deg, rgba(42,106,138,.2) 0%, transparent 100%); 
  border-radius: 30% 70% 0 0; filter: blur(3px); 
  animation: hfe-wave2 25s ease-in-out infinite alternate; 
}
@keyframes hfe-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes hfe-sea { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes hfe-hull { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hfe-mast { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes hfe-sail1 { 0% { transform: skewX(5deg) scaleX(1); } 50% { transform: skewX(3deg) scaleX(1.02); } 100% { transform: skewX(5deg) scaleX(1); } }
@keyframes hfe-sail2 { 0% { transform: skewX(-5deg) scaleX(1); } 50% { transform: skewX(-3deg) scaleX(1.02); } 100% { transform: skewX(-5deg) scaleX(1); } }
@keyframes hfe-flag { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.1); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes hfe-wave1 { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes hfe-wave2 { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.03); } 100% { transform: translateY(0) scaleX(1); } }

.scn-fishermen-seamens-vails {
  background: linear-gradient(180deg, #feebc8 0%, #f6d5a0 40%, #b8c8e0 100%),
              radial-gradient(ellipse at 50% 100%, #f9e4b7 0%, transparent 60%);
}
.scn-fishermen-seamens-vails .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #a8d8f0 0%, #c6e6ff 50%, #e0f0ff 100%); animation: fsv-sky 20s ease-in-out infinite alternate; }
.scn-fishermen-seamens-vails .sea { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #3a7eb0 0%, #1a4a6a 100%); border-radius: 20% 40% 0 0 / 30% 50% 0 0; animation: fsv-sea 8s ease-in-out infinite; }
.scn-fishermen-seamens-vails .boat { position:absolute; bottom:35%; left:20%; width:120px; height:30px; background: linear-gradient(90deg, #6a4a2a 0%, #8a5a3a 50%, #5a3a1a 100%); border-radius: 40% 10% 10% 40%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); transform: rotate(-2deg); animation: fsv-boat 6s ease-in-out infinite; }
.scn-fishermen-seamens-vails .sail { position:absolute; bottom:52%; left:25%; width:50px; height:70px; background: linear-gradient(135deg, #f5e6cc 0%, #e0c8a0 100%); border-radius: 20% 60% 10% 40%; transform: rotate(5deg); box-shadow: -2px 0 8px rgba(0,0,0,0.2); animation: fsv-sail 9s ease-in-out infinite; }
.scn-fishermen-seamens-vails .figure-a { position:absolute; bottom:35%; left:18%; width:22px; height:40px; background: linear-gradient(180deg, #d4a373 0%, #a67c52 50%, #6b4e2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fsv-figure-a 4s ease-in-out infinite; }
.scn-fishermen-seamens-vails .figure-b { position:absolute; bottom:35%; left:32%; width:22px; height:40px; background: linear-gradient(180deg, #b88a6b 0%, #8c6a4e 50%, #5a3a24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fsv-figure-b 4s ease-in-out infinite 0.5s; }
.scn-fishermen-seamens-vails .veil { position:absolute; bottom:42%; left:24%; width:30px; height:18px; background: radial-gradient(ellipse, #ffebd0 0%, #d4b88f 100%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,235,208,0.6); transform: rotate(15deg); animation: fsv-veil 3s ease-in-out infinite; }
.scn-fishermen-seamens-vails .sunrays { position:absolute; top:8%; left:60%; width:100px; height:100px; background: radial-gradient(circle, #fff3d0 0%, #ffd78a 40%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: fsv-sunrays 10s ease-in-out infinite alternate; }
@keyframes fsv-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes fsv-sea { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes fsv-boat { 0% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(0deg) translateX(4px) } 100% { transform: rotate(-2deg) translateX(0) } }
@keyframes fsv-sail { 0% { transform: rotate(5deg) scaleX(1) } 50% { transform: rotate(3deg) scaleX(1.05) } 100% { transform: rotate(5deg) scaleX(1) } }
@keyframes fsv-figure-a { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(6px) rotate(1deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(18px) rotate(2deg) } 100% { transform: translateX(24px) rotate(0) } }
@keyframes fsv-figure-b { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-6px) rotate(-1deg) } 50% { transform: translateX(-12px) rotate(1deg) } 75% { transform: translateX(-18px) rotate(-2deg) } 100% { transform: translateX(-24px) rotate(0) } }
@keyframes fsv-veil { 0% { transform: rotate(15deg) translateY(0) scale(0.9); opacity:0.7 } 50% { transform: rotate(-5deg) translateY(-4px) scale(1.1); opacity:1 } 100% { transform: rotate(15deg) translateY(0) scale(0.9); opacity:0.7 } }
@keyframes fsv-sunrays { 0% { transform: scale(0.8); opacity:0.6 } 100% { transform: scale(1.2); opacity:1 } }

.scn-simonides-thaisa-entrance {
  background: linear-gradient(180deg, #d4b88f 0%, #b8966e 30%, #a07850 100%),
              radial-gradient(ellipse at 60% 40%, #f0d8a0 0%, transparent 70%);
}
.scn-simonides-thaisa-entrance .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #b8966e 0%, #8a7048 100%); border-radius: 0 0 20% 20%; animation: ste-wall 15s ease-in-out infinite alternate; }
.scn-simonides-thaisa-entrance .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); }
.scn-simonides-thaisa-entrance .throne { position:absolute; bottom:20%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #b08040 0%, #806030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.4); animation: ste-throne 12s ease-in-out infinite; }
.scn-simonides-thaisa-entrance .king { position:absolute; bottom:25%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #705030 0%, #402818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ste-king 5s ease-in-out infinite; }
.scn-simonides-thaisa-entrance .princess { position:absolute; bottom:25%; left:55%; width:20px; height:45px; background: linear-gradient(180deg, #c09060 0%, #906040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ste-princess 5s ease-in-out infinite 0.7s; }
.scn-simonides-thaisa-entrance .window-glow { position:absolute; top:10%; left:30%; width:80px; height:120px; background: radial-gradient(ellipse, #ffeebb 0%, #e0c080 60%, transparent 100%); border-radius: 10%; filter: blur(6px); animation: ste-window 4s ease-in-out infinite alternate; }
.scn-simonides-thaisa-entrance .beam { position:absolute; top:10%; left:38%; width:40px; height:80px; background: linear-gradient(135deg, rgba(255,238,187,0.4) 0%, transparent 100%); transform: rotate(-10deg); animation: ste-beam 6s ease-in-out infinite; }
.scn-simonides-thaisa-entrance .banner { position:absolute; top:5%; left:20%; width:40px; height:60px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 5% 5% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform: rotate(-5deg); animation: ste-banner 8s ease-in-out infinite; }
@keyframes ste-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ste-throne { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ste-king { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(15px) rotate(1deg) } 100% { transform: translateX(20px) rotate(0) } }
@keyframes ste-princess { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-5px) rotate(-2deg) } 50% { transform: translateX(-10px) rotate(1deg) } 75% { transform: translateX(-15px) rotate(-1deg) } 100% { transform: translateX(-20px) rotate(0) } }
@keyframes ste-window { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.7; transform: scale(0.9) } }
@keyframes ste-beam { 0% { opacity:0.3; transform: rotate(-10deg) } 50% { opacity:0.6; transform: rotate(-8deg) } 100% { opacity:0.3; transform: rotate(-10deg) } }
@keyframes ste-banner { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }

.scn-simonides-advises-thaisa {
  background: linear-gradient(180deg, #d2b48c 0%, #b8966e 40%, #a07850 100%),
              radial-gradient(ellipse at 70% 30%, #f0d8a0 0%, transparent 60%);
}
.scn-simonides-advises-thaisa .table { position:absolute; bottom:20%; left:30%; width:150px; height:20px; background: linear-gradient(180deg, #705030 0%, #5a4020 100%); border-radius: 5%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); animation: sad-table 10s ease-in-out infinite; }
.scn-simonides-advises-thaisa .scroll { position:absolute; bottom:30%; left:35%; width:80px; height:12px; background: linear-gradient(180deg, #f5e6cc 0%, #e0c8a0 100%); border-radius: 20%; transform: rotate(-10deg); animation: sad-scroll 6s ease-in-out infinite; }
.scn-simonides-advises-thaisa .king-hand { position:absolute; bottom:28%; left:33%; width:16px; height:30px; background: linear-gradient(180deg, #705030 0%, #402818 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: sad-hand-l 5s ease-in-out infinite; }
.scn-simonides-advises-thaisa .princess-hand { position:absolute; bottom:28%; left:40%; width:14px; height:26px; background: linear-gradient(180deg, #c09060 0%, #906040 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: sad-hand-r 5s ease-in-out infinite 0.3s; }
.scn-simonides-advises-thaisa .candle { position:absolute; bottom:22%; left:60%; width:8px; height:20px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%); border-radius: 20%; animation: sad-candle 4s ease-in-out infinite; }
.scn-simonides-advises-thaisa .window { position:absolute; top:8%; right:10%; width:60px; height:80px; background: radial-gradient(ellipse, #ffeebb 0%, #d0b080 100%); border-radius: 10%; box-shadow: 0 0 20px 6px rgba(255,238,187,0.5); animation: sad-window 7s ease-in-out infinite alternate; }
.scn-simonides-advises-thaisa .light-rays { position:absolute; top:8%; right:15%; width:30px; height:90px; background: linear-gradient(135deg, rgba(255,238,187,0.3) 0%, transparent 100%); transform: rotate(10deg); animation: sad-rays 8s ease-in-out infinite; }
.scn-simonides-advises-thaisa .ornament { position:absolute; top:12%; left:15%; width:20px; height:20px; background: radial-gradient(circle, #c8553d 0%, #a0461a 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,85,61,0.4); animation: sad-ornament 9s ease-in-out infinite; }
@keyframes sad-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sad-scroll { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-8deg) scaleX(1.03) } 100% { transform: rotate(-10deg) scaleX(1) } }
@keyframes sad-hand-l { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(9px) rotate(2deg) } 100% { transform: translateX(12px) rotate(0) } }
@keyframes sad-hand-r { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-3px) rotate(-1deg) } 50% { transform: translateX(-6px) rotate(1deg) } 75% { transform: translateX(-9px) rotate(-2deg) } 100% { transform: translateX(-12px) rotate(0) } }
@keyframes sad-candle { 0% { transform: scaleY(1); opacity:0.9 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(1); opacity:0.9 } }
@keyframes sad-window { 0% { opacity:0.7; box-shadow:0 0 16px 4px rgba(255,238,187,0.4) } 100% { opacity:1; box-shadow:0 0 28px 8px rgba(255,238,187,0.8) } }
@keyframes sad-rays { 0% { opacity:0.2; transform: rotate(10deg) } 50% { opacity:0.5; transform: rotate(12deg) } 100% { opacity:0.2; transform: rotate(10deg) } }
@keyframes sad-ornament { 0% { transform: rotate(0deg) scale(0.9) } 50% { transform: rotate(180deg) scale(1.1) } 100% { transform: rotate(360deg) scale(0.9) } }

.scn-knight-devices-macedon {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 40%, #d4f0d4 100%),
              radial-gradient(ellipse at 80% 20%, #ffe4b5 0%, transparent 60%);
}
.scn-knight-devices-macedon .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #a0d8ef 0%, #c0e8ff 50%, #e0f4ff 100%); animation: kdm-sky 20s ease-in-out infinite alternate; }
.scn-knight-devices-macedon .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7cb87c 0%, #5a9a5a 100%); border-radius: 30% 20% 0 0 / 40% 30% 0 0; animation: kdm-ground 12s ease-in-out infinite; }
.scn-knight-devices-macedon .knight { position:absolute; bottom:30%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #706060 0%, #484040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kdm-knight 6s ease-in-out infinite; }
.scn-knight-devices-macedon .shield { position:absolute; bottom:40%; left:27%; width:24px; height:30px; background: linear-gradient(135deg, #b0a090 0%, #807060 100%); border-radius: 20%; transform: rotate(-10deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.3); animation: kdm-shield 5s ease-in-out infinite; }
.scn-knight-devices-macedon .lady { position:absolute; bottom:30%; left:50%; width:18px; height:40px; background: linear-gradient(180deg, #e0b090 0%, #c09070 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kdm-lady 7s ease-in-out infinite 0.5s; }
.scn-knight-devices-macedon .banner { position:absolute; top:12%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%); border-radius: 5% 5% 10% 10%; transform: rotate(5deg); box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: kdm-banner 9s ease-in-out infinite; }
.scn-knight-devices-macedon .sun { position:absolute; top:8%; left:80%; width:70px; height:70px; background: radial-gradient(circle, #fff3d0 0%, #ffe4b5 40%, transparent 80%); border-radius: 50%; filter: blur(6px); animation: kdm-sun 15s ease-in-out infinite alternate; }
.scn-knight-devices-macedon .dust { position:absolute; bottom:20%; left:20%; width:60px; height:40px; background: radial-gradient(ellipse, rgba(240,220,180,0.5) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: kdm-dust 4s ease-in-out infinite; }
@keyframes kdm-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes kdm-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes kdm-knight { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(15px) rotate(1deg) } 100% { transform: translateX(20px) rotate(0) } }
@keyframes kdm-shield { 0% { transform: rotate(-10deg) scale(0.9) } 50% { transform: rotate(-5deg) scale(1.05) } 100% { transform: rotate(-10deg) scale(0.9) } }
@keyframes kdm-lady { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-4px) rotate(-1deg) } 50% { transform: translateX(-8px) rotate(2deg) } 75% { transform: translateX(-12px) rotate(-1deg) } 100% { transform: translateX(-16px) rotate(0) } }
@keyframes kdm-banner { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-3px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes kdm-sun { 0% { transform: scale(0.9); opacity:0.8 } 100% { transform: scale(1.1); opacity:1 } }
@keyframes kdm-dust { 0% { transform: translateX(0) scale(0.8); opacity:0.4 } 50% { transform: translateX(15px) scale(1.2); opacity:0.7 } 100% { transform: translateX(0) scale(0.8); opacity:0.4 } }

.scn-item-thaisa-ring { 
  background: linear-gradient(180deg, #f4e5c8 0%, #d4b88a 100%), radial-gradient(ellipse at 50% 0%, #fff3d6 0%, transparent 60%);
}
.scn-item-thaisa-ring .bg-wall { 
  position:absolute; inset:0; background:linear-gradient(135deg, #e6d2b4 0%, #c6a87a 100%); 
}
.scn-item-thaisa-ring .bg-table { 
  position:absolute; bottom:0; left:10%; right:10%; height:30%; background:linear-gradient(180deg, #b09060 0%, #8a7048 100%); border-radius:20% 20% 0 0; 
  box-shadow:0 -4px 12px rgba(0,0,0,0.3); 
}
.scn-item-thaisa-ring .hand { 
  position:absolute; bottom:30%; left:42%; width:50px; height:70px; 
  background:linear-gradient(180deg, #f0d5b0 0%, #d0a870 100%); 
  border-radius:60% 60% 40% 40% / 70% 70% 30% 30%; 
  transform-origin:bottom center; animation:ti-hand 5s ease-in-out infinite; 
}
.scn-item-thaisa-ring .ring { 
  position:absolute; bottom:38%; left:46%; width:14px; height:14px; 
  background:radial-gradient(circle, #ffd700 0%, #b8860b 70%); border-radius:50%; 
  box-shadow:0 0 16px 4px rgba(255,215,0,0.5); animation:ti-ring 4s ease-in-out infinite; 
}
.scn-item-thaisa-ring .glow { 
  position:absolute; bottom:32%; left:44%; width:30px; height:30px; 
  background:radial-gradient(circle, rgba(255,215,0,0.3) 0%, transparent 70%); 
  border-radius:50%; animation:ti-glow 4s ease-in-out infinite alternate; 
}
.scn-item-thaisa-ring .ray1 { 
  position:absolute; bottom:40%; left:40%; width:80px; height:4px; 
  background:linear-gradient(90deg, rgba(255,215,0,0.5) 0%, transparent 100%); 
  transform-origin:left center; animation:ti-ray1 6s ease-in-out infinite; 
}
.scn-item-thaisa-ring .ray2 { 
  position:absolute; bottom:40%; left:48%; width:80px; height:4px; 
  background:linear-gradient(270deg, rgba(255,215,0,0.5) 0%, transparent 100%); 
  transform-origin:right center; animation:ti-ray2 6s ease-in-out infinite 2s; 
}
@keyframes ti-hand {
  0% { transform:translate(0,0) rotate(0deg); }
  50% { transform:translate(2px,-1px) rotate(2deg); }
  100% { transform:translate(0,0) rotate(0deg); }
}
@keyframes ti-ring {
  0% { box-shadow:0 0 12px 3px rgba(255,215,0,0.4); transform:scale(1); }
  50% { box-shadow:0 0 24px 8px rgba(255,215,0,0.7); transform:scale(1.1); }
  100% { box-shadow:0 0 12px 3px rgba(255,215,0,0.4); transform:scale(1); }
}
@keyframes ti-glow {
  0% { opacity:0.6; transform:scale(0.8); }
  100% { opacity:1; transform:scale(1.2); }
}
@keyframes ti-ray1 {
  0% { transform:rotate(-30deg); opacity:0.3; }
  50% { transform:rotate(0deg); opacity:0.8; }
  100% { transform:rotate(30deg); opacity:0.3; }
}
@keyframes ti-ray2 {
  0% { transform:rotate(30deg); opacity:0.3; }
  50% { transform:rotate(0deg); opacity:0.8; }
  100% { transform:rotate(-30deg); opacity:0.3; }
}

.scn-pericles-beautifies {
  background: linear-gradient(180deg, #e8d5b0 0%, #c9b48a 100%), radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 50%);
}
.scn-pericles-beautifies .bg-wall { 
  position:absolute; inset:0; background:linear-gradient(135deg, #d8c8a0 0%, #b8a070 100%); 
}
.scn-pericles-beautifies .col-left { 
  position:absolute; top:10%; left:15%; width:20px; height:80%; 
  background:linear-gradient(180deg, #a09070 0%, #7a6a4a 100%); border-radius:10%; 
  box-shadow:inset 0 0 15px rgba(0,0,0,0.2); 
}
.scn-pericles-beautifies .col-right { 
  position:absolute; top:10%; right:15%; width:20px; height:80%; 
  background:linear-gradient(180deg, #a09070 0%, #7a6a4a 100%); border-radius:10%; 
  box-shadow:inset 0 0 15px rgba(0,0,0,0.2); 
}
.scn-pericles-beautifies .altar { 
  position:absolute; bottom:25%; left:38%; width:80px; height:40px; 
  background:linear-gradient(180deg, #c8a870 0%, #a8885a 100%); border-radius:10% 10% 5% 5%; 
  box-shadow:0 -4px 10px rgba(0,0,0,0.3); animation:pe-altar 8s ease-in-out infinite; 
}
.scn-pericles-beautifies .statue { 
  position:absolute; bottom:30%; left:42%; width:20px; height:60px; 
  background:linear-gradient(180deg, #f5e5c0 0%, #d0b88a 100%); 
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; 
  box-shadow:0 0 20px 6px rgba(255,232,192,0.3); animation:pe-statue 6s ease-in-out infinite; 
}
.scn-pericles-beautifies .figure { 
  position:absolute; bottom:28%; left:30%; width:30px; height:80px; 
  background:linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); 
  border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; 
  transform-origin:bottom center; animation:pe-figure 10s ease-in-out infinite; 
}
.scn-pericles-beautifies .light-beam { 
  position:absolute; top:0; left:40%; width:30px; height:100%; 
  background:linear-gradient(180deg, rgba(255,232,192,0.4) 0%, transparent 80%); 
  clip-path:polygon(30% 0, 70% 0, 80% 100%, 20% 100%); animation:pe-beam 4s ease-in-out infinite alternate; 
}
@keyframes pe-altar {
  0% { box-shadow:0 -4px 10px rgba(0,0,0,0.3); }
  50% { box-shadow:0 -4px 20px rgba(0,0,0,0.4); }
  100% { box-shadow:0 -4px 10px rgba(0,0,0,0.3); }
}
@keyframes pe-statue {
  0% { opacity:0.9; transform:translateY(0); }
  50% { opacity:1; transform:translateY(-2px); }
  100% { opacity:0.9; transform:translateY(0); }
}
@keyframes pe-figure {
  0% { transform:translate(0,0) rotate(0deg); }
  25% { transform:translate(1px,-1px) rotate(1deg); }
  50% { transform:translate(0,0) rotate(0deg); }
  75% { transform:translate(-1px,-1px) rotate(-1deg); }
  100% { transform:translate(0,0) rotate(0deg); }
}
@keyframes pe-beam {
  0% { opacity:0.3; transform:scaleX(0.9); }
  100% { opacity:0.7; transform:scaleX(1.1); }
}

.scn-departure-to-pentapolis {
  background: linear-gradient(180deg, #87ceeb 0%, #ffd580 40%, #f9a825 100%), radial-gradient(ellipse at 50% 30%, #fff4e0 0%, transparent 60%);
}
.scn-departure-to-pentapolis .sky { 
  position:absolute; inset:0 0 40% 0; 
  background:linear-gradient(180deg, #7ec8e3 0%, #f5c86a 70%, transparent 100%); 
  animation:dp-sky 15s ease-in-out infinite alternate; 
}
.scn-departure-to-pentapolis .sea { 
  position:absolute; bottom:0; left:0; right:0; height:45%; 
  background:linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 40%, #0a2a4a 100%); 
  animation:dp-sea 8s ease-in-out infinite; 
}
.scn-departure-to-pentapolis .sun { 
  position:absolute; top:20%; left:60%; width:40px; height:40px; 
  background:radial-gradient(circle, #ffe680 0%, #f9a825 70%); border-radius:50%; 
  box-shadow:0 0 30px 10px rgba(255,214,100,0.6); animation:dp-sun 6s ease-in-out infinite alternate; 
}
.scn-departure-to-pentapolis .cloud-a { 
  position:absolute; top:12%; left:10%; width:90px; height:20px; 
  background:linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); 
  border-radius:50%; filter:blur(8px); animation:dp-cloud-a 40s linear infinite; 
}
.scn-departure-to-pentapolis .cloud-b { 
  position:absolute; top:25%; right:20%; width:70px; height:15px; 
  background:linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%); 
  border-radius:50%; filter:blur(6px); animation:dp-cloud-b 30s linear infinite reverse; 
}
.scn-departure-to-pentapolis .ship { 
  position:absolute; bottom:20%; left:40%; width:60px; height:30px; 
  background:linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); 
  border-radius:20% 20% 40% 40% / 40% 40% 60% 60%; animation:dp-ship 12s ease-in-out infinite; 
}
.scn-departure-to-pentapolis .sail-fore { 
  position:absolute; bottom:28%; left:42%; width:20px; height:50px; 
  background:linear-gradient(180deg, #f5e8c0 0%, #d0b88a 100%); 
  clip-path:polygon(0 0, 100% 10%, 80% 100%, 20% 100%); animation:dp-sail-f 10s ease-in-out infinite; 
}
.scn-departure-to-pentapolis .sail-aft { 
  position:absolute; bottom:28%; left:35%; width:18px; height:45px; 
  background:linear-gradient(180deg, #f0dbb0 0%, #c8a070 100%); 
  clip-path:polygon(0% 10%, 100% 0%, 80% 100%, 20% 100%); animation:dp-sail-a 10s ease-in-out infinite 3s; 
}
@keyframes dp-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes dp-sea {
  0% { background-position:0 0; transform:translateY(0); }
  50% { background-position:10% 0; transform:translateY(-2px); }
  100% { background-position:0 0; transform:translateY(0); }
}
@keyframes dp-sun {
  0% { transform:scale(1); box-shadow:0 0 20px 5px rgba(255,214,100,0.5); }
  100% { transform:scale(1.05); box-shadow:0 0 40px 15px rgba(255,214,100,0.7); }
}
@keyframes dp-cloud-a {
  0% { transform:translateX(0); }
  100% { transform:translateX(120vw); }
}
@keyframes dp-cloud-b {
  0% { transform:translateX(0); }
  100% { transform:translateX(-80vw); }
}
@keyframes dp-ship {
  0% { transform:translate(0,0) rotate(-1deg); }
  25% { transform:translate(2px,-1px) rotate(1deg); }
  50% { transform:translate(0,0) rotate(0deg); }
  75% { transform:translate(-2px,-1px) rotate(-1deg); }
  100% { transform:translate(0,0) rotate(-1deg); }
}
@keyframes dp-sail-f {
  0% { transform:rotate(0deg); }
  50% { transform:rotate(3deg); }
  100% { transform:rotate(0deg); }
}
@keyframes dp-sail-a {
  0% { transform:rotate(0deg); }
  50% { transform:rotate(-3deg); }
  100% { transform:rotate(0deg); }
}

.scn-gower-epilogue {
  background: linear-gradient(180deg, #2c2a3a 0%, #1a1a2a 100%), radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 70%);
}
.scn-gower-epilogue .curtain-left { 
  position:absolute; top:0; left:0; width:25%; height:100%; 
  background:linear-gradient(90deg, #4a1a2a 0%, #7a3a4a 50%, #4a1a2a 100%); 
  border-radius:0 30% 30% 0 / 0 10% 10% 0; 
  animation:go-curtain 12s ease-in-out infinite alternate; 
}
.scn-gower-epilogue .curtain-right { 
  position:absolute; top:0; right:0; width:25%; height:100%; 
  background:linear-gradient(270deg, #4a1a2a 0%, #7a3a4a 50%, #4a1a2a 100%); 
  border-radius:30% 0 0 30% / 10% 0 0 10%; 
  animation:go-curtain 12s ease-in-out infinite alternate-reverse; 
}
.scn-gower-epilogue .stage-floor { 
  position:absolute; bottom:0; left:20%; right:20%; height:20%; 
  background:linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); 
  border-radius:10% 10% 0 0; box-shadow:0 -6px 20px rgba(0,0,0,0.5); 
  animation:go-floor 6s ease-in-out infinite; 
}
.scn-gower-epilogue .figure { 
  position:absolute; bottom:12%; left:38%; width:30px; height:80px; 
  background:linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); 
  border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; 
  transform-origin:bottom center; animation:go-figure 10s ease-in-out infinite; 
}
.scn-gower-epilogue .crown { 
  position:absolute; top:20%; left:46%; width:24px; height:16px; 
  background:linear-gradient(180deg, #b8860b 0%, #8a6508 100%); 
  clip-path:polygon(0 100%, 20% 0%, 50% 40%, 80% 0%, 100% 100%); 
  filter:drop-shadow(0 0 8px rgba(184,134,11,0.6)); 
  animation:go-crown 8s ease-in-out infinite; 
}
.scn-gower-epilogue .light-spot { 
  position:absolute; top:0; left:38%; width:30px; height:100%; 
  background:linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 70%); 
  clip-path:polygon(30% 0, 70% 0, 60% 100%, 40% 100%); 
  animation:go-spot 3s ease-in-out infinite alternate; 
}
.scn-gower-epilogue .shadow-arch { 
  position:absolute; top:10%; left:30%; width:40%; height:40%; 
  border:2px solid rgba(0,0,0,0.3); border-radius:50% 50% 0 0; 
  border-left-color:transparent; border-right-color:transparent; 
  animation:go-arch 15s linear infinite; 
}
@keyframes go-curtain {
  0% { transform:translateX(0); }
  100% { transform:translateX(-5px); }
}
@keyframes go-floor {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes go-figure {
  0% { transform:translate(0,0) rotate(0deg); }
  25% { transform:translate(1px,-1px) rotate(1deg); }
  50% { transform:translate(0,0) rotate(-1deg); }
  75% { transform:translate(-1px,-1px) rotate(1deg); }
  100% { transform:translate(0,0) rotate(0deg); }
}
@keyframes go-crown {
  0% { transform:translateY(0) rotate(0deg); }
  50% { transform:translateY(-10px) rotate(5deg); }
  100% { transform:translateY(0) rotate(0deg); }
}
@keyframes go-spot {
  0% { opacity:0.4; transform:scaleX(0.8); }
  100% { opacity:0.8; transform:scaleX(1.2); }
}
@keyframes go-arch {
  0% { border-color:rgba(0,0,0,0.2); }
  50% { border-color:rgba(0,0,0,0.5); }
  100% { border-color:rgba(0,0,0,0.2); }
}

.scn-item-torch-device { background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 30%, #E8F4F8 60%, #F5E6CA 100%), radial-gradient(ellipse at 70% 30%, #FFF8DC 0%, transparent 50%); }

.scn-item-torch-device .itd-sky { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #B0D4E8 0%, #D4E8F0 100%); animation: itd-sky 12s ease-in-out infinite alternate; }

.scn-item-torch-device .itd-torse { position:absolute; bottom:25%; left:44%; width:12%; height:10%; background:linear-gradient(180deg, #FFD700 0%, #DAA520 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow:0 4px 8px rgba(0,0,0,.2); transform-style:preserve-3d; animation:itd-torse 6s ease-in-out infinite alternate; }

.scn-item-torch-device .itd-gauntlet { position:absolute; bottom:32%; left:46.5%; width:7%; height:12%; background:linear-gradient(180deg, #C0C0C0 0%, #A0A0A0 60%, #808080 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow:0 2px 6px rgba(0,0,0,.3); transform-origin:bottom center; animation:itd-gauntlet 4s ease-in-out infinite alternate; }

.scn-item-torch-device .itd-stem { position:absolute; bottom:36%; left:49%; width:2%; height:20%; background:linear-gradient(180deg, #8B4513 0%, #A0522D 50%, #8B4513 100%); border-radius:20% 20% 10% 10%; box-shadow:0 2px 4px rgba(0,0,0,.4); animation:itd-stem 3s ease-in-out infinite; }

.scn-item-torch-device .itd-flame { position:absolute; bottom:54%; left:48.5%; width:3%; height:6%; background:radial-gradient(ellipse 50% 100%, #FFD700 0%, #FFA500 40%, #FF4500 70%, transparent 100%); border-radius:50% 50% 20% 20% / 60% 60% 40% 40%; filter:blur(1px); animation:itd-flame 1.5s ease-in-out infinite alternate; }

.scn-item-torch-device .itd-glow { position:absolute; bottom:52%; left:47%; width:6%; height:12%; background:radial-gradient(ellipse, rgba(255,215,0,.2) 0%, transparent 70%); border-radius:50%; filter:blur(6px); animation:itd-glow 2.5s ease-in-out infinite alternate; }

.scn-item-torch-device .itd-ribbon-l { position:absolute; bottom:15%; left:35%; width:14%; height:3%; background:linear-gradient(180deg, #B22222 0%, #8B0000 100%); border-radius:2px; transform-origin:right center; box-shadow:0 1px 3px rgba(0,0,0,.3); animation:itd-ribbon-l 8s ease-in-out infinite alternate; }

.scn-item-torch-device .itd-ribbon-r { position:absolute; bottom:15%; right:35%; width:14%; height:3%; background:linear-gradient(180deg, #B22222 0%, #8B0000 100%); border-radius:2px; transform-origin:left center; box-shadow:0 1px 3px rgba(0,0,0,.3); animation:itd-ribbon-r 8s ease-in-out infinite alternate; }

@keyframes itd-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes itd-torse { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes itd-gauntlet { 0% { transform:translateY(0) rotate(-1deg) } 50% { transform:translateY(-2px) rotate(1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes itd-stem { 0%,100% { transform:translateX(0) } 50% { transform:translateX(1px) } }
@keyframes itd-flame { 0% { transform:scaleY(1) scaleX(1) } 50% { transform:scaleY(1.15) scaleX(.9) } 100% { transform:scaleY(.95) scaleX(1.05) } }
@keyframes itd-glow { 0% { opacity:.5; transform:scale(1) } 50% { opacity:.8; transform:scale(1.2) } 100% { opacity:.6; transform:scale(.95) } }
@keyframes itd-ribbon-l { 0% { transform:rotate(-20deg) scaleX(1) } 50% { transform:rotate(-25deg) scaleX(1.05) } 100% { transform:rotate(-18deg) scaleX(.98) } }
@keyframes itd-ribbon-r { 0% { transform:rotate(20deg) scaleX(1) } 50% { transform:rotate(25deg) scaleX(1.05) } 100% { transform:rotate(18deg) scaleX(.98) } }

.scn-pericles-branch-device { background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #F0E6C0 100%), radial-gradient(ellipse at 50% 0%, #E0F0FF 0%, transparent 60%); }

.scn-pericles-branch-device .pbd-sky { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #B0D4E8 0%, #D4E8F0 60%, #E8F4F8 100%); animation:pbd-sky 15s ease-in-out infinite alternate; }

.scn-pericles-branch-device .pbd-ground { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #8B7355 0%, #6B5B45 50%, #4A3B2A 100%); border-radius:30% 70% 0 0 / 60% 40% 0 0; box-shadow:inset 0 10px 30px rgba(0,0,0,.3); animation:pbd-ground 20s ease-in-out infinite alternate; }

.scn-pericles-branch-device .pbd-stem { position:absolute; bottom:30%; left:48%; width:4%; height:40%; background:linear-gradient(180deg, #8B7355 0%, #6B5B45 40%, #5C4A33 100%); border-radius:20% 20% 10% 10%; box-shadow:2px 0 6px rgba(0,0,0,.2); transform-origin:bottom center; animation:pbd-stem 8s ease-in-out infinite alternate; }

.scn-pericles-branch-device .pbd-top { position:absolute; bottom:60%; left:46%; width:8%; height:6%; background:linear-gradient(180deg, #4CAF50 0%, #388E3C 50%, #2E7D32 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow:0 0 20px 8px rgba(76,175,80,.3), 0 0 40px 16px rgba(76,175,80,.15); animation:pbd-top 4s ease-in-out infinite alternate; }

.scn-pericles-branch-device .pbd-radiance { position:absolute; bottom:56%; left:43%; width:14%; height:16%; background:radial-gradient(ellipse, rgba(144,238,144,.15) 0%, transparent 70%); border-radius:50%; filter:blur(10px); animation:pbd-radiance 6s ease-in-out infinite alternate; }

.scn-pericles-branch-device .pbd-leaf1 { position:absolute; bottom:56%; left:44%; width:6%; height:4%; background:linear-gradient(135deg, #66BB6A 0%, #43A047 100%); border-radius:50% 20% 50% 20% / 60% 30% 70% 30%; transform:rotate(-30deg); animation:pbd-leaf1 5s ease-in-out infinite alternate; }

.scn-pericles-branch-device .pbd-leaf2 { position:absolute; bottom:58%; left:48%; width:5%; height:3.5%; background:linear-gradient(45deg, #81C784 0%, #4CAF50 100%); border-radius:20% 50% 20% 50% / 30% 60% 30% 70%; transform:rotate(20deg); animation:pbd-leaf2 5.5s ease-in-out infinite alternate-reverse; }

.scn-pericles-branch-device .pbd-leaf3 { position:absolute; bottom:62%; left:46.5%; width:4%; height:3%; background:linear-gradient(160deg, #A5D6A7 0%, #66BB6A 100%); border-radius:40% 20% 40% 20% / 50% 30% 50% 30%; transform:rotate(-10deg); animation:pbd-leaf3 4.5s ease-in-out infinite alternate; }

@keyframes pbd-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pbd-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) } 100% { transform:translateY(0) } }
@keyframes pbd-stem { 0%,100% { transform:rotate(-1deg) scaleY(1) } 50% { transform:rotate(1deg) scaleY(1.02) } }
@keyframes pbd-top { 0% { transform:scale(1) } 50% { transform:scale(1.08) } 100% { transform:scale(.97) } }
@keyframes pbd-radiance { 0% { opacity:.4; transform:scale(1) } 50% { opacity:.7; transform:scale(1.3) } 100% { opacity:.5; transform:scale(.95) } }
@keyframes pbd-leaf1 { 0% { transform:rotate(-35deg) scaleY(1) } 50% { transform:rotate(-25deg) scaleY(1.1) } 100% { transform:rotate(-30deg) scaleY(.95) } }
@keyframes pbd-leaf2 { 0% { transform:rotate(15deg) scaleY(1) } 50% { transform:rotate(25deg) scaleY(1.08) } 100% { transform:rotate(20deg) scaleY(.97) } }
@keyframes pbd-leaf3 { 0% { transform:rotate(-15deg) scaleX(1) } 50% { transform:rotate(-5deg) scaleX(1.12) } 100% { transform:rotate(-10deg) scaleX(.96) } }

.scn-withdraw-gallery { background: linear-gradient(180deg, #2C3E50 0%, #34495E 30%, #5D6D7E 60%, #7F8C8D 100%), radial-gradient(ellipse at 50% 40%, #F0E68C 0%, transparent 40%); }

.scn-withdraw-gallery .wdg-wall { position:absolute; inset:0 0 25% 0; background:linear-gradient(180deg, #5D6D7E 0%, #7F8C8D 40%, #95A5A6 100%); box-shadow:inset 0 -20px 40px rgba(0,0,0,.3); animation:wdg-wall 10s ease-in-out infinite alternate; }

.scn-withdraw-gallery .wdg-arch { position:absolute; bottom:25%; left:50%; width:40%; height:45%; transform:translateX(-50%); background:radial-gradient(ellipse 50% 60%, #F0E68C 0%, #E8D882 20%, transparent 70%); border-radius:50% 50% 0 0 / 80% 80% 0 0; box-shadow:inset 0 0 60px rgba(240,230,140,.15); animation:wdg-arch 8s ease-in-out infinite alternate; }

.scn-withdraw-gallery .wdg-floor { position:absolute; bottom:0; left:0; right:0; height:28%; background:linear-gradient(180deg, #2C3E50 0%, #1A252F 50%, #0F171E 100%); box-shadow:inset 0 20px 40px rgba(0,0,0,.5); animation:wdg-floor 12s ease-in-out infinite alternate; }

.scn-withdraw-gallery .wdg-shadow { position:absolute; bottom:25%; left:30%; width:40%; height:8%; background:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 30%, rgba(0,0,0,.5) 50%, rgba(0,0,0,.3) 70%, transparent 100%); border-radius:50%; filter:blur(4px); animation:wdg-shadow 7s ease-in-out infinite alternate; }

.scn-withdraw-gallery .wdg-knight1 { position:absolute; bottom:25%; left:20%; width:6%; height:14%; background:linear-gradient(180deg, #4A4A4A 0%, #2C2C2C 50%, #1A1A1A 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; box-shadow:2px 0 6px rgba(0,0,0,.4); animation:wdg-knight1 5s ease-in-out infinite alternate; }

.scn-withdraw-gallery .wdg-knight2 { position:absolute; bottom:25%; left:35%; width:5%; height:13%; background:linear-gradient(180deg, #3A3A3A 0%, #222222 50%, #111111 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; box-shadow:2px 0 6px rgba(0,0,0,.4); animation:wdg-knight2 5.5s ease-in-out infinite alternate-reverse; }

.scn-withdraw-gallery .wdg-knight3 { position:absolute; bottom:25%; left:50%; width:8%; height:16%; background:linear-gradient(180deg, #5A5A5A 0%, #3C3C3C 50%, #2A2A2A 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; box-shadow:2px 0 6px rgba(0,0,0,.4); transform:translateX(-50%); animation:wdg-knight3 6s ease-in-out infinite alternate; }

.scn-withdraw-gallery .wdg-column-l { position:absolute; bottom:0; left:20%; width:4%; height:75%; background:linear-gradient(90deg, #4A4A4A 0%, #6A6A6A 30%, #5A5A5A 60%, #3A3A3A 100%); box-shadow:4px 0 12px rgba(0,0,0,.3); animation:wdg-column-l 15s ease-in-out infinite alternate; }

.scn-withdraw-gallery .wdg-column-r { position:absolute; bottom:0; right:20%; width:4%; height:75%; background:linear-gradient(90deg, #3A3A3A 0%, #5A5A5A 30%, #6A6A6A 60%, #4A4A4A 100%); box-shadow:-4px 0 12px rgba(0,0,0,.3); animation:wdg-column-r 15s ease-in-out infinite alternate-reverse; }

@keyframes wdg-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes wdg-arch { 0% { opacity:.7; filter:brightness(.95) } 50% { opacity:1; filter:brightness(1.08) } 100% { opacity:.8; filter:brightness(.98) } }
@keyframes wdg-floor { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes wdg-shadow { 0% { transform:scaleX(1); opacity:.5 } 50% { transform:scaleX(1.05); opacity:.7 } 100% { transform:scaleX(.98); opacity:.55 } }
@keyframes wdg-knight1 { 0% { transform:translateX(0) translateY(0) rotate(-.5deg) } 30% { transform:translateX(-4px) translateY(1px) rotate(.3deg) } 60% { transform:translateX(-8px) translateY(-1px) rotate(-.2deg) } 100% { transform:translateX(-12px) translateY(0) rotate(0deg) } }
@keyframes wdg-knight2 { 0% { transform:translateX(0) translateY(0) rotate(.3deg) } 30% { transform:translateX(-3px) translateY(1px) rotate(-.2deg) } 70% { transform:translateX(-7px) translateY(-1px) rotate(.4deg) } 100% { transform:translateX(-10px) translateY(0) rotate(0deg) } }
@keyframes wdg-knight3 { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-3px) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes wdg-column-l { 0% { filter:brightness(.9) } 50% { filter:brightness(1) } 100% { filter:brightness(.92) } }
@keyframes wdg-column-r { 0% { filter:brightness(.92) } 50% { filter:brightness(1) } 100% { filter:brightness(.9) } }

.scn-banquet-welcome { background: linear-gradient(180deg, #1A0A00 0%, #3A1A00 20%, #6B3A1A 50%, #8B5A2B 80%, #A07040 100%), radial-gradient(ellipse at 50% 40%, #FFD700 0%, transparent 50%); }

.scn-banquet-welcome .bqw-wall { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #5C3A1E 0%, #8B5A2B 30%, #A07040 60%, #C08A5A 100%); box-shadow:inset 0 -30px 60px rgba(0,0,0,.4); animation:bqw-wall 12s ease-in-out infinite alternate; }

.scn-banquet-welcome .bqw-table { position:absolute; bottom:20%; left:15%; width:70%; height:8%; background:linear-gradient(180deg, #6B3A1A 0%, #4A2A0A 50%, #3A1A00 100%); border-radius:4px; box-shadow:0 8px 20px rgba(0,0,0,.5); animation:bqw-table 8s ease-in-out infinite alternate; }

.scn-banquet-welcome .bqw-cloth { position:absolute; bottom:20%; left:20%; width:60%; height:15%; background:linear-gradient(180deg, #F5F5DC 0%, #E8E0C8 50%, #D4C8A8 100%); border-radius:0 0 20% 20% / 0 0 40% 40%; box-shadow:0 4px 12px rgba(0,0,0,.2); animation:bqw-cloth 10s ease-in-out infinite alternate; }

.scn-banquet-welcome .bqw-goblet { position:absolute; bottom:26%; left:35%; width:4%; height:10%; background:linear-gradient(180deg, #FFD700 0%, #DAA520 50%, #B8860B 100%); border-radius:10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow:0 0 12px 4px rgba(255,215,0,.2); transform-origin:bottom center; animation:bqw-goblet 6s ease-in-out infinite alternate; }

.scn-banquet-welcome .bqw-platter { position:absolute; bottom:24%; left:55%; width:10%; height:4%; background:linear-gradient(180deg, #C0C0C0 0%, #A0A0A0 50%, #808080 100%); border-radius:30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow:0 2px 6px rgba(0,0,0,.3); animation:bqw-platter 7s ease-in-out infinite alternate-reverse; }

.scn-banquet-welcome .bqw-figure1 { position:absolute; bottom:22%; left:28%; width:6%; height:16%; background:linear-gradient(180deg, #5C3A1E 0%, #3A1A00 60%, #1A0A00 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; box-shadow:2px 0 8px rgba(0,0,0,.4); animation:bqw-figure1 5s ease-in-out infinite alternate; }

.scn-banquet-welcome .bqw-figure2 { position:absolute; bottom:22%; right:30%; width:6%; height:16%; background:linear-gradient(180deg, #5C3A1E 0%, #3A1A00 60%, #1A0A00 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; box-shadow:-2px 0 8px rgba(0,0,0,.4); animation:bqw-figure2 5.5s ease-in-out infinite alternate-reverse; }

.scn-banquet-welcome .bqw-candle { position:absolute; bottom:36%; left:48%; width:2%; height:14%; background:linear-gradient(180deg, #F5F5DC 0%, #E8E0C8 60%, #D4C8A8 100%); border-radius:10% 10% 20% 20%; box-shadow:0 0 16px 8px rgba(255,215,0,.3); animation:bqw-candle 4s ease-in-out infinite alternate; }

.scn-banquet-welcome .bqw-glow { position:absolute; bottom:38%; left:46%; width:8%; height:16%; background:radial-gradient(ellipse, rgba(255,215,0,.12) 0%, transparent 70%); border-radius:50%; filter:blur(8px); animation:bqw-glow 3s ease-in-out infinite alternate; }

@keyframes bqw-wall { 0% { filter:brightness(.9) } 50% { filter:brightness(1.05) } 100% { filter:brightness(.95) } }
@keyframes bqw-table { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes bqw-cloth { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(-3px) scaleX(1.02) } 100% { transform:translateY(0) scaleX(.98) } }
@keyframes bqw-goblet { 0% { transform:translateY(0) rotate(-2deg) scaleY(1) } 50% { transform:translateY(-2px) rotate(0deg) scaleY(1.04) } 100% { transform:translateY(0) rotate(2deg) scaleY(.98) } }
@keyframes bqw-platter { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(-1px) scaleX(1.03) } 100% { transform:translateY(0) scaleX(.98) } }
@keyframes bqw-figure1 { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 30% { transform:translateX(2px) translateY(-2px) rotate(.5deg) } 70% { transform:translateX(5px) translateY(-1px) rotate(-.3deg) } 100% { transform:translateX(8px) translateY(0) rotate(0deg) } }
@keyframes bqw-figure2 { 0% { transform:translateX(0) translateY(0) rotate(1deg) } 30% { transform:translateX(-2px) translateY(-2px) rotate(-.5deg) } 70% { transform:translateX(-5px) translateY(-1px) rotate(.3deg) } 100% { transform:translateX(-8px) translateY(0) rotate(0deg) } }
@keyframes bqw-candle { 0% { opacity:.85; filter:drop-shadow(0 0 6px #FFD700) } 50% { opacity:1; filter:drop-shadow(0 0 12px #FFD700) } 100% { opacity:.9; filter:drop-shadow(0 0 8px #FFD700) } }
@keyframes bqw-glow { 0% { opacity:.5; transform:scale(1) } 50% { opacity:.8; transform:scale(1.15) } 100% { opacity:.6; transform:scale(.95) } }

/* cerimon-grief (dawn, dark mood) */
.scn-cerimon-grief {
  background:
    linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 30%, #0e0e1a 70%),
    radial-gradient(ellipse at 30% 60%, #3a2a4a 0%, transparent 60%);
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.scn-cerimon-grief .room-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2e2e3e 0%, #1e1e2e 50%, #2e2e3e 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-cerimon-grief .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-cerimon-grief .window {
  position: absolute;
  top: 15%;
  left: 65%;
  width: 80px;
  height: 120px;
  background: #1a1a3e;
  border: 4px solid #3e2e1e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(100,80,200,0.3);
  animation: cg-window 20s ease-in-out infinite alternate;
}
.scn-cerimon-grief .dawn-sky {
  position: absolute;
  top: 15%;
  left: 65%;
  width: 76px;
  height: 116px;
  margin: 2px;
  background: linear-gradient(180deg, #5a4a7a 0%, #8a7aaa 40%, #c0a070 70%, #e0b060 100%);
  border-radius: 2px;
  opacity: 0.7;
  animation: cg-dawn 30s ease-in-out infinite alternate;
}
.scn-cerimon-grief .fireplace {
  position: absolute;
  bottom: 30%;
  left: 25%;
  width: 120px;
  height: 140px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 20% 20% 8% 8% / 40% 40% 8% 8%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
}
.scn-cerimon-grief .fire {
  position: absolute;
  bottom: 34%;
  left: 32%;
  width: 60px;
  height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #803010 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: cg-fire 2s ease-in-out infinite alternate;
  filter: blur(2px);
}
.scn-cerimon-grief .figure {
  position: absolute;
  bottom: 27%;
  left: 10%;
  width: 28px;
  height: 70px;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cg-figure 6s ease-in-out infinite;
}
.scn-cerimon-grief .box {
  position: absolute;
  bottom: 26%;
  left: 18%;
  width: 40px;
  height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: cg-box 12s ease-in-out infinite;
}
@keyframes cg-window {
  0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(100,80,200,0.2); }
  50% { opacity: 0.9; box-shadow: inset 0 0 40px rgba(180,140,240,0.4); }
  100% { opacity: 0.7; box-shadow: inset 0 0 25px rgba(100,80,200,0.3); }
}
@keyframes cg-dawn {
  0% { opacity: 0.5; background-position: 0 0; }
  50% { opacity: 0.9; background-position: 0 -20px; }
  100% { opacity: 0.6; background-position: 0 10px; }
}
@keyframes cg-fire {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.08) translateY(-4px); opacity: 1; }
  100% { transform: scale(0.95) translateY(2px); opacity: 0.7; }
}
@keyframes cg-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cg-box {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(1); }
}

/* miracle-revival (firelit, tense) */
.scn-miracle-revival {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1a0e0a 100%),
    radial-gradient(ellipse at 60% 80%, #5a2a0a 0%, transparent 70%);
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.scn-miracle-revival .bg-chamber {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0e 50%, #1a0e0a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
}
.scn-miracle-revival .fire {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 80px;
  height: 120px;
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #a04010 50%, transparent 80%);
  border-radius: 50% 50% 10% 10%;
  animation: mr-fire 1.5s ease-in-out infinite alternate;
  filter: blur(3px);
}
.scn-miracle-revival .queen {
  position: absolute;
  bottom: 10%;
  left: 45%;
  width: 40px;
  height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mr-queen 4s ease-in-out infinite;
}
.scn-miracle-revival .cerimon {
  position: absolute;
  bottom: 15%;
  right: 15%;
  width: 30px;
  height: 80px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mr-cerimon 6s ease-in-out infinite;
}
.scn-miracle-revival .cloth {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 60px;
  height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20%;
  transform: rotate(-15deg);
  animation: mr-cloth 5s ease-in-out infinite;
}
.scn-miracle-revival .viol {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 18px;
  height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 20% 20% 60% 60%;
  transform: rotate(-20deg);
  animation: mr-viol 3s ease-in-out infinite;
}
.scn-miracle-revival .glow {
  position: absolute;
  top: 10%;
  left: 50%;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, rgba(255,200,150,0.4) 0%, transparent 70%);
  animation: mr-glow 2s ease-in-out infinite alternate;
}
@keyframes mr-fire {
  0% { transform: scale(1) rotate(-2deg); opacity: 0.8; }
  50% { transform: scale(1.12) rotate(2deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(-1deg); opacity: 0.7; }
}
@keyframes mr-queen {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mr-cerimon {
  0% { transform: translateX(0) rotate(-2deg); }
  33% { transform: translateX(4px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mr-cloth {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(-10deg) translateX(3px); }
  100% { transform: rotate(-18deg) translateX(-2px); }
}
@keyframes mr-viol {
  0% { transform: rotate(-20deg) scale(1); }
  50% { transform: rotate(-15deg) scale(1.03); }
  100% { transform: rotate(-22deg) scale(0.98); }
}
@keyframes mr-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}

/* thaisa-awakes (firelit, warm) */
.scn-thaisa-awakes {
  background:
    linear-gradient(180deg, #4a2a0e 0%, #3a1a0a 40%, #2a0e06 100%),
    radial-gradient(ellipse at 40% 70%, #7a3a0a 0%, transparent 60%);
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.scn-thaisa-awakes .bg-chamber {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #5a2a0a 0%, #3a1a06 50%, #1a0a02 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.6);
}
.scn-thaisa-awakes .fire {
  position: absolute;
  bottom: 15%;
  left: 10%;
  width: 100px;
  height: 130px;
  background: radial-gradient(ellipse at 50% 100%, #ffa050 0%, #b05020 50%, transparent 80%);
  border-radius: 50% 50% 10% 10%;
  animation: ta-fire 3s ease-in-out infinite alternate;
  filter: blur(4px);
}
.scn-thaisa-awakes .bed {
  position: absolute;
  bottom: 5%;
  left: 30%;
  width: 200px;
  height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-thaisa-awakes .thaisa {
  position: absolute;
  bottom: 8%;
  left: 35%;
  width: 45px;
  height: 55px;
  background: linear-gradient(180deg, #6a3a1a 0%, #4a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ta-thaisa 8s ease-in-out infinite;
}
.scn-thaisa-awakes .hands {
  position: absolute;
  bottom: 14%;
  left: 40%;
  width: 30px;
  height: 20px;
  background: linear-gradient(180deg, #6a3a1a 0%, #4a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: rotate(-30deg);
  animation: ta-hands 5s ease-in-out infinite;
}
.scn-thaisa-awakes .linen {
  position: absolute;
  bottom: 15%;
  left: 50%;
  width: 50px;
  height: 15px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 20%;
  transform: rotate(10deg);
  animation: ta-linen 6s ease-in-out infinite;
}
.scn-thaisa-awakes .glow {
  position: absolute;
  top: 5%;
  left: 50%;
  width: 150px;
  height: 150px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 60%);
  animation: ta-glow 4s ease-in-out infinite alternate;
}
@keyframes ta-fire {
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.06) translateY(-3px); opacity: 1; }
  100% { transform: scale(0.97) translateY(2px); opacity: 0.85; }
}
@keyframes ta-thaisa {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ta-hands {
  0% { transform: rotate(-30deg) translateX(0); }
  50% { transform: rotate(-25deg) translateX(3px); }
  100% { transform: rotate(-35deg) translateX(-2px); }
}
@keyframes ta-linen {
  0% { transform: rotate(10deg) scale(1); }
  50% { transform: rotate(15deg) scale(1.04); }
  100% { transform: rotate(8deg) scale(0.98); }
}
@keyframes ta-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.08); }
  100% { opacity: 0.5; transform: scale(0.95); }
}

/* leaving-marina-cleons (sunlit, tense) */
.scn-leaving-marina-cleons {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0d4f0 40%, #e8f0ff 70%),
    radial-gradient(ellipse at 50% 100%, #f0e0b0 0%, transparent 70%);
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.scn-leaving-marina-cleons .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8fc8f0 0%, #c0e0ff 50%, #f0f8ff 100%);
  animation: lm-sky 20s ease-in-out infinite alternate;
}
.scn-leaving-marina-cleons .sun {
  position: absolute;
  top: 8%;
  right: 20%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #ffdd88 0%, #ffaa44 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,200,80,0.4);
  animation: lm-sun 30s ease-in-out infinite alternate;
}
.scn-leaving-marina-cleons .city {
  position: absolute;
  bottom: 30%;
  left: 5%;
  right: 5%;
  height: 35%;
  background: linear-gradient(180deg, #b0a080 0%, #7a6a5a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-leaving-marina-cleons .figure-left {
  position: absolute;
  bottom: 22%;
  left: 20%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lm-figure-l 5s ease-in-out infinite;
}
.scn-leaving-marina-cleons .figure-right {
  position: absolute;
  bottom: 22%;
  right: 20%;
  width: 35px;
  height: 75px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lm-figure-r 5s ease-in-out infinite;
  animation-delay: -2.5s;
}
.scn-leaving-marina-cleons .ship {
  position: absolute;
  bottom: 25%;
  right: 10%;
  width: 80px;
  height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  animation: lm-ship 10s ease-in-out infinite;
}
.scn-leaving-marina-cleons .path {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 80%;
  height: 10px;
  background: linear-gradient(90deg, #c0a080 0%, #a08060 50%, #c0a080 100%);
  border-radius: 20%;
  animation: lm-path 12s ease-in-out infinite;
}
@keyframes lm-sky {
  0% { opacity: 0.8; background-position: 0 0; }
  50% { opacity: 1; background-position: 0 -20px; }
  100% { opacity: 0.9; background-position: 0 10px; }
}
@keyframes lm-sun {
  0% { transform: scale(1) translateX(0); box-shadow: 0 0 50px 15px rgba(255,200,80,0.3); }
  50% { transform: scale(1.05) translateX(5px); box-shadow: 0 0 70px 25px rgba(255,200,80,0.5); }
  100% { transform: scale(0.98) translateX(-3px); box-shadow: 0 0 55px 18px rgba(255,200,80,0.4); }
}
@keyframes lm-figure-l {
  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 lm-figure-r {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  50% { transform: translateX(-6px) rotate(0deg); }
  75% { transform: translateX(-9px) rotate(2deg); }
  100% { transform: translateX(-12px) rotate(0deg); }
}
@keyframes lm-ship {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(-5px) rotate(-1deg); }
}
@keyframes lm-path {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.2); }
  100% { opacity: 0.8; transform: scaleY(0.9); }
}

/* brothel-leonine-threatens */
.scn-brothel-leonine-threatens {
  background: linear-gradient(180deg, #0a0a1a 0%, #15152a 40%, #1a1a3e 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a3e 0%, transparent 70%);
}
.scn-brothel-leonine-threatens .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #12122a 0%, #0a0a18 100%);
  animation: blt-bg 12s ease-in-out infinite alternate;
}
.scn-brothel-leonine-threatens .moonbeam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, rgba(200,220,255,0.08) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: blt-beam 10s linear infinite alternate;
}
.scn-brothel-leonine-threatens .leonine {
  position: absolute; bottom: 10%; left: 25%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: blt-leo 6s ease-in-out infinite alternate;
}
.scn-brothel-leonine-threatens .marina {
  position: absolute; bottom: 18%; left: 50%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: blt-marina 4s ease-in-out infinite;
}
.scn-brothel-leonine-threatens .sword {
  position: absolute; bottom: 55%; left: 32%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: blt-sword 6s ease-in-out infinite;
}
.scn-brothel-leonine-threatens .candle {
  position: absolute; bottom: 20%; left: 55%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffcc66 0%, #cc8833 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 12px 4px #ffcc6633, 0 0 24px 8px #ffcc661a;
  animation: blt-candle 3s ease-in-out infinite alternate;
}
.scn-brothel-leonine-threatens .hands {
  position: absolute; bottom: 22%; left: 48%; width: 16px; height: 10px;
  background: transparent;
  border: 2px solid #5a4a4a;
  border-radius: 50% 50% 0 0;
  transform: translateX(-50%);
  animation: blt-hands 4s ease-in-out infinite;
}
.scn-brothel-leonine-threatens .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 120px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: blt-shadow 8s ease-in-out infinite alternate;
}
@keyframes blt-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes blt-beam { 0% { opacity: 0.3; transform: skewX(-10deg) translateX(0) } 50% { opacity: 0.5; transform: skewX(-8deg) translateX(5px) } 100% { opacity: 0.2; transform: skewX(-12deg) translateX(-3px) } }
@keyframes blt-leo { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes blt-marina { 0%, 100% { transform: translateY(0) rotate(-1deg) scaleY(1) } 25% { transform: translateY(-3px) rotate(1deg) scaleY(0.95) } 50% { transform: translateY(0) rotate(0deg) scaleY(1) } 75% { transform: translateY(-2px) rotate(-1deg) scaleY(1.02) } }
@keyframes blt-sword { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(4px) } 100% { transform: rotate(-18deg) translateX(-2px) } }
@keyframes blt-candle { 0% { opacity: 0.8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.1) } 100% { opacity: 0.85; transform: scaleY(0.95) } }
@keyframes blt-hands { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) scale(1.05) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes blt-shadow { 0% { opacity: 0.4; transform: scaleX(1) } 50% { opacity: 0.6; transform: scaleX(1.1) } 100% { opacity: 0.3; transform: scaleX(0.9) } }

/* brothel-marina-innocence */
.scn-brothel-marina-innocence {
  background: linear-gradient(180deg, #0e0e20 0%, #161630 40%, #1c1c3c 100%),
              radial-gradient(ellipse at 30% 70%, #1c1c3c 0%, transparent 70%);
}
.scn-brothel-marina-innocence .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #141428 0%, #0a0a18 100%);
  animation: bmi-bg 15s ease-in-out infinite alternate;
}
.scn-brothel-marina-innocence .spotlight {
  position: absolute; top: 0; left: 25%; width: 50%; height: 80%;
  background: radial-gradient(ellipse at 50% 0%, rgba(180,200,255,0.06) 0%, transparent 70%);
  animation: bmi-spot 12s linear infinite alternate;
}
.scn-brothel-marina-innocence .figure {
  position: absolute; bottom: 15%; left: 40%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bmi-fig 6s ease-in-out infinite;
}
.scn-brothel-marina-innocence .hands {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 12px;
  background: transparent;
  border: 2px solid #4a3a4a;
  border-radius: 60% 60% 0 0;
  transform: translateX(-50%);
  animation: bmi-hands 5s ease-in-out infinite;
}
.scn-brothel-marina-innocence .teardrop {
  position: absolute; bottom: 48%; left: 42%; width: 4px; height: 6px;
  background: radial-gradient(circle, #a0b8ff 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #a0b8ff44;
  animation: bmi-tear 4s ease-in-out infinite;
}
.scn-brothel-marina-innocence .mouse {
  position: absolute; bottom: 12%; left: 55%; width: 10px; height: 6px;
  background: #3a2a2a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: bmi-mouse 10s linear infinite alternate;
}
.scn-brothel-marina-innocence .fly {
  position: absolute; top: 45%; left: 35%; width: 3px; height: 3px;
  background: #4a4a4a;
  border-radius: 50%;
  box-shadow: 0 0 0 1px #4a4a4a33;
  animation: bmi-fly 7s ease-in-out infinite alternate;
}
.scn-brothel-marina-innocence .shadow {
  position: absolute; bottom: 10%; left: 30%; width: 100px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 70%);
  animation: bmi-shadow 9s ease-in-out infinite alternate;
}
@keyframes bmi-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes bmi-spot { 0% { opacity: 0.2; transform: translateX(-5%) } 50% { opacity: 0.4; transform: translateX(0) } 100% { opacity: 0.3; transform: translateX(5%) } }
@keyframes bmi-fig { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(2deg) scaleY(0.98) } 60% { transform: translateY(2px) rotate(-1deg) scaleY(1.02) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bmi-hands { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(3deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg) } }
@keyframes bmi-tear { 0% { opacity: 0; transform: translateY(0) scale(1) } 30% { opacity: 0.8; transform: translateY(10px) scale(1.2) } 60% { opacity: 0.6; transform: translateY(20px) scale(0.9) } 100% { opacity: 0; transform: translateY(30px) scale(0.5) } }
@keyframes bmi-mouse { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(5px) translateY(-1px) } 100% { transform: translateX(-3px) translateY(1px) } }
@keyframes bmi-fly { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(10px,-8px) rotate(30deg) } 50% { transform: translate(-5px,5px) rotate(-20deg) } 75% { transform: translate(8px,3px) rotate(45deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes bmi-shadow { 0% { opacity: 0.4; transform: scaleX(1) } 50% { opacity: 0.6; transform: scaleX(1.1) } 100% { opacity: 0.3; transform: scaleX(0.95) } }

/* brothel-leonine-no-reason */
.scn-brothel-leonine-no-reason {
  background: linear-gradient(180deg, #0a0a1a 0%, #14142a 40%, #1a1a36 100%),
              radial-gradient(ellipse at 70% 30%, #1a1a36 0%, transparent 60%);
}
.scn-brothel-leonine-no-reason .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #12122a 0%, #080818 100%);
  animation: bln-bg 14s ease-in-out infinite alternate;
}
.scn-brothel-leonine-no-reason .light-door {
  position: absolute; bottom: 0; left: 0; width: 30%; height: 80%;
  background: linear-gradient(180deg, rgba(200,190,170,0.08) 0%, transparent 100%);
  border-right: 2px solid #2a2a3e;
  transform: skewY(2deg);
  animation: bln-door 9s linear infinite alternate;
}
.scn-brothel-leonine-no-reason .leo-figure {
  position: absolute; bottom: 10%; left: 20%; width: 26px; height: 76px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bln-leo 7s ease-in-out infinite;
}
.scn-brothel-leonine-no-reason .marina-figure {
  position: absolute; bottom: 12%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bln-marina 5s ease-in-out infinite alternate;
}
.scn-brothel-leonine-no-reason .sword {
  position: absolute; bottom: 60%; left: 22%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  animation: bln-sword 7s ease-in-out infinite;
}
.scn-brothel-leonine-no-reason .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #0a0a12 0%, transparent);
  animation: bln-ground 11s ease-in-out infinite alternate;
}
.scn-brothel-leonine-no-reason .beads {
  position: absolute; bottom: 25%; left: 47%; width: 8px; height: 14px;
  background: transparent;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #4a3a3a, 3px 4px 0 0 #4a3a3a, -2px 7px 0 0 #4a3a3a;
  animation: bln-beads 4s ease-in-out infinite;
}
.scn-brothel-leonine-no-reason .shadow {
  position: absolute; bottom: 10%; left: 15%; width: 140px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: bln-shadow 10s ease-in-out infinite alternate;
}
@keyframes bln-bg { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes bln-door { 0% { opacity: 0.2; transform: skewY(2deg) scaleX(1) } 50% { opacity: 0.4; transform: skewY(0deg) scaleX(1.02) } 100% { opacity: 0.3; transform: skewY(4deg) scaleX(0.98) } }
@keyframes bln-leo { 0% { transform: translateY(0) rotate(0deg) } 40% { transform: translateY(-2px) rotate(-1deg) scaleY(1.01) } 80% { transform: translateY(1px) rotate(2deg) scaleY(0.99) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bln-marina { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(3px) translateY(-2px) rotate(1deg) scale(1.02) } 100% { transform: translateX(-2px) translateY(1px) rotate(-1deg) scale(0.98) } }
@keyframes bln-sword { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(15deg) translateX(3px) } 100% { transform: rotate(8deg) translateX(-2px) } }
@keyframes bln-ground { 0% { opacity: 0.6; transform: scaleY(1) } 50% { opacity: 0.8; transform: scaleY(1.05) } 100% { opacity: 0.7; transform: scaleY(0.95) } }
@keyframes bln-beads { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(2px) rotate(5deg) } 100% { transform: translateY(-1px) rotate(-3deg) } }
@keyframes bln-shadow { 0% { opacity: 0.4; transform: scaleX(1) } 50% { opacity: 0.7; transform: scaleX(1.15) } 100% { opacity: 0.5; transform: scaleX(0.9) } }

/* brothel-leonine-seizes */
.scn-brothel-leonine-seizes {
  background: linear-gradient(180deg, #0a0a1e 0%, #12122e 40%, #181838 100%),
              radial-gradient(ellipse at 60% 80%, #181838 0%, transparent 60%);
}
.scn-brothel-leonine-seizes .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #10102a 0%, #08081a 100%);
  animation: bls-bg 13s ease-in-out infinite alternate;
}
.scn-brothel-leonine-seizes .door {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #1a1a30 0%, #0e0e20 100%);
  border-left: 2px solid #2a2a44;
  animation: bls-door 11s ease-in-out infinite alternate;
}
.scn-brothel-leonine-seizes .leo-arm {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 100%);
  border-radius: 20% 80% 50% 50%;
  transform-origin: right center;
  animation: bls-arm 4s ease-in-out infinite;
}
.scn-brothel-leonine-seizes .marina {
  position: absolute; bottom: 18%; left: 38%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1e1e2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bls-marina 5s ease-in-out infinite;
}
.scn-brothel-leonine-seizes .pirate-1 {
  position: absolute; bottom: 12%; left: 55%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: bls-pir1 8s ease-in-out infinite;
}
.scn-brothel-leonine-seizes .pirate-2 {
  position: absolute; bottom: 10%; left: 65%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #2e2e3e 0%, #1c1c2c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: bls-pir2 9s ease-in-out infinite;
}
.scn-brothel-leonine-seizes .ropes {
  position: absolute; bottom: 20%; left: 15%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  border-radius: 1px;
  transform: rotate(20deg);
  animation: bls-ropes 6s ease-in-out infinite;
}
.scn-brothel-leonine-seizes .dust {
  position: absolute; bottom: 5%; left: 10%; width: 60%; height: 10px;
  background: radial-gradient(ellipse at 50% 100%, rgba(100,90,70,0.15) 0%, transparent 100%);
  animation: bls-dust 8s linear infinite;
}
@keyframes bls-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes bls-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }
@keyframes bls-arm { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(-20deg) translateX(-5px) } 50% { transform: rotate(10deg) translateX(3px) } 75% { transform: rotate(-10deg) translateX(-2px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes bls-marina { 0% { transform: translateY(0) rotate(0deg) scale(1) } 30% { transform: translateY(-4px) rotate(5deg) scale(1.05) } 60% { transform: translateY(2px) rotate(-3deg) scale(0.95) } 100% { transform: translateY(0) rotate(0deg) scale(1) } }
@keyframes bls-pir1 { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(8deg) translateX(5px) scaleY(1.02) } 100% { transform: rotate(2deg) translateX(-3px) scaleY(0.98) } }
@keyframes bls-pir2 { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(-4px) scaleY(1.03) } 100% { transform: rotate(-12deg) translateX(2px) scaleY(0.97) } }
@keyframes bls-ropes { 0% { transform: rotate(20deg) scaleY(1) } 50% { transform: rotate(25deg) scaleY(1.1) } 100% { transform: rotate(15deg) scaleY(0.9) } }
@keyframes bls-dust { 0% { opacity: 0; transform: translateX(0) } 50% { opacity: 0.3; transform: translateX(20px) } 100% { opacity: 0; transform: translateX(50px) } }

.scn-pericles-entrusts-marina { background: linear-gradient(180deg, #1a2a4e 0%, #2c3e6e 40%, #4a6a8e 100%), radial-gradient(ellipse at 70% 20%, #f0c060 0%, transparent 60%); }
.scn-pericles-entrusts-marina .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a4a6e 0%, #4a7a9e 100%); animation: pe-sky 15s ease-in-out infinite alternate; }
.scn-pericles-entrusts-marina .sun { position:absolute; top:8%; right:15%; width:60px; height:60px; background: radial-gradient(circle, #ffd080 0%, #f0a040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px #f0a040, 0 0 120px 40px rgba(240,160,64,0.3); animation: pe-sun 8s ease-in-out infinite alternate; }
.scn-pericles-entrusts-marina .sea { position:absolute; bottom:20%; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a4a6e 0%, #1a2a4e 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; animation: pe-sea 12s ease-in-out infinite; }
.scn-pericles-entrusts-marina .shore { position:absolute; bottom:15%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 60% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,0.5); }
.scn-pericles-entrusts-marina .ship { position:absolute; bottom:32%; left:5%; width:120px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 10% 40% 10% 10% / 50% 80% 30% 30%; transform: rotate(-5deg); animation: pe-ship 20s ease-in-out infinite alternate; }
.scn-pericles-entrusts-marina .ship::after { content:''; position:absolute; top:-25px; left:20px; width:0; height:0; border-left:30px solid transparent; border-right:10px solid transparent; border-bottom:40px solid #1a1a2a; transform: rotate(-10deg); }
.scn-pericles-entrusts-marina .figure-pericles { position:absolute; bottom:18%; left:38%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe-figure1 6s ease-in-out infinite; }
.scn-pericles-entrusts-marina .figure-marina { position:absolute; bottom:18%; left:44%; width:14px; height:30px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe-figure2 6s ease-in-out infinite 0.5s; }
.scn-pericles-entrusts-marina .figure-cleon { position:absolute; bottom:18%; left:50%; width:20px; height:42px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe-figure1 6s ease-in-out infinite 1s; }
.scn-pericles-entrusts-marina .cloud { position:absolute; top:12%; left:30%; width:100px; height:25px; background: linear-gradient(180deg, rgba(200,220,240,0.6) 0%, rgba(200,220,240,0.1) 100%); border-radius:50%; filter: blur(8px); animation: pe-cloud 40s linear infinite; }

@keyframes pe-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes pe-sun { 0% { transform: scale(0.9); box-shadow: 0 0 40px 15px #f0a040; } 50% { transform: scale(1.05); box-shadow: 0 0 80px 25px #ffc060; } 100% { transform: scale(0.95); box-shadow: 0 0 50px 18px #e89030; } }
@keyframes pe-sea { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes pe-ship { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-7deg) translateX(-10px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes pe-figure1 { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-3px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes pe-figure2 { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes pe-cloud { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }

.scn-cleon-vows-care { background: linear-gradient(180deg, #3a2a1a 0%, #6a4a2a 40%, #8a6a4a 100%), radial-gradient(ellipse at 50% 30%, #ffd080 0%, transparent 70%); }
.scn-cleon-vows-care .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.4); }
.scn-cleon-vows-care .window { position:absolute; top:15%; left:25%; width:80px; height:100px; background: linear-gradient(180deg, #c0d0e0 0%, #a0b0c0 100%); border: 4px solid #3a2a1a; border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 20px rgba(255,255,200,0.3), 0 0 40px 10px rgba(255,200,100,0.2); animation: cv-window 5s ease-in-out infinite alternate; }
.scn-cleon-vows-care .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-cleon-vows-care .table { position:absolute; bottom:22%; left:35%; width:60px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: cv-table 9s ease-in-out infinite; }
.scn-cleon-vows-care .figure-cleon { position:absolute; bottom:15%; left:30%; width:22px; height:48px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cv-gesture 4s ease-in-out infinite; }
.scn-cleon-vows-care .figure-pericles { position:absolute; bottom:15%; left:45%; width:20px; height:46px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cv-gesture 4s ease-in-out infinite 1s; }
.scn-cleon-vows-care .light-beam { position:absolute; top:10%; left:22%; width:90px; height:200px; background: linear-gradient(180deg, rgba(255,220,150,0.3) 0%, rgba(255,220,150,0.05) 100%); transform: rotate(15deg); filter: blur(10px); animation: cv-beam 7s ease-in-out infinite alternate; }

@keyframes cv-window { 0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3), 0 0 40px 10px rgba(255,200,100,0.2); } 50% { box-shadow: inset 0 0 40px rgba(255,255,200,0.6), 0 0 60px 20px rgba(255,200,100,0.4); } 100% { box-shadow: inset 0 0 15px rgba(255,255,200,0.2), 0 0 30px 8px rgba(255,200,100,0.15); } }
@keyframes cv-table { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cv-gesture { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(5px) rotate(0deg); } 50% { transform: translateX(0) rotate(3deg); } 75% { transform: translateX(-5px) rotate(0deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes cv-beam { 0% { opacity:0.3; transform: rotate(15deg) scaleY(0.95); } 50% { opacity:0.7; transform: rotate(18deg) scaleY(1); } 100% { opacity:0.4; transform: rotate(12deg) scaleY(0.98); } }

.scn-dionyza-promises { background: linear-gradient(180deg, #4a6a4a 0%, #6a8a6a 40%, #8aaa8a 100%), radial-gradient(ellipse at 60% 20%, #f0e0a0 0%, transparent 60%); }
.scn-dionyza-promises .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a7a6a 0%, #8ababa 100%); animation: dp-sky 18s ease-in-out infinite alternate; }
.scn-dionyza-promises .grass { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: dp-grass 10s ease-in-out infinite; }
.scn-dionyza-promises .tree { position:absolute; bottom:35%; left:20%; width:30px; height:120px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 10% 10% 5% 5%; transform-origin: bottom center; animation: dp-tree 15s ease-in-out infinite; }
.scn-dionyza-promises .tree::after { content:''; position:absolute; top:-50px; left:-20px; width:80px; height:80px; background: radial-gradient(circle at 50% 50%, #3a5a3a 0%, #2a4a2a 60%, transparent 100%); border-radius:50%; }
.scn-dionyza-promises .flowers-a { position:absolute; bottom:30%; left:30%; width:25px; height:25px; background: radial-gradient(circle, #d08060 0%, #b06040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 15px 5px rgba(208,128,96,0.3); animation: dp-flowers 6s ease-in-out infinite alternate; }
.scn-dionyza-promises .flowers-b { position:absolute; bottom:28%; left:45%; width:20px; height:20px; background: radial-gradient(circle, #d0a080 0%, #b08060 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(208,160,128,0.3); animation: dp-flowers 6s ease-in-out infinite alternate-reverse 0.5s; }
.scn-dionyza-promises .figure-dionyza { position:absolute; bottom:15%; left:35%; width:20px; height:44px; background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-figure 5s ease-in-out infinite; }
.scn-dionyza-promises .figure-marina { position:absolute; bottom:15%; left:42%; width:14px; height:30px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-figure 5s ease-in-out infinite 0.75s; }

@keyframes dp-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes dp-grass { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes dp-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes dp-flowers { 0% { transform: scale(0.9) rotate(-5deg); } 50% { transform: scale(1.1) rotate(0deg); } 100% { transform: scale(0.95) rotate(5deg); } }
@keyframes dp-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-4px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }

.scn-ephesus-temple-vow { background: linear-gradient(180deg, #1a1a2e 0%, #3a3a5e 30%, #5a5a7e 100%), radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, transparent 70%); }
.scn-ephesus-temple-vow .col-left { position:absolute; top:5%; left:15%; width:20px; height:90%; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); border-radius: 5% 5% 0 0; box-shadow: 4px 0 15px rgba(0,0,0,0.3); animation: et-column 12s ease-in-out infinite alternate; }
.scn-ephesus-temple-vow .col-right { position:absolute; top:5%; right:15%; width:20px; height:90%; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); border-radius: 5% 5% 0 0; box-shadow: -4px 0 15px rgba(0,0,0,0.3); animation: et-column 12s ease-in-out infinite alternate-reverse; }
.scn-ephesus-temple-vow .altar { position:absolute; bottom:25%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 -4px 15px rgba(0,0,0,0.5); animation: et-altar 8s ease-in-out infinite; }
.scn-ephesus-temple-vow .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-ephesus-temple-vow .light-beam { position:absolute; top:5%; left:40%; width:80px; height:80%; background: linear-gradient(180deg, rgba(240,224,192,0.3) 0%, rgba(240,224,192,0.05) 100%); transform: rotate(5deg); filter: blur(8px); animation: et-beam 9s ease-in-out infinite alternate; }
.scn-ephesus-temple-vow .figure-thaisa { position:absolute; bottom:20%; left:45%; width:18px; height:38px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: et-kneel 6s ease-in-out infinite; }
.scn-ephesus-temple-vow .figure-pericles { position:absolute; bottom:20%; left:52%; width:20px; height:44px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: et-stand 6s ease-in-out infinite 0.5s; }

@keyframes et-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes et-altar { 0% { box-shadow: 0 -4px 15px rgba(0,0,0,0.5); } 50% { box-shadow: 0 -8px 30px rgba(0,0,0,0.7); } 100% { box-shadow: 0 -4px 15px rgba(0,0,0,0.5); } }
@keyframes et-beam { 0% { opacity:0.4; transform: rotate(5deg) scaleY(0.95); } 50% { opacity:0.8; transform: rotate(8deg) scaleY(1); } 100% { opacity:0.5; transform: rotate(3deg) scaleY(0.97); } }
@keyframes et-kneel { 0% { transform: scaleY(1) translateY(0); } 25% { transform: scaleY(0.95) translateY(2px); } 50% { transform: scaleY(0.9) translateY(4px); } 75% { transform: scaleY(0.95) translateY(2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes et-stand { 0% { transform: rotate(-2deg); } 25% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 75% { transform: rotate(0deg); } 100% { transform: rotate(-2deg); } }

/* boult-ravish – tense, dim interior */
.scn-boult-ravish {
  background: linear-gradient(180deg, #1a1208 0%, #2a1a10 40%, #3a2a1a 70%, #1a1208 100%), 
              radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 60%);
}
.scn-boult-ravish .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, transparent 0%, rgba(10,6,2,0.6) 100%);
  animation: br-bg 8s ease-in-out infinite alternate;
}
.scn-boult-ravish .bed {
  position: absolute; bottom: 10%; left: 10%; width: 55%; height: 30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 8% 8% 4% 4%; 
  box-shadow: inset 0 -12px 20px rgba(0,0,0,0.7);
  animation: br-bed 12s ease-in-out infinite;
}
.scn-boult-ravish .figure-boult {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1208 0%, #0d0905 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-boult 4s ease-in-out infinite;
}
.scn-boult-ravish .figure-marina {
  position: absolute; bottom: 30%; right: 20%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation: br-marina 5s ease-in-out infinite alternate;
  filter: brightness(0.7);
}
.scn-boult-ravish .window-bars {
  position: absolute; top: 8%; right: 8%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
  animation: br-window 9s ease-in-out infinite;
}
.scn-boult-ravish .candle {
  position: absolute; bottom: 38%; left: 22%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #d08030 0%, #8a5a20 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 6px #d08030, 0 0 40px 12px rgba(208,128,48,0.5);
  animation: br-candle 2s ease-in-out infinite alternate;
}
.scn-boult-ravish .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 60%, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: br-shadow 10s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes br-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes br-bed {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes br-boult {
  0%, 100% { transform: translateX(0) rotate(-1deg); }
  33% { transform: translateX(6px) rotate(1deg); }
  66% { transform: translateX(10px) rotate(-2deg); }
}
@keyframes br-marina {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(0.95) translateY(-3px); opacity: 0.7; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.9; }
}
@keyframes br-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 8px rgba(0,0,0,0.6); }
  50% { opacity: 1; box-shadow: inset 0 0 15px rgba(0,0,0,0.9); }
  100% { opacity: 0.8; }
}
@keyframes br-candle {
  0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 15px 4px #d08030; }
  50% { transform: scaleY(1.1) translateY(-1px); box-shadow: 0 0 25px 8px #e09040; }
  100% { transform: scaleY(0.95) translateY(0); box-shadow: 0 0 18px 5px #d08030; }
}
@keyframes br-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}

/* lysistratus-virginities – funny, dim interior */
.scn-lysistratus-virginities {
  background: linear-gradient(180deg, #2a1a10 0%, #4a2a1a 30%, #3a1a0e 70%, #1a0a06 100%),
              radial-gradient(ellipse at 60% 70%, #5a2a1a 0%, transparent 50%);
}
.scn-lysistratus-virginities .bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, transparent 40%, rgba(0,0,0,0.3) 100%);
  animation: lv-bg 6s ease-in-out infinite alternate;
}
.scn-lysistratus-virginities .table {
  position: absolute; bottom: 12%; left: 5%; width: 35%; height: 18%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 6px;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,0.7);
}
.scn-lysistratus-virginities .bawd {
  position: absolute; bottom: 22%; left: 12%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a1a0e 0%, #1a0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lv-bawd 3s ease-in-out infinite;
}
.scn-lysistratus-virginities .virgin-a {
  position: absolute; bottom: 22%; left: 50%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation: lv-virgin 2.5s ease-in-out infinite;
}
.scn-lysistratus-virginities .virgin-b {
  position: absolute; bottom: 22%; left: 60%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation: lv-virgin 2.5s ease-in-out infinite;
  animation-delay: 0.3s;
}
.scn-lysistratus-virginities .virgin-c {
  position: absolute; bottom: 22%; left: 70%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation: lv-virgin 2.5s ease-in-out infinite;
  animation-delay: 0.6s;
}
.scn-lysistratus-virginities .coin-pile {
  position: absolute; bottom: 16%; left: 20%; width: 10px; height: 6px;
  background: radial-gradient(circle, #d08030 0%, #8a5a20 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #d08030;
  animation: lv-coin 4s ease-in-out infinite alternate;
}
.scn-lysistratus-virginities .lantern {
  position: absolute; top: 10%; right: 15%; width: 8px; height: 12px;
  background: radial-gradient(circle, #e09040 0%, #8a5a20 70%);
  border-radius: 30%;
  box-shadow: 0 0 30px 8px #e09040;
  animation: lv-lantern 5s ease-in-out infinite alternate;
}
@keyframes lv-bg {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}
@keyframes lv-bawd {
  0%, 100% { transform: translateX(0) rotate(-2deg) scaleY(1); }
  25% { transform: translateX(3px) rotate(2deg) scaleY(1.02); }
  50% { transform: translateX(-2px) rotate(-3deg) scaleY(0.98); }
  75% { transform: translateX(4px) rotate(1deg) scaleY(1.01); }
}
@keyframes lv-virgin {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(-4px) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(3deg); }
}
@keyframes lv-coin {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-3px) scale(1.1); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.8; }
}
@keyframes lv-lantern {
  0% { transform: scale(1) translateY(0); box-shadow: 0 0 20px 6px #e09040; }
  50% { transform: scale(1.05) translateY(-2px); box-shadow: 0 0 40px 12px #f0a050; }
  100% { transform: scale(0.95) translateY(0); box-shadow: 0 0 25px 8px #e09040; }
}

/* lysistratus-darkness – funny, dim interior */
.scn-lysistratus-darkness {
  background: linear-gradient(180deg, #1a0a06 0%, #2a1a0e 40%, #1a0a06 100%),
              radial-gradient(ellipse at 50% 30%, #3a1a0e 0%, transparent 60%);
}
.scn-lysistratus-darkness .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 50%, rgba(0,0,0,0.4) 100%);
  animation: ld-bg 10s ease-in-out infinite alternate;
}
.scn-lysistratus-darkness .pedestal {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,0.8);
}
.scn-lysistratus-darkness .rose {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #c8553d 0%, #702243 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(200,85,61,0.5);
  animation: ld-rose 4s ease-in-out infinite;
}
.scn-lysistratus-darkness .hand {
  position: absolute; bottom: 28%; left: 30%; width: 12px; height: 22px;
  background: linear-gradient(180deg, #3a1a0e 0%, #1a0a04 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ld-hand 5s ease-in-out infinite alternate;
}
.scn-lysistratus-darkness .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, transparent 0%, rgba(0,0,0,0.7) 100%);
  pointer-events: none;
}
.scn-lysistratus-darkness .glow {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 60px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(200,85,61,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: ld-glow 3s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes ld-bg {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes ld-rose {
  0%, 100% { transform: translateX(-50%) rotate(0deg) scale(1); }
  25% { transform: translateX(-45%) rotate(-5deg) scale(1.02); }
  50% { transform: translateX(-55%) rotate(5deg) scale(0.98); }
  75% { transform: translateX(-48%) rotate(-3deg) scale(1.01); }
}
@keyframes ld-hand {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-5px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ld-glow {
  0% { opacity: 0.3; transform: translate(-50%, 0) scale(0.9); }
  50% { opacity: 0.7; transform: translate(-50%, -2px) scale(1.1); }
  100% { opacity: 0.4; transform: translate(-50%, 0) scale(0.95); }
}

/* lysistratus-chaste – funny, dim interior */
.scn-lysistratus-chaste {
  background: linear-gradient(180deg, #1a0a06 0%, #3a1a0e 40%, #2a1a0e 80%, #1a0a06 100%),
              radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, transparent 60%);
}
.scn-lysistratus-chaste .bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 40%, rgba(0,0,0,0.4) 100%);
  animation: lc-bg 8s ease-in-out infinite alternate;
}
.scn-lysistratus-chaste .curtain-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #5e1a1d 0%, #2a0a0c 100%);
  border-radius: 0 20% 20% 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.6);
  animation: lc-curtain 12s ease-in-out infinite alternate;
}
.scn-lysistratus-chaste .curtain-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #5e1a1d 0%, #2a0a0c 100%);
  border-radius: 20% 0 0 20%;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.6);
  animation: lc-curtain 12s ease-in-out infinite alternate;
  animation-delay: -6s;
}
.scn-lysistratus-chaste .marina {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lc-marina 6s ease-in-out infinite alternate;
}
.scn-lysistratus-chaste .bawd {
  position: absolute; bottom: 25%; left: 15%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #3a1a0e 0%, #1a0a04 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: lc-bawd 3s ease-in-out infinite;
}
.scn-lysistratus-chaste .spotlight {
  position: absolute; top: 0; left: 50%; width: 120px; height: 80%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, rgba(208,128,48,0.15) 0%, transparent 70%);
  pointer-events: none;
  animation: lc-spotlight 5s ease-in-out infinite alternate;
}
@keyframes lc-bg {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes lc-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(3%); }
  100% { transform: translateX(0); }
}
@keyframes lc-marina {
  0%, 100% { transform: translateX(-50%) rotate(0deg) scaleY(1); }
  25% { transform: translateX(-48%) rotate(2deg) scaleY(0.98); }
  50% { transform: translateX(-52%) rotate(-1deg) scaleY(1.02); }
  75% { transform: translateX(-50%) rotate(1deg) scaleY(0.99); }
}
@keyframes lc-bawd {
  0%, 100% { transform: translateX(0) rotate(-3deg) scaleY(1); }
  33% { transform: translateX(4px) rotate(2deg) scaleY(1.03); }
  66% { transform: translateX(-2px) rotate(-4deg) scaleY(0.97); }
}
@keyframes lc-spotlight {
  0% { opacity: 0.3; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 0.7; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.4; transform: translateX(-50%) scale(0.95); }
}

.scn-simonides-compliments {
  background: linear-gradient(180deg, #d4a84a 0%, #b88a3a 40%, #8a6a2a 100%), radial-gradient(ellipse at 50% 20%, #f0d080 0%, transparent 60%);
}
.scn-simonides-compliments .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #6e5032 0%, #8a6a3e 30%, #a88650 50%, #8a6a3e 70%, #6e5032 100%);
  border-bottom: 8px solid #5a3e20;
  animation: sc-wall 20s ease-in-out infinite alternate;
}
.scn-simonides-compliments .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #4a3520 0%, #6e5032 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-simonides-compliments .table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(0deg, #5a4020 0%, #7a5a30 100%);
  border-radius: 20% / 50% 50% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: sc-table 6s ease-in-out infinite;
}
.scn-simonides-compliments .goblet {
  position: absolute; bottom: 32%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #c8a84c 0%, #a08030 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  box-shadow: 0 0 10px 2px rgba(200,168,76,0.4);
}
.scn-simonides-compliments .goblet-left {
  left: 30%;
  animation: sc-goblet-l 4s ease-in-out infinite alternate;
}
.scn-simonides-compliments .goblet-right {
  right: 30%;
  animation: sc-goblet-r 4s ease-in-out infinite alternate-reverse;
}
.scn-simonides-compliments .figure {
  position: absolute; bottom: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-simonides-compliments .simonides {
  left: 25%;
  animation: sc-figure-s 5s ease-in-out infinite;
}
.scn-simonides-compliments .thaisa {
  right: 25%;
  width: 28px; height: 58px;
  background: linear-gradient(180deg, #8a6040 0%, #4a3020 100%);
  animation: sc-figure-t 5s ease-in-out infinite 0.5s;
}
.scn-simonides-compliments .crown {
  position: absolute; bottom: 68%; left: 28%; width: 20px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, #f0d080 0%, #c8a030 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 0 16px 4px rgba(200,160,48,0.6);
  animation: sc-crown 3s ease-in-out infinite alternate;
}
@keyframes sc-wall {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.85; transform: scaleX(0.98); }
}
@keyframes sc-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(0); }
}
@keyframes sc-goblet-l {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-1px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes sc-goblet-r {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(4deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes sc-figure-s {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes sc-figure-t {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(-2px) rotate(-2deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(1deg) scaleY(1); }
}
@keyframes sc-crown {
  0% { opacity: 0.7; transform: rotate(-3deg) scale(0.95); }
  50% { opacity: 1; transform: rotate(0deg) scale(1.05); }
  100% { opacity: 0.8; transform: rotate(3deg) scale(1); }
}

.scn-thaisa-toast {
  background: linear-gradient(180deg, #e4c060 0%, #c8a040 40%, #8a6a20 100%), radial-gradient(ellipse at 50% 30%, #ffe080 0%, transparent 60%);
}
.scn-thaisa-toast .bg-arch {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #9a7a4a 0%, #7a5a30 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
  animation: tt-arch 15s ease-in-out infinite alternate;
}
.scn-thaisa-toast .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #3a2518 0%, #5a3e28 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
}
.scn-thaisa-toast .table {
  position: absolute; bottom: 28%; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(0deg, #6a4a28 0%, #8a6838 100%);
  border-radius: 30% / 60% 60% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: tt-table 7s ease-in-out infinite;
}
.scn-thaisa-toast .goblet {
  position: absolute; bottom: 36%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #d8b050 0%, #b89030 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  box-shadow: 0 0 12px 3px rgba(216,176,80,0.5);
}
.scn-thaisa-toast .raised {
  left: 48%;
  transform-origin: bottom center;
  animation: tt-raise 4s ease-in-out infinite;
}
.scn-thaisa-toast .figure {
  position: absolute; bottom: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-thaisa-toast .thaisa {
  left: 30%;
  animation: tt-figure-t 5s ease-in-out infinite;
}
.scn-thaisa-toast .simonides {
  right: 30%;
  width: 32px; height: 64px;
  background: linear-gradient(180deg, #8a6040 0%, #4a3020 100%);
  animation: tt-figure-s 5s ease-in-out infinite 0.5s;
}
.scn-thaisa-toast .plate {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #c0a070 0%, #907050 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: tt-plate 8s ease-in-out infinite alternate;
}
.scn-thaisa-toast .bread {
  position: absolute; bottom: 33%; left: 23%; width: 16px; height: 12px;
  background: linear-gradient(180deg, #c09050 0%, #a07040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tt-bread 3s ease-in-out infinite;
}
@keyframes tt-arch {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.03); }
  100% { opacity: 0.9; transform: scaleY(0.98); }
}
@keyframes tt-table {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(0.98); }
}
@keyframes tt-raise {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-4px) scale(1.05); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes tt-figure-t {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes tt-figure-s {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes tt-plate {
  0% { opacity: 0.8; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes tt-bread {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

.scn-pericles-melancholy {
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #8a7a5a 0%, transparent 60%);
}
.scn-pericles-melancholy .bg-darkwall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  animation: pm-wall 25s ease-in-out infinite alternate;
}
.scn-pericles-melancholy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a1008 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.8);
}
.scn-pericles-melancholy .table {
  position: absolute; bottom: 28%; left: 10%; right: 10%; height: 14%;
  background: linear-gradient(0deg, #3a2a18 0%, #5a3e28 100%);
  border-radius: 20% / 40% 40% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  animation: pm-table 10s ease-in-out infinite;
}
.scn-pericles-melancholy .plate {
  position: absolute; bottom: 32%; left: 30%; width: 40px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #7a5a3a 0%, #4a3018 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: pm-plate 12s ease-in-out infinite alternate;
}
.scn-pericles-melancholy .goblet {
  position: absolute; bottom: 35%; right: 30%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  box-shadow: 0 0 8px 2px rgba(138,122,90,0.3);
  animation: pm-goblet 6s ease-in-out infinite;
}
.scn-pericles-melancholy .figure {
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-figure 8s ease-in-out infinite;
}
.scn-pericles-melancholy .shadow {
  position: absolute; bottom: 10%; left: 35%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: pm-shadow 8s ease-in-out infinite;
}
.scn-pericles-melancholy .candle {
  position: absolute; bottom: 40%; left: 55%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e0c060 0%, #c0a040 50%, #8a6a20 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(224,192,96,0.5);
  animation: pm-candle 3s ease-in-out infinite alternate;
}
@keyframes pm-wall {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.01); }
  100% { opacity: 0.7; transform: scaleY(0.99); }
}
@keyframes pm-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes pm-plate {
  0% { opacity: 0.5; transform: scale(0.9); }
  50% { opacity: 0.7; transform: scale(1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes pm-goblet {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(3deg); }
}
@keyframes pm-figure {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(-2px) rotate(-2deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(1deg) scaleY(1); }
}
@keyframes pm-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.1); opacity: 0.8; }
  100% { transform: scaleX(0.9); opacity: 0.5; }
}
@keyframes pm-candle {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.8; transform: scaleY(0.95); }
}

.scn-simonides-rebuke {
  background: linear-gradient(180deg, #c8a040 0%, #a08030 40%, #6a5020 100%), radial-gradient(ellipse at 30% 50%, #e0c060 0%, transparent 60%);
}
.scn-simonides-rebuke .bg-harsh {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #6e5030 0%, #4a3020 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: sr-bg 8s ease-in-out infinite alternate;
}
.scn-simonides-rebuke .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #3a2010 0%, #5a3820 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.7);
}
.scn-simonides-rebuke .table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(0deg, #4a3020 0%, #6a4a30 100%);
  border-radius: 20% / 40% 40% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: sr-table 4s ease-in-out infinite;
}
.scn-simonides-rebuke .goblet {
  position: absolute; bottom: 30%; left: 35%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #c8a040 0%, #a08030 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  box-shadow: 0 0 10px 2px rgba(200,160,64,0.5);
}
.scn-simonides-rebuke .shattered {
  animation: sr-shatter 1.5s ease-in-out infinite alternate;
  clip-path: polygon(20% 0%, 80% 10%, 70% 60%, 30% 50%);
}
.scn-simonides-rebuke .figure {
  position: absolute; bottom: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5a3820 0%, #2a1808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-simonides-rebuke .simonides-angry {
  left: 20%;
  width: 35px; height: 65px;
  animation: sr-figure-a 3s ease-in-out infinite;
}
.scn-simonides-rebuke .pericles {
  right: 20%;
  width: 28px; height: 58px;
  animation: sr-figure-p 3s ease-in-out infinite 0.5s;
}
.scn-simonides-rebuke .sceptre {
  position: absolute; bottom: 50%; left: 22%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c8a040 0%, #a08030 100%);
  border-radius: 50% / 20% 20% 10% 10%;
  box-shadow: 0 0 8px 2px rgba(200,160,64,0.4);
  transform-origin: bottom center;
  animation: sr-sceptre 2s ease-in-out infinite;
}
.scn-simonides-rebuke .glass-shard {
  position: absolute; bottom: 30%; right: 30%; width: 12px; height: 18px;
  background: linear-gradient(135deg, #e0d0a0 0%, #c0b080 100%);
  clip-path: polygon(50% 0%, 100% 40%, 80% 100%, 20% 80%);
  filter: drop-shadow(0 0 6px rgba(200,180,120,0.6));
  animation: sr-shard 0.8s ease-in-out infinite alternate;
}
@keyframes sr-bg {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.8; transform: scaleX(0.98); }
}
@keyframes sr-table {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes sr-shatter {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(15deg) scale(1.1); }
  100% { transform: rotate(-10deg) scale(0.9); }
}
@keyframes sr-figure-a {
  0% { transform: translateX(0) rotate(0deg) scaleX(1); }
  50% { transform: translateX(3px) rotate(5deg) scaleX(1.05); }
  100% { transform: translateX(0) rotate(-2deg) scaleX(0.95); }
}
@keyframes sr-figure-p {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(-3px) rotate(-3deg) scaleY(1.03); }
  100% { transform: translateX(0) rotate(2deg) scaleY(1); }
}
@keyframes sr-sceptre {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes sr-shard {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(20deg); }
  100% { transform: translateY(0) rotate(10deg); }
}

/* fisherman-bell-joke - funny, sunlit */
.scn-fisherman-bell-joke {
  background: linear-gradient(180deg, #87ceeb 0%, #f9d442 60%, #e8a317 100%),
              radial-gradient(ellipse at 50% 30%, #fff4d0 0%, transparent 60%);
}
.scn-fisherman-bell-joke .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b0e0ff 0%, transparent 100%); animation: fbj-sky 12s ease-in-out infinite alternate; }
.scn-fisherman-bell-joke .bell-body { position:absolute; top:15%; left:30%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 30%, #d4a843 0%, #b8860b 60%, #8b6914 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 10px 25px rgba(0,0,0,.3); animation: fbj-bell 3s ease-in-out infinite; }
.scn-fisherman-bell-joke .bell-rim { position:absolute; top:60%; left:28%; width:44%; height:15%; background: linear-gradient(180deg, #c59a35 0%, #a07818 100%); border-radius: 50%; box-shadow: inset 0 4px 8px rgba(0,0,0,.2); animation: fbj-rim 3s ease-in-out infinite; }
.scn-fisherman-bell-joke .clapper { position:absolute; top:50%; left:44%; width:12%; height:25%; background: linear-gradient(180deg, #5c4033 0%, #3b281e 100%); border-radius: 40% 40% 20% 20%; animation: fbj-clapper 3s ease-in-out infinite; }
.scn-fisherman-bell-joke .figure { position:absolute; top:46%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #2c1a0e 0%, #1c0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fbj-figure 3s ease-in-out infinite; }
.scn-fisherman-bell-joke .rope { position:absolute; top:10%; left:49%; width:2%; height:30%; background: linear-gradient(180deg, #a07818 0%, #705010 100%); border-radius: 10%; animation: fbj-rope 3s ease-in-out infinite; }
.scn-fisherman-bell-joke .fish { position:absolute; top:20%; right:10%; width:30px; height:15px; background: linear-gradient(90deg, #f4a460 0%, #d2691e 50%, #f4a460 100%); border-radius: 50%; transform: rotate(-20deg); animation: fbj-fish 4s ease-in-out infinite; }
@keyframes fbj-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes fbj-bell { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes fbj-rim { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes fbj-clapper { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(5px) rotate(1deg) } 50% { transform: translateY(0) rotate(3deg) } 75% { transform: translateY(5px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes fbj-figure { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(3px, -2px) rotate(2deg) } 50% { transform: translate(-2px,0) rotate(-1deg) } 75% { transform: translate(2px, -1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes fbj-rope { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes fbj-fish { 0% { transform: translate(0,0) rotate(-20deg) } 50% { transform: translate(-40px, -10px) rotate(10deg) } 100% { transform: translate(0,0) rotate(-20deg) } }

/* pericles-pleads-help - tense, sunlit */
.scn-pericles-pleads-help {
  background: linear-gradient(180deg, #4a90d9 0%, #7ec8e3 40%, #ffd700 70%, #ff8c00 100%),
              radial-gradient(ellipse at 50% 20%, #fff7c0 0%, transparent 60%);
}
.scn-pericles-pleads-help .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d0e8ff 0%, #b0d4ff 100%); animation: pph-sky 8s ease-in-out infinite alternate; }
.scn-pericles-pleads-help .sun { position:absolute; top:8%; left:70%; width:12%; height:12%; background: radial-gradient(circle, #fff5b0 0%, #ffd700 40%, #ff8c00 100%); border-radius:50%; box-shadow: 0 0 40px 15px #ffd700, 0 0 80px 30px rgba(255,215,0,.3); animation: pph-sun 6s ease-in-out infinite; }
.scn-pericles-pleads-help .figure-pericles { position:absolute; bottom:20%; left:15%; width:16%; height:40%; background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pph-figure 2s ease-in-out infinite; }
.scn-pericles-pleads-help .boat { position:absolute; bottom:15%; left:45%; width:35%; height:12%; background: linear-gradient(180deg, #5c3a1e 0%, #3a2212 100%); border-radius: 20% 20% 40% 40% / 50% 50% 30% 30%; box-shadow: 0 -4px 8px rgba(0,0,0,.3); animation: pph-boat 4s ease-in-out infinite; }
.scn-pericles-pleads-help .sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1e5a99 0%, #0d2b4a 100%); animation: pph-sea 12s ease-in-out infinite; }
.scn-pericles-pleads-help .net { position:absolute; bottom:20%; left:48%; width:30%; height:20%; background: radial-gradient(ellipse, rgba(255,255,255,.15) 0%, transparent 60%); border-radius: 40%; animation: pph-net 3s ease-in-out infinite; }
.scn-pericles-pleads-help .fish-school { position:absolute; top:60%; left:20%; width:40px; height:10px; background: linear-gradient(90deg, #c0c0c0 0%, #808080 100%); border-radius:50%; filter: blur(2px); animation: pph-fish 5s linear infinite; }
@keyframes pph-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes pph-sun { 0% { transform: scale(0.95); box-shadow: 0 0 30px 10px #ffd700; } 50% { transform: scale(1.05); box-shadow: 0 0 50px 20px #ffc125; } 100% { transform: scale(0.95); box-shadow: 0 0 30px 10px #ffd700; } }
@keyframes pph-figure { 0% { transform: translateX(0) rotate(-5deg) scaleY(1) } 25% { transform: translateX(5px) rotate(3deg) scaleY(1.02) } 50% { transform: translateX(-3px) rotate(-2deg) scaleY(0.98) } 75% { transform: translateX(4px) rotate(2deg) scaleY(1.01) } 100% { transform: translateX(0) rotate(-5deg) scaleY(1) } }
@keyframes pph-boat { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes pph-sea { 0% { background-position: 0 0 } 50% { background-position: 10% 5% } 100% { background-position: 0 0 } }
@keyframes pph-net { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.05) rotate(5deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes pph-fish { 0% { transform: translateX(-50px) } 100% { transform: translateX(150vw) } }

/* fishermen-gift-gown - warm, sunlit */
.scn-fishermen-gift-gown {
  background: linear-gradient(180deg, #f5deb3 0%, #f4a460 50%, #d2b48c 100%),
              radial-gradient(ellipse at 50% 30%, #ffdab9 0%, transparent 70%);
}
.scn-fishermen-gift-gown .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffefd5 0%, #ffe0b0 100%); animation: fgg-sky 15s ease-in-out infinite alternate; }
.scn-fishermen-gift-gown .sun { position:absolute; top:12%; left:48%; width:10%; height:10%; background: radial-gradient(circle, #fff8d0 0%, #ffd700 40%, #ff8c00 100%); border-radius:50%; box-shadow: 0 0 30px 10px #ffd700, 0 0 60px 20px rgba(255,215,0,.3); animation: fgg-sun 7s ease-in-out infinite; }
.scn-fishermen-gift-gown .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c2a080 0%, #8b6f4c 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; animation: fgg-ground 20s ease-in-out infinite; }
.scn-fishermen-gift-gown .figure-left { position:absolute; bottom:20%; left:25%; width:18%; height:40%; background: linear-gradient(180deg, #4a2c1a 0%, #2c1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fgg-figureL 6s ease-in-out infinite; }
.scn-fishermen-gift-gown .figure-right { position:absolute; bottom:20%; right:25%; width:18%; height:40%; background: linear-gradient(180deg, #3a2212 0%, #1c0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fgg-figureR 6s ease-in-out infinite; animation-delay: 3s; }
.scn-fishermen-gift-gown .gown { position:absolute; bottom:45%; left:38%; width:24%; height:30%; background: linear-gradient(180deg, #daa520 0%, #b8860b 50%, #8b6914 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: fgg-gown 8s ease-in-out infinite; }
.scn-fishermen-gift-gown .hands { position:absolute; bottom:52%; left:42%; width:10%; height:8%; background: radial-gradient(ellipse, #d2a679 0%, #a67c52 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: fgg-hands 6s ease-in-out infinite; }
@keyframes fgg-sky { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes fgg-sun { 0% { transform: scale(1) translate(0,0); box-shadow: 0 0 25px 10px #ffd700; } 50% { transform: scale(1.03) translate(2px,-2px); box-shadow: 0 0 35px 15px #ffc125; } 100% { transform: scale(1) translate(0,0); box-shadow: 0 0 25px 10px #ffd700; } }
@keyframes fgg-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fgg-figureL { 0% { transform: translate(0,0) rotate(-3deg) } 25% { transform: translate(2px,-1px) rotate(1deg) } 50% { transform: translate(0,0) rotate(-3deg) } 75% { transform: translate(-2px,-1px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(-3deg) } }
@keyframes fgg-figureR { 0% { transform: translate(0,0) rotate(2deg) } 25% { transform: translate(-2px,-1px) rotate(-1deg) } 50% { transform: translate(0,0) rotate(2deg) } 75% { transform: translate(2px,-1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(2deg) } }
@keyframes fgg-gown { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(2deg) scale(1.02) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fgg-hands { 0% { transform: translate(0,0) rotate(-5deg) } 50% { transform: translate(3px,-2px) rotate(5deg) } 100% { transform: translate(0,0) rotate(-5deg) } }

/* fishermen-offer-shelter - warm, sunlit */
.scn-fishermen-offer-shelter {
  background: linear-gradient(180deg, #f4a460 0%, #d2b48c 50%, #c2a080 100%),
              radial-gradient(ellipse at 50% 40%, #ffe4b5 0%, transparent 70%);
}
.scn-fishermen-offer-shelter .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe0b0 0%, #f5deb3 100%); animation: fos-sky 20s ease-in-out infinite alternate; }
.scn-fishermen-offer-shelter .cottage { position:absolute; bottom:15%; left:30%; width:40%; height:40%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: fos-cottage 10s ease-in-out infinite; }
.scn-fishermen-offer-shelter .door { position:absolute; bottom:15%; left:45%; width:10%; height:25%; background: linear-gradient(180deg, #6b4226 0%, #4a2c1a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: inset 0 2px 6px rgba(0,0,0,.4); animation: fos-door 6s ease-in-out infinite; }
.scn-fishermen-offer-shelter .light-spill { position:absolute; bottom:15%; left:44%; width:12%; height:30%; background: radial-gradient(ellipse at 50% 0%, #ffd700 0%, #ff8c00 40%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: fos-light 5s ease-in-out infinite; }
.scn-fishermen-offer-shelter .figure-inside { position:absolute; bottom:30%; left:46%; width:12%; height:25%; background: linear-gradient(180deg, #2c1a0e 0%, #1c0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fos-inside 8s ease-in-out infinite; }
.scn-fishermen-offer-shelter .figure-outside { position:absolute; bottom:20%; left:26%; width:14%; height:30%; background: linear-gradient(180deg, #3a2212 0%, #1c0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fos-outside 8s ease-in-out infinite; animation-delay: 4s; }
.scn-fishermen-offer-shelter .path { position:absolute; bottom:0; left:38%; width:24%; height:20%; background: linear-gradient(180deg, #b8967a 0%, #8b7355 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; animation: fos-path 15s ease-in-out infinite; }
.scn-fishermen-offer-shelter .tree { position:absolute; top:12%; right:15%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 20%, #6b8e23 0%, #556b2f 60%, #2e4a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: fos-tree 12s ease-in-out infinite; }
@keyframes fos-sky { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes fos-cottage { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fos-door { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes fos-light { 0% { opacity:0.6; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.6; transform: scale(0.95); } }
@keyframes fos-inside { 0% { transform: translate(0,0) scale(1) } 25% { transform: translate(2px,-1px) scale(1.01) } 50% { transform: translate(0,0) scale(1) } 75% { transform: translate(-2px,-1px) scale(0.99) } 100% { transform: translate(0,0) scale(1) } }
@keyframes fos-outside { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(3px,-2px) rotate(1deg) } 50% { transform: translate(0,0) rotate(-2deg) } 75% { transform: translate(-3px,-2px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes fos-path { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes fos-tree { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }

.scn-gower-foretells-shipwreck {
  background: linear-gradient(180deg, #2c3e4a 0%, #1a2a3a 50%, #0f1f2f 100%), radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 70%);
}
.scn-gower-foretells-shipwreck .sky    { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a4e5a 0%, #2a3a4a 100%); animation: gw-sky 10s ease-in-out infinite alternate; }
.scn-gower-foretells-shipwreck .sea    { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a2a3a 0%, #2a3a4a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: gw-sea 8s ease-in-out infinite alternate; }
.scn-gower-foretells-shipwreck .ship   { position:absolute; bottom:30%; left:60%; width:90px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: gw-ship 6s ease-in-out infinite; }
.scn-gower-foretells-shipwreck .sail   { position:absolute; bottom:38%; left:58%; width:40px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 70% 20%, #c8c8c0 0%, #909090 100%); border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: gw-sail 4s ease-in-out infinite alternate; }
.scn-gower-foretells-shipwreck .lightning-flash { position:absolute; top:15%; left:70%; width:20px; height:60px; background: radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, #ccc 40%, transparent 100%); border-radius: 20%; box-shadow: 0 0 40px 20px rgba(240,232,208,.4), 0 0 80px 40px rgba(240,232,208,.1); animation: gw-lightning 3s step-end infinite; }
.scn-gower-foretells-shipwreck .wave-a { position:absolute; bottom:10%; left:0; right:0; height:15%; background: linear-gradient(180deg, transparent 0%, #1a3a4a 100%); filter: blur(4px); animation: gw-wave 10s ease-in-out infinite alternate; }
.scn-gower-foretells-shipwreck .wave-b { position:absolute; bottom:5%; left:0; right:0; height:12%; background: linear-gradient(180deg, transparent 0%, #2a4a5a 100%); filter: blur(3px); animation: gw-wave 14s ease-in-out infinite alternate-reverse; }
@keyframes gw-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes gw-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes gw-ship { 0%,100% { transform: translateX(-50%) rotate(-3deg) } 25% { transform: translateX(-48%) rotate(0deg) translateY(-2px) } 50% { transform: translateX(-50%) rotate(3deg) } 75% { transform: translateX(-52%) rotate(0deg) translateY(-2px) } }
@keyframes gw-sail { 0% { transform: translateX(-50%) scaleX(0.8) rotate(-5deg) } 50% { transform: translateX(-50%) scaleX(1.1) rotate(3deg) } 100% { transform: translateX(-50%) scaleX(0.9) rotate(-2deg) } }
@keyframes gw-lightning { 0%,80%,100% { opacity:0; transform: scale(0.5) } 10%,30% { opacity:1; transform: scale(1) } 15%,35% { opacity:0.5; transform: scale(0.8) } }
@keyframes gw-wave { 0% { transform: translateX(0) } 50% { transform: translateX(20px) } 100% { transform: translateX(-20px) } }

.scn-shipwreck-pericles-wet {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f1020 50%, #050510 100%), radial-gradient(ellipse at 70% 30%, #1a1a2e 0%, transparent 80%);
}
.scn-shipwreck-pericles-wet .sky   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a40 0%, #1a1a30 100%); animation: sp-sky 12s ease-in-out infinite alternate; }
.scn-shipwreck-pericles-wet .sea   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #050515 0%, #101025 100%); border-radius: 40% 60% 0 0 / 30% 70% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.7); animation: sp-sea 14s ease-in-out infinite alternate; }
.scn-shipwreck-pericles-wet .rocks { position:absolute; bottom:28%; left:20%; width:120px; height:60px; background: linear-gradient(135deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 60% 40% 20% 80% / 40% 20% 80% 60%; box-shadow: 0 6px 12px rgba(0,0,0,.6); animation: sp-rocks 20s ease-in-out infinite alternate; }
.scn-shipwreck-pericles-wet .figure{ position:absolute; bottom:30%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #2aaa 0%, #111 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sp-figure 5s ease-in-out infinite; }
.scn-shipwreck-pericles-wet .rain  { position:absolute; inset:0; background: repeating-linear-gradient(0deg, rgba(180,200,220,0.1) 0px, rgba(180,200,220,0.1) 2px, transparent 2px, transparent 8px); filter: blur(1px); animation: sp-rain 1.5s linear infinite; }
.scn-shipwreck-pericles-wet .spray { position:absolute; bottom:0; left:0; right:0; height:10%; background: radial-gradient(ellipse at 50% 0%, rgba(200,220,240,0.3) 0%, transparent 70%); filter: blur(8px); animation: sp-spray 6s ease-in-out infinite alternate; }
@keyframes sp-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sp-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes sp-rocks { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(2deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes sp-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(3px) translateY(-1px) rotate(2deg) } }
@keyframes sp-rain { 0% { background-position: 0 0 } 100% { background-position: 0 30px } }
@keyframes sp-spray { 0% { opacity:0.4; transform: scaleX(1) } 50% { opacity:0.7; transform: scaleX(1.1) } 100% { opacity:0.3; transform: scaleX(0.9) } }

.scn-fishermen-banter {
  background: linear-gradient(180deg, #7ac8d4 0%, #f0e6b0 40%, #f5c06a 100%), radial-gradient(ellipse at 50% 100%, #f5c06a 0%, transparent 60%);
}
.scn-fishermen-banter .sky    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8ad4e4 0%, #e8dfb0 100%); animation: fb-sky 20s ease-in-out infinite alternate; }
.scn-fishermen-banter .sea    { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #3a7a8a 0%, #5ab0c0 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 5px 15px rgba(0,40,60,.4); animation: fb-sea 12s ease-in-out infinite alternate; }
.scn-fishermen-banter .sun    { position:absolute; top:12%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fff4c8 20%, #f0d060 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 50px 20px rgba(240,208,96,0.3); animation: fb-sun 8s ease-in-out infinite alternate; }
.scn-fishermen-banter .fisher-a { position:absolute; bottom:28%; left:25%; width:22px; 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: fb-figure-a 4s ease-in-out infinite; }
.scn-fishermen-banter .fisher-b { position:absolute; bottom:30%; left:46%; width:22px; height:42px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fb-figure-b 4.5s ease-in-out infinite 0.5s; }
.scn-fishermen-banter .fisher-c { position:absolute; bottom:26%; left:65%; width:20px; height:38px; background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fb-figure-c 3.8s ease-in-out infinite 1s; }
.scn-fishermen-banter .nets   { position:absolute; bottom:32%; left:35%; width:80px; height:10px; background: repeating-linear-gradient(90deg, #c0b090 0px, #c0b090 2px, transparent 2px, transparent 10px); border-radius: 40% 60% 40% 60% / 50% 50% 50% 50%; filter: blur(1px); animation: fb-nets 6s ease-in-out infinite alternate; }
@keyframes fb-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fb-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes fb-sun { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.1) translateX(5px) } 100% { transform: scale(0.95) translateX(-5px) } }
@keyframes fb-figure-a { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(8deg) } 50% { transform: rotate(-5deg) } 75% { transform: rotate(4deg) } }
@keyframes fb-figure-b { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(4px) rotate(-6deg) } 60% { transform: translateX(-2px) rotate(5deg) } }
@keyframes fb-figure-c { 0%,100% { transform: translateY(0) rotate(0deg) } 40% { transform: translateY(-3px) rotate(3deg) } 80% { transform: translateY(1px) rotate(-2deg) } }
@keyframes fb-nets { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.15) } 100% { transform: scaleX(0.9) } }

.scn-fishermen-philosophy {
  background: linear-gradient(180deg, #6ab8c8 0%, #e8d6a0 40%, #f0b060 100%), radial-gradient(ellipse at 50% 100%, #f0b060 0%, transparent 70%);
}
.scn-fishermen-philosophy .sky    { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #7ac8d8 0%, #e0d4a8 100%); animation: fp-sky 18s ease-in-out infinite alternate; }
.scn-fishermen-philosophy .sea    { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #2a6a7a 0%, #4a9aaa 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 5px 15px rgba(0,30,45,.5); animation: fp-sea 15s ease-in-out infinite alternate; }
.scn-fishermen-philosophy .whale  { position:absolute; bottom:20%; left:10%; width:140px; height:60px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 60% 40% 30% 70% / 50% 50% 50% 50%; box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: fp-whale 10s ease-in-out infinite alternate; }
.scn-fishermen-philosophy .fisherman { position:absolute; bottom:22%; left:60%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fp-fisherman 4.5s ease-in-out infinite; }
.scn-fishermen-philosophy .fish-1 { position:absolute; bottom:18%; left:35%; width:18px; height:8px; background: linear-gradient(90deg, #d89050 0%, #f0a060 100%); border-radius: 50% 50% 50% 50%; animation: fp-fish 7s ease-in-out infinite alternate; }
.scn-fishermen-philosophy .fish-2 { position:absolute; bottom:14%; left:45%; width:14px; height:6px; background: linear-gradient(90deg, #c08040 0%, #e09050 100%); border-radius: 50% 50% 50% 50%; animation: fp-fish 9s ease-in-out infinite alternate-reverse; }
.scn-fishermen-philosophy .bubbles{ position:absolute; bottom:15%; left:20%; width:10px; height:10px; background: radial-gradient(circle, rgba(200,220,240,0.5) 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: fp-bubbles 4s ease-in-out infinite; }
@keyframes fp-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fp-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fp-whale { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(15px) scaleY(1.03) } 100% { transform: translateX(-15px) scaleY(0.97) } }
@keyframes fp-fisherman { 0%,100% { transform: rotate(0deg) } 30% { transform: rotate(10deg) } 60% { transform: rotate(-5deg) } }
@keyframes fp-fish { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(20px) rotate(10deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fp-bubbles { 0% { transform: translateY(0) scale(0.8); opacity:0.8 } 50% { transform: translateY(-20px) scale(1.2); opacity:0.5 } 100% { transform: translateY(-40px) scale(0.6); opacity:0 } }

.scn-item-riddle-parsing { background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 60%); }
.scn-item-riddle-parsing .wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); animation: irp-wall 12s ease-in-out infinite alternate; }
.scn-item-riddle-parsing .desk { position:absolute; bottom:15%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:inset 0 4px 8px rgba(0,0,0,.5); }
.scn-item-riddle-parsing .mirror { position:absolute; bottom:30%; left:30%; width:40%; height:40%; background: linear-gradient(135deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:4px; box-shadow:0 0 30px 10px rgba(200,180,150,.3); animation: irp-mirror 8s ease-in-out infinite alternate; }
.scn-item-riddle-parsing .reflection { position:absolute; bottom:32%; left:32%; width:36%; height:36%; background: radial-gradient(circle, #fff8e0 0%, #c0b090 70%, transparent 100%); border-radius:4px; opacity:.6; animation: irp-glow 4s ease-in-out infinite alternate; }
.scn-item-riddle-parsing .candle { position:absolute; bottom:28%; left:48%; width:10px; height:30px; background: linear-gradient(180deg, #e0d0c0 0%, #8a7a6a 100%); border-radius:2px; }
.scn-item-riddle-parsing .flame { position:absolute; bottom:58%; left:48.5%; width:6px; height:20px; background: radial-gradient(ellipse, #ffc080 0%, #ff8040 50%, transparent 100%); border-radius:50%; animation: irp-flame .5s ease-in-out infinite alternate; }
.scn-item-riddle-parsing .eye-a, .scn-item-riddle-parsing .eye-b { position:absolute; width:12px; height:12px; background: radial-gradient(circle, #fff 0%, #000 100%); border-radius:50%; animation: irp-blink 3s ease-in-out infinite; }
.scn-item-riddle-parsing .eye-a { top:20%; left:20%; }
.scn-item-riddle-parsing .eye-b { top:20%; right:20%; animation-delay:.5s; }
.scn-item-riddle-parsing .shadow-layer { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 60%, rgba(0,0,0,.3) 100%); animation: irp-shadow 8s ease-in-out infinite alternate; }
@keyframes irp-wall { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes irp-mirror { 0% { box-shadow:0 0 20px 5px rgba(200,180,150,.2); } 50% { box-shadow:0 0 40px 15px rgba(200,180,150,.4); } 100% { box-shadow:0 0 25px 8px rgba(200,180,150,.25); } }
@keyframes irp-glow { 0% { opacity:.4; transform:scale(.95); } 50% { opacity:.7; transform:scale(1.05); } 100% { opacity:.5; transform:scale(1); } }
@keyframes irp-flame { 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(1.2) translateY(-2px); } 100% { transform:scaleY(.9) translateY(1px); } }
@keyframes irp-blink { 0%,90%,100% { transform:scaleY(1); } 95% { transform:scaleY(.1); } }
@keyframes irp-shadow { 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.2; } }

.scn-pericles-rejection { background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%), radial-gradient(ellipse at 50% 40%, #2a1a1a 0%, transparent 70%); }
.scn-pericles-rejection .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%); animation: pr-bg 10s ease-in-out infinite alternate; }
.scn-pericles-rejection .stand { position:absolute; bottom:20%; left:35%; width:30%; height:6%; background:#4a3a2a; border-radius:2px; }
.scn-pericles-rejection .body { position:absolute; bottom:25%; left:30%; width:40%; height:35%; background: radial-gradient(ellipse, #8a6030 0%, #5a3a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow:inset 0 4px 10px rgba(0,0,0,.6), 0 0 20px rgba(0,0,0,.3); animation: pr-body 6s ease-in-out infinite alternate; }
.scn-pericles-rejection .neck { position:absolute; bottom:50%; left:43%; width:14%; height:20%; background: linear-gradient(180deg, #8a6030 0%, #4a2a1a 100%); border-radius:2px; }
.scn-pericles-rejection .string-a, .scn-pericles-rejection .string-b, .scn-pericles-rejection .string-c { position:absolute; width:2px; background: linear-gradient(180deg, #c0a080 0%, #f0e0c0 100%); border-radius:1px; animation: pr-string 1.5s ease-in-out infinite alternate; }
.scn-pericles-rejection .string-a { bottom:50%; left:44%; height:30%; }
.scn-pericles-rejection .string-b { bottom:50%; left:47%; height:30%; animation-delay:.3s; }
.scn-pericles-rejection .string-c { bottom:50%; left:50%; height:30%; animation-delay:.6s; }
.scn-pericles-rejection .glow { position:absolute; bottom:25%; left:30%; width:40%; height:35%; background: radial-gradient(ellipse, rgba(200,150,80,.2) 0%, transparent 70%); animation: pr-glow 4s ease-in-out infinite alternate; }
@keyframes pr-bg { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes pr-body { 0% { transform:scaleX(1) rotate(0deg); } 50% { transform:scaleX(1.02) rotate(1deg); } 100% { transform:scaleX(.98) rotate(-1deg); } }
@keyframes pr-string { 0% { transform:translateX(0) scaleY(1); } 50% { transform:translateX(1px) scaleY(1.05); } 100% { transform:translateX(-1px) scaleY(.95); } }
@keyframes pr-glow { 0% { opacity:.3; transform:scale(.95); } 50% { opacity:.6; transform:scale(1.05); } 100% { opacity:.4; transform:scale(1); } }

.scn-antioch-last-warning { background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%), radial-gradient(ellipse at 50% 20%, #5a3a2a 0%, transparent 60%); }
.scn-antioch-last-warning .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); animation: alw-bg 12s ease-in-out infinite alternate; }
.scn-antioch-last-warning .desk { position:absolute; bottom:15%; left:10%; right:10%; height:8%; background:#4a3a2a; border-radius:2px; }
.scn-antioch-last-warning .scroll { position:absolute; bottom:30%; left:20%; width:60%; height:30%; background: linear-gradient(90deg, #c0a070 0%, #e0c090 50%, #c0a070 100%); border-radius:4px; animation: alw-scroll 8s ease-in-out infinite alternate; }
.scn-antioch-last-warning .seal { position:absolute; bottom:45%; left:25%; width:20px; height:20px; background: radial-gradient(circle, #800000 0%, #400000 100%); border-radius:50%; animation: alw-seal 12s ease-in-out infinite alternate; }
.scn-antioch-last-warning .hourglass { position:absolute; bottom:40%; left:55%; width:24px; height:36px; background:#a08060; border-radius:4px; border:2px solid #6a5030; animation: alw-time 10s ease-in-out infinite alternate; }
.scn-antioch-last-warning .hand { position:absolute; bottom:48%; left:15%; width:30px; height:40px; background: linear-gradient(180deg, #d0b090 0%, #a08060 100%); border-radius:50% 30% 40% 40% / 60% 40% 50% 50%; animation: alw-hand 5s ease-in-out infinite alternate; }
.scn-antioch-last-warning .shadow-layer { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 60%, rgba(0,0,0,.3) 100%); animation: alw-shadow 8s ease-in-out infinite alternate; }
@keyframes alw-bg { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes alw-scroll { 0% { transform:translateX(0) scaleX(1); } 50% { transform:translateX(3px) scaleX(1.02); } 100% { transform:translateX(-2px) scaleX(.98); } }
@keyframes alw-seal { 0% { opacity:.6; transform:rotate(-5deg); } 50% { opacity:1; transform:rotate(5deg); } 100% { opacity:.8; transform:rotate(0deg); } }
@keyframes alw-time { 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(1.05) translateY(2px); } 100% { transform:scaleY(.95) translateY(-1px); } }
@keyframes alw-hand { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(8px) rotate(5deg); } 100% { transform:translateX(0) rotate(-2deg); } }
@keyframes alw-shadow { 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.2; } }

.scn-antioch-riddle-response { background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%), radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 60%); }
.scn-antioch-riddle-response .bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); animation: arr-bg 15s ease-in-out infinite alternate; }
.scn-antioch-riddle-response .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:70% 70% 0 0; animation: arr-ground 8s ease-in-out infinite alternate; }
.scn-antioch-riddle-response .mole-body { position:absolute; bottom:30%; left:40%; width:30%; height:20%; background: radial-gradient(ellipse, #3a2a1a 0%, #1a0a00 100%); border-radius:60% 60% 40% 40% / 70% 70% 30% 30%; animation: arr-mole 4s ease-in-out infinite alternate; }
.scn-antioch-riddle-response .mole-claw { position:absolute; bottom:28%; left:38%; width:10px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 40% 40%; animation: arr-claw 2s ease-in-out infinite alternate; }
.scn-antioch-riddle-response .dust-a, .scn-antioch-riddle-response .dust-b { position:absolute; border-radius:50%; filter:blur(8px); animation: arr-dust 5s ease-in-out infinite alternate; }
.scn-antioch-riddle-response .dust-a { top:30%; left:30%; width:30px; height:30px; background:rgba(200,180,150,.3); }
.scn-antioch-riddle-response .dust-b { top:40%; left:60%; width:40px; height:40px; background:rgba(200,180,150,.2); animation-delay:2s; }
.scn-antioch-riddle-response .sky-glow { position:absolute; bottom:50%; left:0; right:0; height:60%; background: radial-gradient(ellipse at 50% 0, rgba(255,200,100,.2) 0%, transparent 70%); animation: arr-glow 12s ease-in-out infinite alternate; }
@keyframes arr-bg { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes arr-ground { 0% { transform:translateY(0); } 50% { transform:translateY(2px); } 100% { transform:translateY(-1px); } }
@keyframes arr-mole { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-3px) scaleY(1.05); } 100% { transform:translateY(2px) scaleY(.95); } }
@keyframes arr-claw { 0% { transform:rotate(-10deg) translateY(0); } 50% { transform:rotate(10deg) translateY(-2px); } 100% { transform:rotate(-5deg) translateY(1px); } }
@keyframes arr-dust { 0% { opacity:0; transform:translate(0,0); } 50% { opacity:.8; transform:translate(-10px,-10px); } 100% { opacity:0; transform:translate(10px,10px); } }
@keyframes arr-glow { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.2; } }

.scn-tarsus-famine-horror {
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 40%, #1a1a2a 100%) , radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
}
.scn-tarsus-famine-horror .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 60%, #2a2a3a 100%);
  animation: tfh-sky 15s ease-in-out infinite alternate;
}
.scn-tarsus-famine-horror .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: tfh-ground 20s ease-in-out infinite alternate;
}
.scn-tarsus-famine-horror .ruined-house {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: tfh-house 8s ease-in-out infinite;
}
.scn-tarsus-famine-horror .skeletal-tree {
  position: absolute; bottom: 40%; right: 20%; width: 20px; height: 120px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: tfh-tree 12s ease-in-out infinite;
}
.scn-tarsus-famine-horror .figure-starved {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tfh-figure 6s ease-in-out infinite;
}
.scn-tarsus-famine-horror .crow {
  position: absolute; top: 30%; right: 40%; width: 24px; height: 10px;
  background: #1a1a1a;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: tfh-crow 18s linear infinite;
}
.scn-tarsus-famine-horror .bowl-empty {
  position: absolute; bottom: 15%; left: 60%; width: 30px; height: 14px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 70%);
  border-radius: 50% / 30% 30% 70% 70%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: tfh-bowl 10s ease-in-out infinite;
}
@keyframes tfh-sky { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.6 } }
@keyframes tfh-ground { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes tfh-house { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(1deg) translateY(-2px) } 75% { transform: rotate(-1deg) translateY(-1px) } }
@keyframes tfh-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) scaleY(1.02) } 100% { transform: rotate(-3deg) } }
@keyframes tfh-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-5px) rotate(-2deg) scaleX(0.95) } 60% { transform: translateY(2px) rotate(2deg) } }
@keyframes tfh-crow { 0% { transform: translateX(-50px) translateY(0) rotate(0deg) } 50% { transform: translateX(80vw) translateY(-20px) rotate(10deg) } 100% { transform: translateX(120vw) translateY(0) rotate(0deg) } }
@keyframes tfh-bowl { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(5deg) translateY(-1px) } }

.scn-tarsus-death-expected {
  background: linear-gradient(180deg, #3a3a4a 0%, #252535 50%, #151525 100%) , radial-gradient(ellipse at 50% 20%, #2a2a3a 0%, transparent 80%);
}
.scn-tarsus-death-expected .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  animation: tde-sky 20s ease-in-out infinite alternate;
}
.scn-tarsus-death-expected .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: tde-ground 25s ease-in-out infinite alternate;
}
.scn-tarsus-death-expected .lord-figure {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tde-figure-lord 14s ease-in-out infinite;
}
.scn-tarsus-death-expected .lady-figure {
  position: absolute; bottom: 25%; left: 42%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tde-figure-lady 14s ease-in-out infinite;
  animation-delay: -7s;
}
.scn-tarsus-death-expected .grave-mound {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #3a3a2a 0%, #1a1a1a 70%);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: tde-mound 30s ease-in-out infinite;
}
.scn-tarsus-death-expected .cross {
  position: absolute; bottom: 30%; left: 55%; width: 4px; height: 50px;
  background: #2a2a2a;
  border-radius: 2px;
  transform: translateX(-50%);
  animation: tde-cross 18s ease-in-out infinite;
}
.scn-tarsus-death-expected .weeping-willow {
  position: absolute; bottom: 40%; right: 15%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%);
  border-radius: 60% 40% 30% 70% / 80% 70% 30% 20%;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  transform-origin: top center;
  animation: tde-willow 22s ease-in-out infinite;
}
.scn-tarsus-death-expected .fog {
  position: absolute; top: 20%; left: 0; right: 0; height: 60%;
  background: linear-gradient(90deg, rgba(200,200,220,0.15) 0%, rgba(200,200,220,0.05) 50%, transparent 100%);
  filter: blur(40px);
  animation: tde-fog 40s linear infinite alternate;
}
@keyframes tde-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes tde-ground { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(3px) scaleY(0.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes tde-figure-lord { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(2deg) } 75% { transform: translateY(2px) rotate(-2deg) } }
@keyframes tde-figure-lady { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(-3deg) } 75% { transform: translateY(1px) rotate(1deg) } }
@keyframes tde-mound { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) scaleY(0.95) } 100% { transform: scaleX(1) } }
@keyframes tde-cross { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px) } }
@keyframes tde-willow { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.03) } 100% { transform: rotate(-3deg) scaleY(0.97) } }
@keyframes tde-fog { 0% { transform: translateX(-10%) } 100% { transform: translateX(10%) } }

.scn-tarsus-ships-descried {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%) , radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, transparent 70%);
}
.scn-tarsus-ships-descried .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  animation: tsd-sky 18s ease-in-out infinite alternate;
}
.scn-tarsus-ships-descried .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: tsd-sea 30s ease-in-out infinite alternate;
}
.scn-tarsus-ships-descried .cliff {
  position: absolute; bottom: 35%; left: 0; width: 30%; height: 30%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 0 60% 40% 0 / 0 80% 20% 0;
  box-shadow: 8px 0 15px rgba(0,0,0,0.4);
  animation: tsd-cliff 25s ease-in-out infinite;
}
.scn-tarsus-ships-descried .watching-figure {
  position: absolute; bottom: 45%; left: 10%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tsd-figure 12s ease-in-out infinite;
}
.scn-tarsus-ships-descried .ship-a {
  position: absolute; bottom: 30%; right: 15%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 50% 50% / 10% 10% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: tsd-ship-a 40s linear infinite;
}
.scn-tarsus-ships-descried .ship-b {
  position: absolute; bottom: 25%; right: 40%; width: 60px; height: 32px;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 20% 20% 50% 50% / 10% 10% 40% 40%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
  animation: tsd-ship-b 50s linear infinite;
  animation-delay: -20s;
}
.scn-tarsus-ships-descried .sail-fore {
  position: absolute; bottom: 30%; right: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: tsd-sail-fore 8s ease-in-out infinite;
}
.scn-tarsus-ships-descried .sail-aft {
  position: absolute; bottom: 25%; right: 45%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: tsd-sail-aft 8s ease-in-out infinite;
  animation-delay: -4s;
}
.scn-tarsus-ships-descried .wave-1 {
  position: absolute; bottom: 10%; left: 0; width: 100%; height: 20px;
  background: linear-gradient(90deg, #1a2a2a 0%, #2a3a3a 50%, #1a2a2a 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: tsd-wave-1 6s ease-in-out infinite;
}
.scn-tarsus-ships-descried .wave-2 {
  position: absolute; bottom: 5%; left: 0; width: 100%; height: 15px;
  background: linear-gradient(90deg, #0a1a1a 0%, #1a2a2a 50%, #0a1a1a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: tsd-wave-2 8s ease-in-out infinite;
  animation-delay: -3s;
}
@keyframes tsd-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes tsd-sea { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(-2px) } }
@keyframes tsd-cliff { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(-1px) } }
@keyframes tsd-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-4px) rotate(3deg) } 60% { transform: translateY(1px) rotate(-2deg) } }
@keyframes tsd-ship-a { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes tsd-ship-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes tsd-sail-fore { 0%,100% { transform: rotate(0deg) scaleY(1) } 25% { transform: rotate(5deg) scaleY(1.05) } 75% { transform: rotate(-5deg) scaleY(0.95) } }
@keyframes tsd-sail-aft { 0%,100% { transform: rotate(0deg) scaleY(1) } 25% { transform: rotate(-5deg) scaleY(1.05) } 75% { transform: rotate(5deg) scaleY(0.95) } }
@keyframes tsd-wave-1 { 0% { transform: translateX(-10%) scaleX(1) } 50% { transform: translateX(0) scaleX(1.05) } 100% { transform: translateX(10%) scaleX(0.95) } }
@keyframes tsd-wave-2 { 0% { transform: translateX(10%) scaleX(1) } 50% { transform: translateX(0) scaleX(1.02) } 100% { transform: translateX(-10%) scaleX(0.98) } }

.scn-tarsus-white-flags {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 100%) , radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, transparent 70%);
}
.scn-tarsus-white-flags .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  animation: twf-sky 25s ease-in-out infinite alternate;
}
.scn-tarsus-white-flags .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 0 0 10% 10% / 0 0 5% 5%;
  animation: twf-sea 35s ease-in-out infinite alternate;
}
.scn-tarsus-white-flags .ship {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 50% 50% / 10% 10% 40% 40%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.3);
  transform: translateX(-50%);
  animation: twf-ship 45s ease-in-out infinite;
}
.scn-tarsus-white-flags .white-flag {
  position: absolute; bottom: 50%; left: 55%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #e0e0e0 0%, #b0b0b0 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 8px 4px rgba(220,220,230,0.2);
  animation: twf-flag 6s ease-in-out infinite;
}
.scn-tarsus-white-flags .sailor {
  position: absolute; bottom: 28%; left: 48%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: twf-sailor 14s ease-in-out infinite;
}
.scn-tarsus-white-flags .dove-1 {
  position: absolute; top: 25%; left: 20%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #e8e8e8 0%, #c0c0c0 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: twf-dove-1 20s linear infinite;
}
.scn-tarsus-white-flags .dove-2 {
  position: absolute; top: 30%; right: 25%; width: 25px; height: 16px;
  background: linear-gradient(180deg, #f0f0f0 0%, #d0d0d0 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: twf-dove-2 25s linear infinite;
  animation-delay: -10s;
}
.scn-tarsus-white-flags .calm-wave {
  position: absolute; bottom: 10%; left: 0; width: 100%; height: 12px;
  background: linear-gradient(90deg, transparent 0%, #3a4a4a 30%, transparent 60%, #2a3a3a 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: twf-calm-wave 10s ease-in-out infinite;
}
@keyframes twf-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes twf-sea { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes twf-ship { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(1deg) } 75% { transform: translateX(-52%) rotate(-1deg) } }
@keyframes twf-flag { 0%,100% { transform: rotate(0deg) scaleY(1) } 25% { transform: rotate(8deg) scaleY(1.05) } 75% { transform: rotate(-8deg) scaleY(0.95) } }
@keyframes twf-sailor { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(2deg) } 75% { transform: translateY(1px) rotate(-2deg) } }
@keyframes twf-dove-1 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 100% { transform: translateX(100vw) translateY(-50px) rotate(15deg) } }
@keyframes twf-dove-2 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 100% { transform: translateX(-100vw) translateY(-30px) rotate(-10deg) } }
@keyframes twf-calm-wave { 0% { transform: translateX(-10%) scaleX(1) } 50% { transform: translateX(0) scaleX(1.03) } 100% { transform: translateX(10%) scaleX(0.97) } }

.scn-pericles-trusts-helianus {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4b896 100%),
    radial-gradient(ellipse at 30% 20%, #fff7e0 0%, transparent 60%);
  /* warm bright interior */
}
.scn-pericles-trusts-helianus .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #c9b28a 100%);
  animation: pt-wall-breathe 8s ease-in-out infinite alternate;
}
.scn-pericles-trusts-helianus .floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #a0875a 0%, #7c6438 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-pericles-trusts-helianus .window {
  position: absolute; left: 10%; top: 15%; width: 120px; height: 160px;
  background: radial-gradient(ellipse at 50% 30%, #c3e4ff 0%, #96bcd4 70%);
  border: 8px solid #6b4f2e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,220,0.6), 0 4px 12px rgba(0,0,0,0.3);
  animation: pt-window-light 6s ease-in-out infinite alternate;
}
.scn-pericles-trusts-helianus .table {
  position: absolute; bottom: 20%; left: 25%; width: 160px; height: 30px;
  background: linear-gradient(180deg, #8b6f4a 0%, #5a4526 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-pericles-trusts-helianus .map {
  position: absolute; bottom: 24%; left: 30%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #dac29c 25%, #b89a70 50%, #dac29c 75%);
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: pt-map-shimmer 12s ease-in-out infinite;
}
.scn-pericles-trusts-helianus .figure-left {
  position: absolute; bottom: 15%; left: 20%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2b4a6b 0%, #1a2e4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pt-figure-l 5s ease-in-out infinite alternate;
}
.scn-pericles-trusts-helianus .figure-right {
  position: absolute; bottom: 15%; right: 25%; width: 38px; height: 88px;
  background: linear-gradient(180deg, #4a3c2b 0%, #2e221a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pt-figure-r 5s ease-in-out infinite alternate;
  animation-delay: 0.5s;
}
.scn-pericles-trusts-helianus .lantern {
  position: absolute; top: 25%; right: 15%; width: 14px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #b07030 80%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 40px 10px rgba(255,200,100,0.5);
  animation: pt-lantern-swing 4s ease-in-out infinite;
}
.scn-pericles-trusts-helianus .dust {
  position: absolute; top: 20%; left: 10%; width: 100px; height: 80px;
  background: radial-gradient(circle, rgba(255,255,200,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pt-dust-drift 20s linear infinite;
}
@keyframes pt-wall-breathe {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pt-window-light {
  0% { background: radial-gradient(ellipse at 50% 30%, #c3e4ff 0%, #96bcd4 70%); box-shadow: inset 0 0 30px rgba(255,255,220,0.6); }
  50% { background: radial-gradient(ellipse at 50% 30%, #e0f2ff 0%, #b0d0e8 70%); box-shadow: inset 0 0 40px rgba(255,255,250,0.8); }
  100% { background: radial-gradient(ellipse at 50% 30%, #c3e4ff 0%, #96bcd4 70%); box-shadow: inset 0 0 30px rgba(255,255,220,0.6); }
}
@keyframes pt-map-shimmer {
  0% { background: linear-gradient(135deg, #dac29c 25%, #b89a70 50%, #dac29c 75%); }
  50% { background: linear-gradient(135deg, #e7d4b1 25%, #c4a882 50%, #e7d4b1 75%); }
  100% { background: linear-gradient(135deg, #dac29c 25%, #b89a70 50%, #dac29c 75%); }
}
@keyframes pt-figure-l {
  0% { transform: translateX(0px) translateY(0px) rotate(0deg); }
  50% { transform: translateX(2px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0px) translateY(0px) rotate(0deg); }
}
@keyframes pt-figure-r {
  0% { transform: translateX(0px) translateY(0px) rotate(0deg); }
  50% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0px) translateY(0px) rotate(0deg); }
}
@keyframes pt-lantern-swing {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes pt-dust-drift {
  0% { transform: translateY(0px) translateX(0px); opacity: 0.3; }
  25% { transform: translateY(-10px) translateX(30px); opacity: 0.6; }
  50% { transform: translateY(-20px) translateX(60px); opacity: 0.2; }
  75% { transform: translateY(-5px) translateX(90px); opacity: 0.5; }
  100% { transform: translateY(0px) translateX(120px); opacity: 0.3; }
}

.scn-tyrc-assassins-arrive {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a44 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 70% 20%, #3a3a5a 0%, transparent 50%);
  /* dim, cool interior */
}
.scn-tyrc-assassins-arrive .back-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2e2e4a 0%, #1a1a2e 100%);
  animation: ta-wall-darken 10s ease-in-out infinite alternate;
}
.scn-tyrc-assassins-arrive .corridor-floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #1e1e32 0%, #0e0e1a 100%);
  border-radius: 30% 70% 0 0 / 10% 20% 0 0;
}
.scn-tyrc-assassins-arrive .side-arch {
  position: absolute; left: 5%; top: 30%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a3a5a 0%, #1e1e32 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
}
.scn-tyrc-assassins-arrive .door {
  position: absolute; right: 10%; bottom: 40%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e2218 100%);
  border: 3px solid #1a1a2e;
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
  animation: ta-door-creak 15s ease-in-out infinite;
}
.scn-tyrc-assassins-arrive .assassin {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #0e0e1a 0%, #05050c 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 2px rgba(0,0,0,0.8);
  animation: ta-assassin-creep 8s ease-in-out infinite;
}
.scn-tyrc-assassins-arrive .knife-glimmer {
  position: absolute; bottom: 42%; left: 48%; width: 4px; height: 16px;
  background: radial-gradient(circle, #c0c0c0 0%, #505050 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 2px rgba(200,200,200,0.6);
  animation: ta-knife-flash 2s ease-in-out infinite alternate;
}
.scn-tyrc-assassins-arrive .shadow-shaft {
  position: absolute; top: 0; left: 20%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0) 80%);
  filter: blur(6px);
  animation: ta-shadow-sway 6s ease-in-out infinite alternate;
}
@keyframes ta-wall-darken {
  0% { background: linear-gradient(180deg, #2e2e4a 0%, #1a1a2e 100%); }
  50% { background: linear-gradient(180deg, #3a3a5a 0%, #22223a 100%); }
  100% { background: linear-gradient(180deg, #2e2e4a 0%, #1a1a2e 100%); }
}
@keyframes ta-door-creak {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ta-assassin-creep {
  0% { transform: translateX(0px) translateY(0px) scale(1); }
  25% { transform: translateX(5px) translateY(-3px) scale(1.02); }
  50% { transform: translateX(10px) translateY(-1px) scale(1); }
  75% { transform: translateX(15px) translateY(-4px) scale(1.01); }
  100% { transform: translateX(20px) translateY(0px) scale(1); }
}
@keyframes ta-knife-flash {
  0% { opacity: 0.3; box-shadow: 0 0 8px 1px rgba(200,200,200,0.4); }
  50% { opacity: 1; box-shadow: 0 0 20px 4px rgba(255,255,255,0.8); }
  100% { opacity: 0.2; box-shadow: 0 0 6px 1px rgba(200,200,200,0.3); }
}
@keyframes ta-shadow-sway {
  0% { transform: translateX(-10px); opacity: 0.6; }
  50% { transform: translateX(10px); opacity: 0.4; }
  100% { transform: translateX(-5px); opacity: 0.7; }
}

.scn-helicanus-answers-lords {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%),
    radial-gradient(ellipse at 50% 10%, #fff5e0 0%, transparent 70%);
  /* bright, warm council chamber */
}
.scn-helicanus-answers-lords .pillar-left {
  position: absolute; left: 5%; top: 0; bottom: 0; width: 30px;
  background: linear-gradient(180deg, #b8a080 0%, #8a6e50 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
}
.scn-helicanus-answers-lords .pillar-right {
  position: absolute; right: 5%; top: 0; bottom: 0; width: 30px;
  background: linear-gradient(180deg, #b8a080 0%, #8a6e50 100%);
  border-radius: 4px;
  box-shadow: -2px 0 8px rgba(0,0,0,0.2);
}
.scn-helicanus-answers-lords .floor-tiles {
  position: absolute; inset: 70% 0 0 0;
  background: repeating-linear-gradient(90deg, #c8b898 0px, #c8b898 20px, #b8a080 20px, #b8a080 40px);
  border-radius: 40% 40% 0 0 / 10% 10% 0 0;
  animation: ha-tiles-shimmer 25s linear infinite;
}
.scn-helicanus-answers-lords .throne {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 60px;
  background: linear-gradient(180deg, #6b4f3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 6% 6%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: ha-throne-settle 12s ease-in-out infinite;
}
.scn-helicanus-answers-lords .helicanus {
  position: absolute; bottom: 18%; left: 44%; width: 36px; height: 85px;
  background: linear-gradient(180deg, #3a4a6b 0%, #1a2e4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-figure-speak 6s ease-in-out infinite;
}
.scn-helicanus-answers-lords .lord-left {
  position: absolute; bottom: 22%; left: 22%; width: 32px; height: 78px;
  background: linear-gradient(180deg, #4a3c2b 0%, #2e221a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-lord-left 7s ease-in-out infinite alternate;
}
.scn-helicanus-answers-lords .lord-right {
  position: absolute; bottom: 22%; right: 20%; width: 32px; height: 78px;
  background: linear-gradient(180deg, #4a3c2b 0%, #2e221a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-lord-right 7s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-helicanus-answers-lords .banner {
  position: absolute; top: 10%; left: 30%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #8a2e1a 100%); /* terracotta banner */
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ha-banner-wave 4s ease-in-out infinite;
}
.scn-helicanus-answers-lords .light-ray {
  position: absolute; top: 0; left: 20%; width: 100px; height: 300px;
  background: linear-gradient(180deg, rgba(255,255,200,0.15) 0%, transparent 100%);
  transform: rotate(10deg);
  filter: blur(10px);
  animation: ha-ray-sweep 18s linear infinite;
}
@keyframes ha-tiles-shimmer {
  0% { background-position: 0 0; }
  100% { background-position: 40px 0; }
}
@keyframes ha-throne-settle {
  0% { transform: translateX(-50%) translateY(0px); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0px); }
}
@keyframes ha-figure-speak {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(0) translateY(-1px) rotate(0deg); }
  75% { transform: translateX(-2px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ha-lord-left {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ha-lord-right {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ha-banner-wave {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes ha-ray-sweep {
  0% { transform: rotate(5deg) translateX(-20px); opacity: 0.3; }
  50% { transform: rotate(15deg) translateX(20px); opacity: 0.6; }
  100% { transform: rotate(5deg) translateX(-20px); opacity: 0.3; }
}

.scn-helicanus-explains-departure {
  background:
    linear-gradient(180deg, #e3d4b8 0%, #b89a70 100%),
    radial-gradient(ellipse at 80% 30%, #fbe8c0 0%, transparent 60%);
  /* warm cabin interior */
}
.scn-helicanus-explains-departure .cabin-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c8b08a 0%, #a0805a 100%);
  border-radius: 0 0 30% 30% / 0 0 8% 8%;
  animation: he-wall-rock 10s ease-in-out infinite alternate;
}
.scn-helicanus-explains-departure .porthole {
  position: absolute; left: 20%; top: 12%; width: 60px; height: 60px;
  background: radial-gradient(circle at 30% 30%, #b0d4f0 0%, #7088a0 80%);
  border: 6px solid #6b4f2e;
  border-radius: 50%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.4), 0 4px 8px rgba(0,0,0,0.3);
  animation: he-porthole-light 8s ease-in-out infinite alternate;
}
.scn-helicanus-explains-departure .table-desk {
  position: absolute; bottom: 18%; left: 30%; width: 140px; height: 20px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-helicanus-explains-departure .map-scroll {
  position: absolute; bottom: 22%; left: 35%; width: 70px; height: 50px;
  background: linear-gradient(135deg, #dac29c 30%, #b89a70 70%);
  border-radius: 2px;
  transform: rotate(-4deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: he-map-unroll 15s ease-in-out infinite;
}
.scn-helicanus-explains-departure .figure-writing {
  position: absolute; bottom: 14%; left: 28%; width: 34px; height: 80px;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: he-figure-write 6s ease-in-out infinite;
}
.scn-helicanus-explains-departure .swaying-lamp {
  position: absolute; top: 20%; right: 20%; width: 12px; height: 18px;
  background: radial-gradient(ellipse at 50% 40%, #ffd080 0%, #b07030 80%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(255,200,100,0.5);
  animation: he-lamp-sway 5s ease-in-out infinite;
}
.scn-helicanus-explains-departure .sea-swell {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #305070 0%, #1a2a40 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  animation: he-sea-swell 12s ease-in-out infinite;
}
@keyframes he-wall-rock {
  0% { transform: translateY(0px) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(0.5deg); }
  100% { transform: translateY(0px) rotate(0deg); }
}
@keyframes he-porthole-light {
  0% { background: radial-gradient(circle at 30% 30%, #b0d4f0 0%, #7088a0 80%); box-shadow: inset 0 0 20px rgba(255,255,200,0.4); }
  50% { background: radial-gradient(circle at 30% 30%, #c0e4ff 0%, #8098b0 80%); box-shadow: inset 0 0 30px rgba(255,255,220,0.6); }
  100% { background: radial-gradient(circle at 30% 30%, #b0d4f0 0%, #7088a0 80%); box-shadow: inset 0 0 20px rgba(255,255,200,0.4); }
}
@keyframes he-map-unroll {
  0% { transform: rotate(-6deg) scaleX(1); }
  50% { transform: rotate(-2deg) scaleX(1.1); }
  100% { transform: rotate(-6deg) scaleX(1); }
}
@keyframes he-figure-write {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-1px) translateY(-2px) rotate(-1deg); }
  75% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes he-lamp-sway {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-8deg); }
}
@keyframes he-sea-swell {
  0% { transform: translateY(0px) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.05); }
  100% { transform: translateY(0px) scaleY(1); }
}

.scn-boult-wars { background: linear-gradient(180deg, #1a1515 0%, #2a2020 50%, #3a2a20 100%), radial-gradient(ellipse at 60% 40%, #7a5a3a 0%, transparent 60%); }
.scn-boult-wars .bw-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 4px, #5a4a3a 4px, #5a4a3a 8px); }
.scn-boult-wars .bw-table { position:absolute; bottom:30%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 2px 6px rgba(0,0,0,.6); }
.scn-boult-wars .bw-window { position:absolute; top:20%; left:30%; width:25%; height:35%; background: linear-gradient(180deg, rgba(100,80,60,.6) 0%, rgba(60,40,20,.4) 100%); border: 4px solid #4a3a2a; border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: bw-window 15s ease-in-out infinite alternate; }
.scn-boult-wars .bw-candle { position:absolute; bottom:42%; left:45%; width:8px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #b06020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 0 30px 8px rgba(255,200,100,.5); animation: bw-candle-flicker 4s ease-in-out infinite; }
.scn-boult-wars .bw-figure { position:absolute; bottom:25%; left:40%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bw-figure-sway 5s ease-in-out infinite; }
.scn-boult-wars .bw-crutch { position:absolute; bottom:25%; left:46%; width:4px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(-15deg); transform-origin: bottom center; animation: bw-crutch 5s ease-in-out infinite; }
.scn-boult-wars .bw-shadow { position:absolute; bottom:0; left:35%; width:30px; height:20px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(4px); animation: bw-shadow-stretch 5s ease-in-out infinite; }
@keyframes bw-candle-flicker { 0% { transform: scaleY(1) scaleX(1); opacity: .9; box-shadow: 0 0 25px 6px rgba(255,200,100,.4); } 30% { transform: scaleY(1.1) scaleX(.95); opacity: 1; box-shadow: 0 0 40px 12px rgba(255,200,100,.6); } 70% { transform: scaleY(.95) scaleX(1.05); opacity: .8; box-shadow: 0 0 20px 4px rgba(255,200,100,.3); } 100% { transform: scaleY(1) scaleX(1); opacity: .9; box-shadow: 0 0 25px 6px rgba(255,200,100,.4); } }
@keyframes bw-figure-sway { 0% { transform: translateX(0) rotate(-2deg); } 33% { transform: translateX(4px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes bw-crutch { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(2px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes bw-shadow-stretch { 0% { transform: scaleX(1) scaleY(1); opacity: .5; } 50% { transform: scaleX(1.2) scaleY(.8); opacity: .4; } 100% { transform: scaleX(1) scaleY(1); opacity: .5; } }
@keyframes bw-window { 0% { opacity: .6; } 100% { opacity: .8; } }

.scn-marina-suggest { background: linear-gradient(180deg, #2a2020 0%, #3a2a2a 50%, #4a3a3a 100%), radial-gradient(ellipse at 40% 50%, #7a5a4a 0%, transparent 70%); }
.scn-marina-suggest .ms-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 6px, #5a4a3a 6px, #5a4a3a 12px); }
.scn-marina-suggest .ms-wall { position:absolute; top:0; left:0; right:0; bottom:20%; background: linear-gradient(135deg, #1a1515 0%, #2a2020 100%); }
.scn-marina-suggest .ms-window { position:absolute; top:15%; right:20%; width:20%; height:30%; background: linear-gradient(180deg, rgba(80,60,40,.6) 0%, rgba(40,30,20,.4) 100%); border: 3px solid #4a3a2a; border-radius: 4px; animation: ms-window-light 10s ease-in-out infinite alternate; }
.scn-marina-suggest .ms-table { position:absolute; bottom:28%; left:25%; right:25%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 3px 8px rgba(0,0,0,.5); }
.scn-marina-suggest .ms-candle { position:absolute; bottom:35%; left:42%; width:6px; height:16px; background: linear-gradient(180deg, #ffd080 0%, #b06020 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 20px 6px rgba(255,200,100,.4); animation: ms-candle-glow 6s ease-in-out infinite; }
.scn-marina-suggest .ms-figure { position:absolute; bottom:22%; left:50%; width:24px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ms-figure-sway 8s ease-in-out infinite; }
.scn-marina-suggest .ms-book { position:absolute; bottom:30%; left:35%; width:30px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; transform: rotateY(10deg); animation: ms-book-page 12s ease-in-out infinite alternate; }
@keyframes ms-candle-glow { 0% { transform: scaleY(1); opacity: .9; box-shadow: 0 0 18px 4px rgba(255,200,100,.3); } 50% { transform: scaleY(1.05); opacity: 1; box-shadow: 0 0 30px 8px rgba(255,200,100,.5); } 100% { transform: scaleY(1); opacity: .9; box-shadow: 0 0 18px 4px rgba(255,200,100,.3); } }
@keyframes ms-figure-sway { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ms-book-page { 0% { transform: rotateY(10deg) scaleX(1); } 50% { transform: rotateY(25deg) scaleX(.95); } 100% { transform: rotateY(10deg) scaleX(1); } }
@keyframes ms-window-light { 0% { opacity: .5; } 100% { opacity: .7; } }

.scn-boult-place { background: linear-gradient(180deg, #1a1515 0%, #2a2020 50%, #3a2a20 100%), radial-gradient(ellipse at 30% 50%, #6a4a3a 0%, transparent 70%); }
.scn-boult-place .bp-floor { position:absolute; bottom:0; left:0; right:0; height:22%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 5px, #5a4a3a 5px, #5a4a3a 10px); }
.scn-boult-place .bp-wall { position:absolute; top:0; left:0; right:0; bottom:22%; background: linear-gradient(135deg, #1a1515 0%, #2a2020 100%); }
.scn-boult-place .bp-door { position:absolute; bottom:22%; left:15%; width:30%; height:78%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 2px 0 6px rgba(0,0,0,.6); transform-origin: left center; animation: bp-door-creak 20s ease-in-out infinite; }
.scn-boult-place .bp-threshold { position:absolute; bottom:22%; left:15%; width:30%; height:6px; background: #3a2a1a; }
.scn-boult-place .bp-figure-a { position:absolute; bottom:24%; left:55%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bp-figure-a-gesture 7s ease-in-out infinite; }
.scn-boult-place .bp-figure-b { position:absolute; bottom:24%; left:30%; width:20px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bp-figure-b-stand 7s ease-in-out infinite; }
.scn-boult-place .bp-purse { position:absolute; bottom:40%; left:40%; width:10px; height:14px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: bp-purse-swing 3s ease-in-out infinite; }
.scn-boult-place .bp-candle { position:absolute; bottom:34%; left:48%; width:6px; height:16px; background: linear-gradient(180deg, #ffd080 0%, #b06020 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 20px 6px rgba(255,200,100,.4); animation: bp-candle-flicker 5s ease-in-out infinite; }
@keyframes bp-door-creak { 0% { transform: rotateY(0deg); } 25% { transform: rotateY(-5deg); } 50% { transform: rotateY(0deg); } 75% { transform: rotateY(3deg); } 100% { transform: rotateY(0deg); } }
@keyframes bp-figure-a-gesture { 0% { transform: rotate(0) translateX(0); } 30% { transform: rotate(8deg) translateX(4px); } 60% { transform: rotate(-2deg) translateX(2px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes bp-figure-b-stand { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bp-purse-swing { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(15deg) translateY(2px); } 50% { transform: rotate(-15deg) translateY(-1px); } 75% { transform: rotate(10deg) translateY(1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes bp-candle-flicker { 0% { transform: scaleY(1); opacity: .85; } 40% { transform: scaleY(1.08); opacity: 1; } 80% { transform: scaleY(.95); opacity: .75; } 100% { transform: scaleY(1); opacity: .85; } }

.scn-gower-marina-brothel { background: linear-gradient(180deg, #4a4a4a 0%, #6a6a6a 50%, #8a8a8a 100%), radial-gradient(ellipse at 50% 0%, #9a9a9a 0%, transparent 70%); }
.scn-gower-marina-brothel .gmb-sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #5a5a5a 0%, #7a7a7a 100%); animation: gmb-sky 30s ease-in-out infinite alternate; }
.scn-gower-marina-brothel .gmb-building { position:absolute; bottom:0; left:10%; width:80%; height:70%; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 6px 6px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-gower-marina-brothel .gmb-door { position:absolute; bottom:0; left:40%; width:20%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 10px rgba(0,0,0,.4); animation: gmb-door-open 25s ease-in-out infinite; }
.scn-gower-marina-brothel .gmb-figure-marina { position:absolute; bottom:10%; left:30%; width:20px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: gmb-marina-dance 8s ease-in-out infinite; }
.scn-gower-marina-brothel .gmb-figure-gower { position:absolute; bottom:10%; left:60%; width:22px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: gmb-gower-drift 12s ease-in-out infinite; }
.scn-gower-marina-brothel .gmb-needle { position:absolute; bottom:30%; left:50%; width:2px; height:25px; background: linear-gradient(180deg, #b0b0c0 0%, #808090 100%); border-radius: 1px; transform: rotate(20deg); animation: gmb-needle-shimmer 4s ease-in-out infinite; }
.scn-gower-marina-brothel .gmb-thread { position:absolute; bottom:30%; left:52%; width:20px; height:2px; background: #c0b080; border-radius: 1px; transform-origin: left center; animation: gmb-thread-wobble 5s ease-in-out infinite; }
@keyframes gmb-sky { 0% { opacity: .7; } 100% { opacity: 1; } }
@keyframes gmb-door-open { 0% { transform: rotateY(0deg); } 20% { transform: rotateY(-20deg); } 40% { transform: rotateY(0deg); } 80% { transform: rotateY(10deg); } 100% { transform: rotateY(0deg); } }
@keyframes gmb-marina-dance { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes gmb-gower-drift { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gmb-needle-shimmer { 0% { transform: rotate(20deg) scaleY(1); opacity: .8; } 50% { transform: rotate(25deg) scaleY(1.1); opacity: 1; } 100% { transform: rotate(20deg) scaleY(1); opacity: .8; } }
@keyframes gmb-thread-wobble { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(10deg) translateX(3px); } 70% { transform: rotate(-5deg) translateX(1px); } 100% { transform: rotate(0deg) translateX(0); } }

.scn-tyre-anticipating-war { background: linear-gradient(180deg, #1a1a3e 0%, #0a0a2e 40%, #2a2a4e 100%), radial-gradient(ellipse at 60% 30%, #3a3a5e 0%, transparent 70%); }
.scn-tyre-anticipating-war .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); }
.scn-tyre-anticipating-war .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-tyre-anticipating-war .table { position:absolute; bottom:30%; left:45%; width:80px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-tyre-anticipating-war .map { position:absolute; bottom:38%; left:47%; width:60px; height:40px; background: linear-gradient(135deg, #5a4a3a 0%, #6a5a4a 50%, #5a4a3a 100%); border-radius: 2%/5%; transform: rotate(-5deg); animation: ta-map 8s ease-in-out infinite; box-shadow: 0 0 4px rgba(0,0,0,.3); }
.scn-tyre-anticipating-war .candle { position:absolute; bottom:45%; left:42%; width:4px; height:14px; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 20% 20% 0 0; animation: ta-candle 3s ease-in-out infinite; }
.scn-tyre-anticipating-war .candle::after { content:''; position:absolute; top:-6px; left:-1px; width:6px; height:6px; background: radial-gradient(circle, #ffd040 0%, transparent 70%); border-radius:50%; }
.scn-tyre-anticipating-war .figure { position:absolute; bottom:30%; left:55%; 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: ta-figure 4s ease-in-out infinite; }
.scn-tyre-anticipating-war .shadow { position:absolute; bottom:25%; left:54%; width:30px; height:4px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(2px); animation: ta-shadow 6s ease-in-out infinite; }
@keyframes ta-map { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(-5deg); } }
@keyframes ta-candle { 0% { opacity:.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:.9; transform: scaleY(1); } }
@keyframes ta-figure { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-2deg); } }
@keyframes ta-shadow { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }

.scn-helicanus-entrance { background: linear-gradient(180deg, #f0e0c0 0%, #e0d0b0 50%, #c0a080 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%); }
.scn-helicanus-entrance .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%); }
.scn-helicanus-entrance .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b0a080 0%, #908060 100%); }
.scn-helicanus-entrance .pillar-l { position:absolute; left:10%; top:0; width:20px; height:70%; background: linear-gradient(180deg, #d0c0a0 0%, #c0b0a0 100%); border-radius: 10% 10% 0 0; animation: he-pillar-l 20s ease-in-out infinite; }
.scn-helicanus-entrance .pillar-r { position:absolute; right:10%; top:0; width:20px; height:70%; background: linear-gradient(180deg, #d0c0a0 0%, #c0b0a0 100%); border-radius: 10% 10% 0 0; animation: he-pillar-r 20s ease-in-out infinite; }
.scn-helicanus-entrance .throne { position:absolute; bottom:32%; left:38%; width:60px; height:50px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: he-throne 8s ease-in-out infinite; }
.scn-helicanus-entrance .figure { position:absolute; bottom:28%; left:44%; width:18px; height:36px; background: linear-gradient(180deg, #c8a878 0%, #a08860 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: he-figure 6s ease-in-out infinite; }
.scn-helicanus-entrance .rays { position:absolute; inset:0; background: radial-gradient(circle at 50% 10%, rgba(255,255,200,0.3) 0%, transparent 40%); animation: he-rays 5s ease-in-out infinite; }
@keyframes he-pillar-l { 0% { transform: rotate(0); } 50% { transform: rotate(0.3deg); } 100% { transform: rotate(0); } }
@keyframes he-pillar-r { 0% { transform: rotate(0); } 50% { transform: rotate(-0.3deg); } 100% { transform: rotate(0); } }
@keyframes he-throne { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes he-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes he-rays { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.7; } }

.scn-helicanus-reproof { background: linear-gradient(180deg, #e8d0a0 0%, #d0b080 50%, #b09060 100%), radial-gradient(ellipse at 50% 30%, #ffeedd 0%, transparent 50%); }
.scn-helicanus-reproof .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d0b880 0%, #c0a870 100%); }
.scn-helicanus-reproof .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); }
.scn-helicanus-reproof .shadow { position:absolute; bottom:25%; left:30%; width:40px; height:10px; background: rgba(0,0,0,.2); border-radius: 50%; filter: blur(3px); animation: hr-shadow 6s ease-in-out infinite; }
.scn-helicanus-reproof .king { position:absolute; bottom:30%; left:35%; width:22px; height:44px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hr-king 5s ease-in-out infinite; }
.scn-helicanus-reproof .helicanus { position:absolute; bottom:20%; left:55%; width:18px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hr-helicanus 8s ease-in-out infinite; }
.scn-helicanus-reproof .sceptre { position:absolute; bottom:45%; left:38%; width:3px; height:18px; background: #8a7a6a; border-radius: 10%; transform: rotate(-10deg); animation: hr-sceptre 4s ease-in-out infinite; }
@keyframes hr-shadow { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(3px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }
@keyframes hr-king { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes hr-helicanus { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes hr-sceptre { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(-10deg); } }

.scn-king-helianus-test { background: linear-gradient(180deg, #e0c080 0%, #c0a060 50%, #a08040 100%), radial-gradient(ellipse at 40% 20%, #ffddbb 0%, transparent 50%); }
.scn-king-helianus-test .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c0a060 0%, #b09050 100%); }
.scn-king-helianus-test .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a08040 0%, #806030 100%); }
.scn-king-helianus-test .king { position:absolute; bottom:35%; left:40%; width:24px; height:48px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kt-king 6s ease-in-out infinite; }
.scn-king-helianus-test .helicanus { position:absolute; bottom:25%; left:55%; width:18px; height:32px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: kt-helicanus 7s ease-in-out infinite; }
.scn-king-helianus-test .axe { position:absolute; bottom:25%; left:46%; width:4px; height:20px; background: #8a7a6a; border-radius: 10%; transform-origin: bottom; animation: kt-axe 5s ease-in-out infinite; }
.scn-king-helianus-test .axe::after { content:''; position:absolute; top:-8px; left:-5px; width:14px; height:8px; background: linear-gradient(180deg, #a09080 0%, #808070 100%); border-radius: 20% 20% 0 0; }
.scn-king-helianus-test .shadow { position:absolute; bottom:20%; left:50%; width:50px; height:6px; background: rgba(0,0,0,.2); border-radius: 50%; filter: blur(3px); animation: kt-shadow 8s ease-in-out infinite; }
@keyframes kt-king { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes kt-helicanus { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes kt-axe { 0% { transform: rotate(-20deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-20deg); } }
@keyframes kt-shadow { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.1); } 100% { transform: translateX(0) scale(1); } }

/* Scene: boult-lodge */
.scn-boult-lodge {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1f18 50%, #3a2820 100%),
    radial-gradient(ellipse at 30% 60%, #4a3020 0%, transparent 60%);
}
.scn-boult-lodge .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1210 0%, #2a1f18 100%); }
.scn-boult-lodge .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1f18 0%, #1a1210 100%); }
.scn-boult-lodge .sign {
  position:absolute; top:12%; left:45%; width:40px; height:30px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 4px;
  transform-origin: top center;
  animation: bl-sign 6s ease-in-out infinite;
}
.scn-boult-lodge .window {
  position:absolute; top:18%; right:20%; width:40px; height:50px;
  background: radial-gradient(circle, #d4a050 0%, #7a5020 70%);
  border-radius: 4px;
  box-shadow: 0 0 18px 8px rgba(212,160,80,0.3);
  animation: bl-window 4s ease-in-out infinite alternate;
}
.scn-boult-lodge .candle {
  position:absolute; bottom:24%; left:35%; width:6px; height:20px;
  background: linear-gradient(180deg, #f0e8d0, #c0a060);
  border-radius: 2px;
  box-shadow: 0 0 10px 4px #f0d080;
  animation: bl-candle 2s ease-in-out infinite alternate;
}
.scn-boult-lodge .figure-boult {
  position:absolute; bottom:30%; left:25%; width:22px; height:50px;
  background: linear-gradient(180deg, #2a1f18 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bl-figure1 5s ease-in-out infinite;
}
.scn-boult-lodge .figure-marina {
  position:absolute; bottom:30%; left:55%; width:18px; height:46px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bl-figure2 5s ease-in-out infinite 0.5s;
}
@keyframes bl-sign {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes bl-window {
  0% { opacity: 0.7; box-shadow: 0 0 12px 4px rgba(212,160,80,0.2); }
  50% { opacity: 1; box-shadow: 0 0 28px 12px rgba(212,160,80,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 16px 6px rgba(212,160,80,0.3); }
}
@keyframes bl-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.08); opacity: 1; box-shadow: 0 0 14px 6px #f0d080; }
  100% { transform: scaleY(1); opacity: 0.95; box-shadow: 0 0 10px 4px #f0d080; }
}
@keyframes bl-figure1 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(1px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes bl-figure2 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-1px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

/* Scene: marina-ignorant */
.scn-marina-ignorant {
  background:
    linear-gradient(180deg, #1e1412 0%, #2a1e18 40%, #3a2820 100%),
    radial-gradient(ellipse at 50% 30%, #3a2820 0%, transparent 60%);
}
.scn-marina-ignorant .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1e1412 0%, #2a1e18 100%); }
.scn-marina-ignorant .bg-curtain {
  position:absolute; top:0; left:10%; width:30%; height:80%;
  background: linear-gradient(180deg, #3a2020 0%, #1e0e0e 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: mi-curtain 12s ease-in-out infinite alternate;
}
.scn-marina-ignorant .figure-marina {
  position:absolute; bottom:20%; left:40%; width:16px; height:44px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mi-figure1 4s ease-in-out infinite;
}
.scn-marina-ignorant .figure-bawd {
  position:absolute; bottom:20%; left:55%; width:26px; height:60px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mi-figure2 5s ease-in-out infinite 0.5s;
}
.scn-marina-ignorant .candle {
  position:absolute; bottom:24%; left:48%; width:6px; height:18px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a060 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 6px #e0c080;
  animation: mi-candle 3s ease-in-out infinite alternate;
}
.scn-marina-ignorant .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
}
.scn-marina-ignorant .table {
  position:absolute; bottom:20%; left:35%; width:30%; height:6%;
  background: linear-gradient(180deg, #3a2820 0%, #1e1412 100%);
  border-radius: 2px;
}
@keyframes mi-curtain {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes mi-figure1 {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes mi-figure2 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mi-candle {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.06); box-shadow: 0 0 18px 8px #e0c080; }
  100% { opacity: 0.9; transform: scaleY(1); box-shadow: 0 0 12px 6px #e0c080; }
}

/* Scene: boult-morsel */
.scn-boult-morsel {
  background:
    linear-gradient(180deg, #1a0e08 0%, #2a1a10 50%, #3a2820 100%),
    radial-gradient(ellipse at 40% 70%, #4a3020 0%, transparent 60%);
}
.scn-boult-morsel .bg-hearth {
  position:absolute; bottom:20%; left:20%; width:60%; height:50%;
  background: linear-gradient(180deg, #3a2018 0%, #1a0e08 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 0 20px 4px rgba(0,0,0,0.6);
}
.scn-boult-morsel .spit {
  position:absolute; bottom:42%; left:30%; width:40%; height:2px;
  background: #2a1a10;
  border-radius: 1px;
}
.scn-boult-morsel .meat {
  position:absolute; bottom:40%; left:48%; width:14px; height:14px;
  background: radial-gradient(circle, #6a4030 0%, #3a2018 100%);
  border-radius: 50%;
  animation: bm-meat 4s linear infinite;
}
.scn-boult-morsel .flame-glow {
  position:absolute; bottom:35%; left:45%; width:30px; height:30px;
  background: radial-gradient(circle, #f0a050 0%, #d07020 50%, transparent 70%);
  border-radius: 50%;
  opacity: 0.6;
  animation: bm-flame 1s ease-in-out infinite alternate;
}
.scn-boult-morsel .figure-boult {
  position:absolute; bottom:20%; left:20%; width:24px; height:52px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bm-figure 5s ease-in-out infinite;
}
.scn-boult-morsel .knife {
  position:absolute; bottom:38%; left:22%; width:2px; height:20px;
  background: linear-gradient(180deg, #d0c0a0 0%, #8a7a6a 100%);
  transform: rotate(15deg);
  transform-origin: bottom left;
  animation: bm-knife 3s ease-in-out infinite alternate;
}
@keyframes bm-meat {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(4px) translateY(-2px); }
  50% { transform: translateX(6px) translateY(0); }
  75% { transform: translateX(4px) translateY(2px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes bm-flame {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes bm-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg) translateY(-1px); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bm-knife {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(25deg); }
  100% { transform: rotate(10deg); }
}

/* Scene: bawd-spend */
.scn-bawd-spend {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a2018 50%, #3a2a22 100%),
    radial-gradient(ellipse at 70% 20%, #3a2a22 0%, transparent 50%);
}
.scn-bawd-spend .bg-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 100%);
}
.scn-bawd-spend .door {
  position:absolute; bottom:0; left:30%; width:20%; height:80%;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a12 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
  animation: bs-door 8s ease-in-out infinite alternate;
}
.scn-bawd-spend .window {
  position:absolute; top:20%; right:15%; width:40px; height:50px;
  background: radial-gradient(circle, #4a4a6a 0%, #1a1a3a 100%);
  border-radius: 4px;
  box-shadow: 0 0 12px 4px rgba(50,50,80,0.3);
  animation: bs-window 5s ease-in-out infinite alternate;
}
.scn-bawd-spend .figure-bawd {
  position:absolute; bottom:20%; right:25%; width:22px; height:56px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a100e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bs-figure1 6s ease-in-out infinite;
}
.scn-bawd-spend .figure-boult {
  position:absolute; bottom:20%; left:25%; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bs-figure2 5s ease-in-out infinite 1s;
}
.scn-bawd-spend .candle {
  position:absolute; bottom:26%; right:35%; width:6px; height:18px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a060 100%);
  border-radius: 2px;
  box-shadow: 0 0 14px 6px #e0c080;
  animation: bs-candle 2.5s ease-in-out infinite alternate;
}
.scn-bawd-spend .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
}
@keyframes bs-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
  100% { transform: scaleX(1); }
}
@keyframes bs-window {
  0% { opacity: 0.8; box-shadow: 0 0 8px 2px rgba(50,50,80,0.2); }
  50% { opacity: 1; box-shadow: 0 0 20px 8px rgba(50,50,80,0.5); }
  100% { opacity: 0.9; box-shadow: 0 0 12px 4px rgba(50,50,80,0.3); }
}
@keyframes bs-figure1 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bs-figure2 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bs-candle {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.07); box-shadow: 0 0 18px 8px #e0c080; }
  100% { opacity: 0.9; transform: scaleY(1); box-shadow: 0 0 14px 6px #e0c080; }
}

.scn-dumb-show-letters { background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%), radial-gradient(ellipse at 50% 50%, #7a5a3a 0%, transparent 60%); }
.scn-dumb-show-letters .wall-back { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: dsl-wall 20s ease-in-out infinite alternate; }
.scn-dumb-show-letters .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%); border-radius: 30% 30% 0 0 / 10% 10% 0 0; }
.scn-dumb-show-letters .letter { position:absolute; bottom:45%; left:45%; width:40px; height:30px; background: radial-gradient(circle, #f0d080 0%, #d0a060 100%); border: 2px solid #a07030; border-radius: 4px; box-shadow: 0 0 20px 5px rgba(240,208,128,.5); animation: dsl-glow 3s ease-in-out infinite; }
.scn-dumb-show-letters .figure-kneeling { position:absolute; bottom:20%; left:30%; width:20px; height:40px; background: #1a1a1a; border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dsl-kneel 4s ease-in-out infinite; }
.scn-dumb-show-letters .figure-pericles { position:absolute; bottom:22%; left:55%; width:22px; height:50px; background: #2a2a2a; border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%; animation: dsl-stand 5s ease-in-out infinite; }
.scn-dumb-show-letters .figure-queen { position:absolute; bottom:22%; left:48%; width:24px; height:48px; background: #3a2a2a; border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: dsl-queen 6s ease-in-out infinite; }
.scn-dumb-show-letters .candle { position:absolute; bottom:42%; left:15%; width:4px; height:12px; background: linear-gradient(180deg, #ffe0a0 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 12px 3px #ffd080; animation: dsl-candle 2s ease-in-out infinite alternate; }
@keyframes dsl-wall { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes dsl-glow { 0% { opacity:.7; box-shadow:0 0 15px 3px #f0d080; } 50% { opacity:1; box-shadow:0 0 25px 8px #f0d080; } 100% { opacity:.8; box-shadow:0 0 18px 4px #d0a060; } }
@keyframes dsl-kneel { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes dsl-stand { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes dsl-queen { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes dsl-candle { 0% { opacity:.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.9; transform: scaleY(1); } }

.scn-gower-search-tyre { background: linear-gradient(135deg, #0a1a2a 0%, #1a2a3a 50%, #0a1a1a 100%), radial-gradient(ellipse at 50% 50%, #2a3a4a 0%, transparent 70%); }
.scn-gower-search-tyre .map-back { position:absolute; inset:10%; background: linear-gradient(135deg, #1a2a1a 0%, #2a3a2a 50%, #1a2a1a 100%); border-radius: 0% 20% 0% 20% / 0% 10% 0% 10%; box-shadow: inset 0 0 40px rgba(0,0,0,.6); animation: gst-map 25s linear infinite; }
.scn-gower-search-tyre .compass-rose { position:absolute; top:20%; left:20%; width:40px; height:40px; background: radial-gradient(circle, #d0b080 0%, #906040 50%, #604020 100%); clip-path: polygon(50% 0%, 70% 30%, 100% 50%, 70% 70%, 50% 100%, 30% 70%, 0% 50%, 30% 30%); border-radius:50%; animation: gst-compass 10s ease-in-out infinite alternate; }
.scn-gower-search-tyre .ship-token { position:absolute; top:45%; left:60%; width:20px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: gst-ship 8s ease-in-out infinite; }
.scn-gower-search-tyre .coign { position:absolute; width:10px; height:10px; background: #c0a060; border-radius:50%; box-shadow: 0 0 8px #c0a060; animation: gst-coign 4s ease-in-out infinite alternate; }
.scn-gower-search-tyre .coign-n { top:12%; left:48%; }
.scn-gower-search-tyre .coign-s { bottom:12%; left:48%; }
.scn-gower-search-tyre .coign-e { top:48%; right:12%; }
.scn-gower-search-tyre .coign-w { top:48%; left:12%; }
.scn-gower-search-tyre .search-lines { position:absolute; top:10%; left:10%; right:10%; bottom:10%; background: linear-gradient(45deg, transparent 30%, rgba(192,160,96,.2) 30%, transparent 35%, transparent 65%, rgba(192,160,96,.2) 65%, transparent 70%); background-size: 40px 40px; animation: gst-lines 20s linear infinite; }
@keyframes gst-map { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes gst-compass { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes gst-ship { 0% { transform: translate(0,0) rotate(-5deg); } 50% { transform: translate(4px,-2px) rotate(5deg); } 100% { transform: translate(0,0) rotate(-5deg); } }
@keyframes gst-coign { 0% { opacity:.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:.7; transform: scale(1); } }
@keyframes gst-lines { 0% { background-position: 0 0; } 50% { background-position: 20px 20px; } 100% { background-position: 40px 40px; } }

.scn-pericles-departure { background: linear-gradient(180deg, #0a1220 0%, #1a2a3a 50%, #2a3a4a 100%), radial-gradient(ellipse at 70% 20%, #3a5a7a 0%, transparent 60%); }
.scn-pericles-departure .night-sky { position:absolute; inset:0 0 40% 0; background: transparent; }
.scn-pericles-departure .city-wall { position:absolute; bottom:40%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 50% 80%, 0% 100%); animation: pd-wall 1s ease-in-out infinite; }
.scn-pericles-departure .ship { position:absolute; bottom:10%; left:20%; width:60px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); clip-path: polygon(0% 30%, 20% 0%, 80% 0%, 100% 30%, 80% 100%, 20% 100%); animation: pd-ship 5s ease-in-out infinite alternate; }
.scn-pericles-departure .pericles-figure { position:absolute; bottom:8%; left:35%; width:14px; height:40px; background: #1a1a2a; border-radius:45% 45% 35% 35% / 60% 60% 35% 35%; animation: pd-pericles 4s ease-in-out infinite; }
.scn-pericles-departure .queen-figure { position:absolute; bottom:42%; left:55%; width:16px; height:38px; background: #2a2a3a; border-radius:50% 50% 40% 40% / 65% 65% 30% 30%; animation: pd-queen 6s ease-in-out infinite; }
.scn-pericles-departure .crowd-left { position:absolute; bottom:38%; left:5%; width:30px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); clip-path: polygon(0% 100%, 5% 0%, 15% 30%, 25% 0%, 35% 30%, 45% 0%, 55% 40%, 100% 100%); animation: pd-crowd 7s ease-in-out infinite alternate; }
.scn-pericles-departure .crowd-right { position:absolute; bottom:38%; right:5%; width:30px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); clip-path: polygon(0% 100%, 5% 40%, 45% 0%, 55% 30%, 65% 0%, 75% 30%, 85% 0%, 100% 100%); animation: pd-crowd 7s ease-in-out infinite alternate 0.5s; }
.scn-pericles-departure .torch-left { position:absolute; bottom:48%; left:12%; width:4px; height:16px; background: linear-gradient(180deg, #ffd080 0%, #a06020 100%); border-radius:50%; box-shadow: 0 0 20px 6px #ffb040; animation: pd-torch 1s ease-in-out infinite alternate; }
.scn-pericles-departure .torch-right { position:absolute; bottom:48%; right:12%; width:4px; height:16px; background: linear-gradient(180deg, #ffd080 0%, #a06020 100%); border-radius:50%; box-shadow: 0 0 20px 6px #ffb040; animation: pd-torch 1.2s ease-in-out infinite alternate; }
@keyframes pd-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes pd-ship { 0% { transform: translate(0,0) rotate(-3deg); } 50% { transform: translate(2px,-1px) rotate(0deg); } 100% { transform: translate(-2px,0) rotate(-3deg); } }
@keyframes pd-pericles { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pd-queen { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes pd-crowd { 0% { opacity:.6; transform: translateY(0); } 50% { opacity:1; transform: translateY(-2px); } 100% { opacity:.7; transform: translateY(0); } }
@keyframes pd-torch { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.15); } 100% { opacity:.8; transform: scaleY(1); } }

.scn-storm-travail { background: linear-gradient(180deg, #0a0a0a 0%, #1a2a3a 30%, #0a1a2a 60%, #000 100%), radial-gradient(ellipse at 80% 80%, #2a4a5a 0%, transparent 70%); }
.scn-storm-travail .storm-sky { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(255,255,255,.03) 2px, rgba(255,255,255,.03) 4px); animation: st-rain 1s linear infinite; }
.scn-storm-travail .ship-storm { position:absolute; bottom:30%; left:40%; width:70px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); clip-path: polygon(0% 40%, 20% 0%, 80% 0%, 100% 40%, 80% 100%, 20% 100%); animation: st-ship 0.8s ease-in-out infinite alternate; }
.scn-storm-travail .wave-front { position:absolute; bottom:15%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a3a4a 0%, #0a1a2a 100%); border-radius: 60% 40% 0 0 / 80% 50% 0 0; animation: st-wave1 4s ease-in-out infinite alternate; }
.scn-storm-travail .wave-back { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; animation: st-wave2 5s ease-in-out infinite alternate; }
.scn-storm-travail .lady-figure { position:absolute; bottom:30%; left:45%; width:18px; height:45px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: st-lady 1.5s ease-in-out infinite; }
.scn-storm-travail .lightning { position:absolute; top:5%; left:50%; width:4px; height:80px; background: linear-gradient(180deg, #fff 0%, #ffffaa 50%, transparent 100%); box-shadow: 0 0 30px 10px #fff; animation: st-lightning 3s ease-in-out infinite; }
@keyframes st-rain { 0% { background-position: 0 0; } 50% { background-position: 0 5px; } 100% { background-position: 0 10px; } }
@keyframes st-ship { 0% { transform: translate(0,0) rotate(-10deg); } 50% { transform: translate(3px,5px) rotate(0deg); } 100% { transform: translate(-3px,0) rotate(-10deg); } }
@keyframes st-wave1 { 0% { transform: translateY(0) skewX(0deg); } 50% { transform: translateY(-5px) skewX(5deg); } 100% { transform: translateY(0) skewX(-5deg); } }
@keyframes st-wave2 { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-8px) scaleY(.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes st-lady { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-5deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes st-lightning { 0% { opacity:0; } 50% { opacity:1; } 55% { opacity:0; } 70% { opacity:1; } 75% { opacity:0; } 100% { opacity:0; } }

/* pericles-response-thanks */
.scn-pericles-response-thanks {
  background: linear-gradient(180deg, #f5e6d0 0%, #c8b89a 40%, #8b7a6a 100%),
              radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 70%);
}
.scn-pericles-response-thanks .pillar-left {
  position: absolute; left: 10%; top: 0; bottom: 30%; width: 4%;
  background: linear-gradient(90deg, #b8a88a 0%, #d8c8b0 30%, #b8a88a 100%);
  border-radius: 2px; box-shadow: 10px 0 20px rgba(0,0,0,0.2);
  animation: prt-pillar 8s ease-in-out infinite alternate;
}
.scn-pericles-response-thanks .pillar-right {
  position: absolute; right: 10%; top: 0; bottom: 30%; width: 4%;
  background: linear-gradient(90deg, #b8a88a 0%, #d8c8b0 30%, #b8a88a 100%);
  border-radius: 2px; box-shadow: -10px 0 20px rgba(0,0,0,0.2);
  animation: prt-pillar 8s ease-in-out infinite alternate;
  animation-delay: -4s;
}
.scn-pericles-response-thanks .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
}
.scn-pericles-response-thanks .figure-left {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: prt-figure 4s ease-in-out infinite alternate;
}
.scn-pericles-response-thanks .figure-right {
  position: absolute; bottom: 30%; right: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: prt-figure 4s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-pericles-response-thanks .light-shaft {
  position: absolute; top: 0; bottom: 30%; left: 45%; right: 45%;
  background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 100%);
  filter: blur(5px);
  animation: prt-shaft 5s ease-in-out infinite alternate;
}
@keyframes prt-pillar {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes prt-figure {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(0) translateY(-3px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes prt-shaft {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.05); }
  100% { opacity: 0.5; transform: scaleX(0.95); }
}

/* pericles-address-sin */
.scn-pericles-address-sin {
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 50%, #1a1a2e 100%),
              radial-gradient(circle at 40% 60%, #4a4a6e 0%, transparent 70%);
}
.scn-pericles-address-sin .mirror-frame {
  position: absolute; left: 40%; right: 40%; top: 20%; bottom: 50%;
  background: #6a5a3a; border-radius: 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px rgba(0,0,0,0.5);
}
.scn-pericles-address-sin .mirror-glass {
  position: absolute; left: 42%; right: 42%; top: 22%; bottom: 52%;
  background: linear-gradient(180deg, rgba(200,220,255,0.3) 0%, rgba(150,170,200,0.1) 100%);
  border-radius: 50% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: pas-mirror 6s ease-in-out infinite alternate;
}
.scn-pericles-address-sin .figure {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pas-figure 4s ease-in-out infinite alternate;
}
.scn-pericles-address-sin .candle {
  position: absolute; bottom: 30%; right: 25%; width: 8px; height: 30px;
  background: #8a7a4a; border-radius: 2px 2px 30% 30%;
  box-shadow: 0 0 10px #ffa060;
}
.scn-pericles-address-sin .flame {
  position: absolute; bottom: calc(30% + 30px); right: 25%; width: 6px; height: 10px;
  background: radial-gradient(circle at 50% 40%, #ffd680, #ff8030 60%, transparent 80%);
  border-radius: 50% 50% 10% 10% / 70% 70% 30% 30%;
  animation: pas-flame 0.8s ease-in-out infinite alternate;
}
.scn-pericles-address-sin .mote1 {
  position: absolute; top: 30%; left: 30%; width: 3px; height: 3px;
  background: rgba(255,255,255,0.5); border-radius: 50%; filter: blur(1px);
  animation: pas-mote 10s linear infinite;
}
.scn-pericles-address-sin .mote2 {
  position: absolute; top: 40%; left: 60%; width: 3px; height: 3px;
  background: rgba(255,255,255,0.4); border-radius: 50%; filter: blur(1px);
  animation: pas-mote 15s linear infinite;
  animation-delay: -5s;
}
@keyframes pas-mirror {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.02); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes pas-figure {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes pas-flame {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.2) translateY(-2px); }
  100% { transform: scaleY(0.9) translateY(0); }
}
@keyframes pas-mote {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  20% { opacity: 0.8; }
  80% { opacity: 0.6; }
  100% { transform: translateY(-100px) translateX(30px); opacity: 0; }
}

/* antioch-defiance-and-death-sentence */
.scn-antioch-defiance-and-death-sentence {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 50%, #1a0a0a 100%),
              radial-gradient(circle at 50% 20%, #8a6a3a 0%, transparent 70%);
}
.scn-antioch-defiance-and-death-sentence .dais {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-antioch-defiance-and-death-sentence .throne {
  position: absolute; bottom: 35%; left: 40%; right: 40%; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 10px 30px rgba(0,0,0,0.8);
}
.scn-antioch-defiance-and-death-sentence .kneeling-figure {
  position: absolute; bottom: 38%; left: 45%; width: 20px; 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: ads-kneel 2s ease-in-out infinite alternate;
}
.scn-antioch-defiance-and-death-sentence .sword {
  position: absolute; bottom: 45%; left: 50%; width: 4px; height: 30px;
  background: #c0b0a0; box-shadow: 0 0 20px #ffa060;
  transform: rotate(-30deg); transform-origin: bottom center;
  animation: ads-sword 3s ease-in-out infinite alternate;
}
.scn-antioch-defiance-and-death-sentence .light-beam {
  position: absolute; top: 0; bottom: 60%; left: 48%; right: 48%;
  background: linear-gradient(180deg, rgba(255,200,100,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: ads-beam 4s ease-in-out infinite alternate;
}
.scn-antioch-defiance-and-death-sentence .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: rgba(0,0,0,0.5); filter: blur(20px);
  animation: ads-shadow 6s ease-in-out infinite alternate;
}
@keyframes ads-kneel {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes ads-sword {
  0% { transform: rotate(-30deg) translateX(0); box-shadow: 0 0 10px #ffa060; }
  50% { transform: rotate(-25deg) translateX(5px); box-shadow: 0 0 30px #ffa060; }
  100% { transform: rotate(-35deg) translateX(-5px); box-shadow: 0 0 15px #ffa060; }
}
@keyframes ads-beam {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.2); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes ads-shadow {
  0% { opacity: 0.4; transform: scaleY(0.8); }
  50% { opacity: 0.7; transform: scaleY(1); }
  100% { opacity: 0.5; transform: scaleY(0.9); }
}

/* antioch-riddle-wishes */
.scn-antioch-riddle-wishes {
  background: linear-gradient(180deg, #f0d8a0 0%, #d8b878 50%, #c09850 100%),
              radial-gradient(ellipse at 50% 30%, #ffe8c0 0%, transparent 70%);
}
.scn-antioch-riddle-wishes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b89860 0%, #8a6a3a 100%);
  animation: arw-floor 8s ease-in-out infinite alternate;
}
.scn-antioch-riddle-wishes .lectern {
  position: absolute; bottom: 20%; left: 40%; right: 40%; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 10px 20px rgba(0,0,0,0.3);
}
.scn-antioch-riddle-wishes .scroll {
  position: absolute; bottom: 35%; left: 45%; width: 40px; height: 20px;
  background: #f5e6c0; border-radius: 10px; box-shadow: 0 2px 5px rgba(0,0,0,0.2);
  animation: arw-scroll 10s ease-in-out infinite alternate;
}
.scn-antioch-riddle-wishes .figure {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: arw-figure 5s ease-in-out infinite alternate;
}
.scn-antioch-riddle-wishes .glow {
  position: absolute; bottom: 25%; left: 45%; right: 45%; height: 60%;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  filter: blur(15px);
  animation: arw-glow 4s ease-in-out infinite alternate;
}
.scn-antioch-riddle-wishes .dust {
  position: absolute; top: 30%; left: 30%; width: 20px; height: 20px;
  background: transparent;
  box-shadow: 10px 10px 0 2px rgba(255,200,100,0.3), 20px 30px 0 1px rgba(255,200,100,0.2);
  border-radius: 50%;
  animation: arw-dust 12s linear infinite;
}
@keyframes arw-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes arw-scroll {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes arw-figure {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-48%) scale(1.02); }
  100% { transform: translateX(-52%) scale(0.98); }
}
@keyframes arw-glow {
  0% { opacity: 0.5; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes arw-dust {
  0% { transform: translateY(0) rotate(0deg); opacity: 0; }
  20% { opacity: 0.5; }
  80% { opacity: 0.3; }
  100% { transform: translateY(-80px) rotate(360deg); opacity: 0; }
}

.scn-cp {
  background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%),
              radial-gradient(ellipse at 50% 100%, #5a3a2a 0%, transparent 70%);
}
.scn-cp .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%); animation: cp-bg 12s ease-in-out infinite alternate; }
.scn-cp .window-open { position:absolute; top:5%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #f0d9b5 0%, #e8c8a0 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 60px rgba(255,220,180,.4); animation: cp-window 8s ease-in-out infinite alternate; }
.scn-cp .window-sill { position:absolute; bottom:55%; left:18%; right:18%; height:4%; background: #5a4a3a; border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-cp .figure { position:absolute; bottom:20%; left:50%; width:24px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-figure 6s ease-in-out infinite; }
.scn-cp .desk { position:absolute; bottom:10%; left:35%; right:35%; height:8%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-cp .book { position:absolute; bottom:14%; left:42%; width:30px; height:10px; background: linear-gradient(135deg, #c8a878 0%, #a88858 100%); border-radius: 2px; transform: rotate(-5deg); animation: cp-book 4s ease-in-out infinite alternate; }
.scn-cp .cup { position:absolute; bottom:12%; left:56%; width:12px; height:16px; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 30% 30% 10% 10%; animation: cp-cup 3s ease-in-out infinite; }

@keyframes cp-bg { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes cp-window { 0% { opacity: .85; box-shadow: inset 0 0 40px rgba(255,220,180,.3) } 50% { opacity: 1; box-shadow: inset 0 0 80px rgba(255,220,180,.5) } 100% { opacity: .9; box-shadow: inset 0 0 50px rgba(255,220,180,.35) } }
@keyframes cp-figure { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes cp-book { 0% { transform: rotate(-7deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-3deg) } }
@keyframes cp-cup { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }

.scn-cr {
  background: linear-gradient(180deg, #f5d8a0 0%, #e8b870 40%, #c89850 100%),
              radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 60%);
}
.scn-cr .sky-warm { position:absolute; inset:0; background: linear-gradient(180deg, #f5d8a0 0%, #ffddb0 50%, transparent 100%); animation: cr-sky 10s ease-in-out infinite alternate; }
.scn-cr .sun-glow { position:absolute; top:5%; left:50%; width:40px; height:40px; transform: translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #ffb050 60%, transparent 80%); animation: cr-sun 20s linear infinite; }
.scn-cr .arch { position:absolute; bottom:20%; left:20%; right:20%; height:50%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: cr-arch 15s ease-in-out infinite alternate; }
.scn-cr .arch-opening { position:absolute; bottom:22%; left:30%; right:30%; height:45%; background: #2a1a10; border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-cr .cerimon-body { position:absolute; bottom:22%; left:45%; width:20px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: cr-body 4s ease-in-out infinite; }
.scn-cr .cerimon-arm-l { position:absolute; bottom:40%; left:40%; width:8px; height:30px; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 20% 20% 80% 80% / 50% 50% 50% 50%; transform-origin: bottom right; animation: cr-arm-l 3s ease-in-out infinite alternate; }
.scn-cr .cerimon-arm-r { position:absolute; bottom:40%; left:52%; width:8px; height:30px; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 20% 20% 80% 80% / 50% 50% 50% 50%; transform-origin: bottom left; animation: cr-arm-r 3s ease-in-out infinite alternate; }
.scn-cr .citizen-figure { position:absolute; bottom:20%; left:60%; width:14px; height:30px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: cr-citizen 4s ease-in-out infinite; }

@keyframes cr-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes cr-sun { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes cr-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes cr-body { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes cr-arm-l { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }
@keyframes cr-arm-r { 0% { transform: rotate(0deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(0deg) } }
@keyframes cr-citizen { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } 100% { transform: translateX(-50%) translateY(0) } }

.scn-ic {
  background: linear-gradient(180deg, #c0d8e0 0%, #a0c0d0 30%, #8090a0 100%),
              radial-gradient(ellipse at 50% 0%, #e0f0ff 0%, transparent 50%);
}
.scn-ic .beach-sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #d0e0f0 0%, #b0d0e0 100%); animation: ic-sky 12s ease-in-out infinite alternate; }
.scn-ic .beach-sea { position:absolute; top:50%; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a9aae 0%, #5a7a8e 100%); animation: ic-sea 20s linear infinite; }
.scn-ic .beach-sand { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #d0c098 0%, #b8a888 100%); }
.scn-ic .chest-body { position:absolute; bottom:25%; left:40%; width:40px; height:30px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: ic-chest 6s ease-in-out infinite; }
.scn-ic .chest-lid { position:absolute; bottom:55%; left:38%; width:44px; height:10px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 2px 2px 0 0; transform-origin: bottom center; animation: ic-lid 2s ease-out forwards; }
.scn-ic .chest-figure { position:absolute; bottom:20%; left:30%; width:20px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ic-figure 4s ease-in-out infinite; }
.scn-ic .wave { position:absolute; bottom:40%; left:0; right:0; height:10px; background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: ic-wave 8s linear infinite; }

@keyframes ic-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes ic-sea { 0% { background-position: 0 0 } 100% { background-position: -100px 0 } }
@keyframes ic-chest { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ic-lid { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(80deg) } 100% { transform: translateX(-50%) rotate(90deg) } }
@keyframes ic-figure { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(-5deg) translateX(2px) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-50%) rotate(5deg) translateX(-2px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ic-wave { 0% { transform: translateX(-20px) scaleY(1) } 50% { transform: translateX(20px) scaleY(0.8) } 100% { transform: translateX(-20px) scaleY(1) } }

.scn-cq {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 30%, #4a4a6a 0%, transparent 70%);
}
.scn-cq .chamber-dark { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); animation: cq-dark 10s ease-in-out infinite alternate; }
.scn-cq .chest-open { position:absolute; bottom:20%; left:40%; width:50px; height:30px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 6% 6% 3% 3%; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); transform-origin: bottom center; animation: cq-chest 1s ease-in-out infinite alternate; }
.scn-cq .queen-body { position:absolute; bottom:22%; left:45%; width:20px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cq-body 2s ease-in-out infinite alternate; }
.scn-cq .queen-cloth { position:absolute; bottom:25%; left:43%; width:28px; height:30px; transform: translateX(-50%); background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 20% 20% 10% 10%; filter: blur(1px); animation: cq-cloth 3s ease-in-out infinite alternate; }
.scn-cq .cerimon-hand { position:absolute; bottom:30%; left:42%; width:10px; height:20px; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: top center; animation: cq-hand 1.5s ease-in-out infinite alternate; }
.scn-cq .scroll { position:absolute; bottom:22%; left:50%; width:30px; height:6px; transform: translateX(-50%); background: #c0a878; border-radius: 2px; animation: cq-scroll 2s ease-in-out infinite alternate; }
.scn-cq .spice-glint { position:absolute; bottom:23%; left:47%; width:4px; height:4px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 8px #ffd080; animation: cq-sparkle 0.5s ease-in-out infinite alternate; }

@keyframes cq-dark { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes cq-chest { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes cq-body { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes cq-cloth { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes cq-hand { 0% { transform: translateY(0) } 50% { transform: translateY(8px) } 100% { transform: translateY(0) } }
@keyframes cq-scroll { 0% { width: 30px } 50% { width: 40px } 100% { width: 30px } }
@keyframes cq-sparkle { 0% { opacity: .2; transform: scale(1) } 100% { opacity: 1; transform: scale(1.5) } }

.scn-bawd-give-over { background: linear-gradient(180deg, #1a1410 0%, #2b1f16 50%, #1a1410 100%), radial-gradient(ellipse at 50% 100%, #2b1f16 0%, transparent 70%); }
.scn-bawd-give-over .fire { position:absolute; bottom:22%; left:30%; right:30%; height:25%; background: radial-gradient(ellipse at 50% 100%, #ff7b24 0%, #cc4400 40%, transparent 70%); animation: bgo-fire 4s ease-in-out infinite alternate; }
.scn-bawd-give-over .mantle { position:absolute; bottom:42%; left:20%; right:20%; height:4%; background: linear-gradient(180deg, #3a2518 0%, #1f140e 100%); border-radius: 4px; box-shadow: inset 0 2px 4px rgba(0,0,0,.6); }
.scn-bawd-give-over .armchair { position:absolute; bottom:22%; left:25%; width:25%; height:25%; background: linear-gradient(135deg, #4a3020 0%, #2a1a10 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-bawd-give-over .figure { position:absolute; bottom:24%; left:32%; width:14%; height:32%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bgo-breathe 6s ease-in-out infinite; }
.scn-bawd-give-over .table { position:absolute; bottom:14%; left:42%; width:18%; height:8%; background: linear-gradient(180deg, #3d281c 0%, #1f140e 100%); border-radius: 6px; box-shadow: 0 2px 6px rgba(0,0,0,.7); }
.scn-bawd-give-over .coins { position:absolute; bottom:18%; left:46%; width:4%; height:4%; background: radial-gradient(circle, #ffd080 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 8px 2px #ffb040; animation: bgo-shimmer 3s ease-in-out infinite; }
.scn-bawd-give-over .shadow-1 { position:absolute; bottom:0; left:0; right:40%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: bgo-shadow 8s ease-in-out infinite; }
.scn-bawd-give-over .shadow-2 { position:absolute; bottom:0; left:40%; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); animation: bgo-shadow 8s ease-in-out infinite reverse; }
@keyframes bgo-fire { 0% { transform: scaleY(0.9) scaleX(1); opacity: 0.8; } 50% { transform: scaleY(1.15) scaleX(1.05); opacity: 1; } 100% { transform: scaleY(0.95) scaleX(0.98); opacity: 0.85; } }
@keyframes bgo-breathe { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bgo-shimmer { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes bgo-shadow { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

.scn-bawd-credit { background: linear-gradient(135deg, #0f0d0e 0%, #1c1412 50%, #2b1a14 100%), radial-gradient(ellipse at 30% 50%, #3a1c14 0%, transparent 60%); }
.scn-bawd-credit .table { position:absolute; bottom:15%; left:15%; right:15%; height:10%; background: linear-gradient(180deg, #2b1a14 0%, #140a08 100%); border-radius: 8px; box-shadow: 0 -8px 20px rgba(0,0,0,.8); }
.scn-bawd-credit .chest { position:absolute; bottom:22%; left:10%; width:18%; height:16%; background: linear-gradient(135deg, #4a2a1a 0%, #1f0e08 100%); border-radius: 4px; box-shadow: inset 0 0 0 2px #5e3a24, 0 4px 8px rgba(0,0,0,.6); animation: bcr-pulse 4s ease-in-out infinite; }
.scn-bawd-credit .lantern { position:absolute; top:15%; left:45%; width:10%; height:15%; background: radial-gradient(circle at 50% 50%, #ff9a44 0%, #cc4400 50%, transparent 70%); animation: bcr-flicker 0.5s ease-in-out infinite alternate; }
.scn-bawd-credit .figure-left { position:absolute; bottom:18%; left:22%; width:15%; height:40%; background: linear-gradient(180deg, #1c1412 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bcr-shift 8s ease-in-out infinite; }
.scn-bawd-credit .figure-right { position:absolute; bottom:18%; right:22%; width:15%; height:40%; background: linear-gradient(180deg, #1c1412 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bcr-shift 8s ease-in-out infinite reverse; }
.scn-bawd-credit .shadow-harsh { position:absolute; bottom:20%; left:30%; right:30%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,.8) 0%, transparent 100%); animation: bcr-shadow-grow 8s ease-in-out infinite; }
.scn-bawd-credit .coin { position:absolute; bottom:25%; left:45%; width:4%; height:4%; background: radial-gradient(circle, #ffd080 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 6px 2px #ffb040; animation: bcr-pulse 4s ease-in-out infinite 2s; }
@keyframes bcr-flicker { 0% { transform: scale(1) translateY(0); opacity: 0.8; } 25% { transform: scale(1.05) translateY(-2px); opacity: 1; } 50% { transform: scale(0.95) translateY(1px); opacity: 0.7; } 75% { transform: scale(1.1) translateY(-1px); opacity: 1; } 100% { transform: scale(1) translateY(0); opacity: 0.9; } }
@keyframes bcr-shift { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bcr-shadow-grow { 0% { transform: scaleY(0.8); opacity: 0.7; } 50% { transform: scaleY(1.2); opacity: 1; } 100% { transform: scaleY(0.9); opacity: 0.8; } }
@keyframes bcr-pulse { 0% { box-shadow: 0 0 4px 1px #ffb040; } 50% { box-shadow: 0 0 12px 4px #ff9a44; } 100% { box-shadow: 0 0 4px 1px #ffb040; } }

.scn-pandar-others-offend { background: linear-gradient(180deg, #1a1612 0%, #2b221a 40%, #3d2c20 100%), radial-gradient(ellipse at 70% 60%, #4a3324 0%, transparent 70%); }
.scn-pandar-others-offend .archway { position:absolute; bottom:0; left:15%; right:15%; height:100%; background: linear-gradient(180deg, #2b1f16 0%, #1a1210 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-pandar-others-offend .door { position:absolute; bottom:5%; left:30%; right:35%; height:80%; background: linear-gradient(180deg, #1f140e 0%, #140a08 100%); border-radius: 4px; transform-origin: left center; animation: poo-door-open 12s ease-in-out infinite; box-shadow: -4px 0 8px rgba(0,0,0,.4); }
.scn-pandar-others-offend .boult { position:absolute; bottom:15%; left:50%; width:18%; height:42%; background: linear-gradient(180deg, #2a1a10 0%, #140a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: poo-enter 12s ease-in-out infinite; }
.scn-pandar-others-offend .marina { position:absolute; bottom:15%; left:55%; width:16%; height:40%; background: linear-gradient(180deg, #b87878 0%, #6a3a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: poo-enter 12s ease-in-out infinite 2s; }
.scn-pandar-others-offend .pandar { position:absolute; bottom:20%; left:15%; width:18%; height:40%; background: linear-gradient(180deg, #3a2518 0%, #1f140e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: poo-gesture 8s ease-in-out infinite; }
.scn-pandar-others-offend .torchlight { position:absolute; top:10%; left:25%; width:20%; height:25%; background: radial-gradient(ellipse at 50% 50%, rgba(255,150,50,0.15) 0%, transparent 70%); animation: poo-torchlight 6s ease-in-out infinite; }
.scn-pandar-others-offend .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); }
@keyframes poo-door-open { 0% { transform: rotateY(0deg); } 30% { transform: rotateY(-35deg); } 70% { transform: rotateY(-35deg); } 100% { transform: rotateY(0deg); } }
@keyframes poo-enter { 0% { transform: translateX(-20px) scale(0.95); opacity: 0; } 20% { transform: translateX(0) scale(1); opacity: 1; } 80% { transform: translateX(0) scale(1); opacity: 1; } 100% { transform: translateX(10px) scale(0.95); opacity: 0; } }
@keyframes poo-gesture { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes poo-torchlight { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.98); } }

.scn-boult-earnest { background: linear-gradient(180deg, #1a1412 0%, #2b1f18 40%, #3d2c20 100%), radial-gradient(ellipse at 50% 30%, #6a4a30 0%, transparent 70%); }
.scn-boult-earnest .table { position:absolute; bottom:10%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #3d281c 0%, #1f140e 100%); border-radius: 8px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-boult-earnest .boult { position:absolute; bottom:18%; left:22%; width:22%; height:50%; background: linear-gradient(180deg, #c8553d 0%, #6a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: be-bounce 0.8s ease-in-out infinite; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-boult-earnest .marina { position:absolute; bottom:18%; right:22%; width:20%; height:48%; background: linear-gradient(180deg, #b87878 0%, #5e2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: be-sway 3s ease-in-out infinite; }
.scn-boult-earnest .coin { position:absolute; top:40%; left:45%; width:6%; height:6%; background: radial-gradient(circle, #ffd080 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 16px 4px #ffb040; animation: be-spin 1.5s ease-in-out infinite; }
.scn-boult-earnest .veil { position:absolute; bottom:30%; right:28%; width:10%; height:22%; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius: 50% 50% 20% 20% / 80% 80% 40% 40%; filter: blur(2px); animation: be-flutter 2s ease-in-out infinite; }
.scn-boult-earnest .sparkle-1 { position:absolute; top:30%; left:30%; width:3%; height:3%; background: radial-gradient(circle, #ffd080 0%, transparent 100%); border-radius: 50%; animation: be-sparkle 1.2s ease-in-out infinite; }
.scn-boult-earnest .sparkle-2 { position:absolute; top:35%; left:55%; width:2%; height:2%; background: radial-gradient(circle, #ffd080 0%, transparent 100%); border-radius: 50%; animation: be-sparkle 1.2s ease-in-out infinite 0.6s; }
@keyframes be-bounce { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-10px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes be-sway { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes be-spin { 0% { transform: translateY(0) scale(1) rotate(0deg); } 50% { transform: translateY(-6px) scale(1.1) rotate(180deg); } 100% { transform: translateY(0) scale(1) rotate(360deg); } }
@keyframes be-flutter { 0% { transform: translateX(0) scaleY(1); opacity: 0.6; } 50% { transform: translateX(3px) scaleY(1.05); opacity: 1; } 100% { transform: translateX(0) scaleY(1); opacity: 0.7; } }
@keyframes be-sparkle { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0; transform: scale(0.8); } }

.scn-preparing-to-leave-mytilene { background: linear-gradient(180deg, #fcd8a8 0%, #fce1b8 40%, #b8d4e8 100%), radial-gradient(ellipse at 50% 0%, #fcd8a8 0%, transparent 60%); }
.scn-preparing-to-leave-mytilene .scn-mytilene-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #fce1b8 0%, #b8d4e8 100%); animation: myt-sky 12s ease-in-out infinite alternate; }
.scn-preparing-to-leave-mytilene .scn-mytilene-sun { position:absolute; top:8%; left:65%; width:60px; height:60px; background: radial-gradient(circle, #fff5d8 0%, #fcd8a8 80%); border-radius:50%; box-shadow: 0 0 40px 15px #fcd8a8, 0 0 80px 30px rgba(252,216,168,.4); animation: myt-sun 6s ease-in-out infinite alternate; }
.scn-preparing-to-leave-mytilene .scn-mytilene-sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #5a8c9c 0%, #2a5c6c 100%); animation: myt-sea 8s ease-in-out infinite alternate; }
.scn-preparing-to-leave-mytilene .scn-mytilene-shore { position:absolute; bottom:15%; right:10%; width:45%; height:20%; background: linear-gradient(180deg, #d4a878 0%, #b8845a 100%); border-radius: 60% 0% 0% 0% / 100% 0% 0% 0%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); animation: myt-shore 10s ease-in-out infinite alternate; }
.scn-preparing-to-leave-mytilene .scn-mytilene-ship { position:absolute; bottom:30%; left:15%; width:120px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 40% 60% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 5px 15px rgba(0,0,0,.5); animation: myt-ship 4s ease-in-out infinite; }
.scn-preparing-to-leave-mytilene .scn-mytilene-mast { position:absolute; bottom:42%; left:22%; width:6px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 2px; transform-origin: bottom center; animation: myt-mast 4s ease-in-out infinite; }
.scn-preparing-to-leave-mytilene .scn-mytilene-cloud-a { position:absolute; top:12%; right:-10%; width:120px; height:25px; background: rgba(255,255,255,.6); border-radius: 50%; filter: blur(8px); animation: myt-drift-a 30s linear infinite; }
.scn-preparing-to-leave-mytilene .scn-mytilene-cloud-b { position:absolute; top:25%; left:-10%; width:90px; height:20px; background: rgba(255,255,255,.5); border-radius: 50%; filter: blur(6px); animation: myt-drift-b 40s linear infinite; }
@keyframes myt-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes myt-sun { 0% { transform: scale(.95); box-shadow: 0 0 30px 10px #fcd8a8; } 50% { transform: scale(1); box-shadow: 0 0 40px 15px #fcd8a8; } 100% { transform: scale(1.05); box-shadow: 0 0 50px 20px #fcd8a8; } }
@keyframes myt-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(3px); } }
@keyframes myt-shore { 0% { transform: translateX(0); } 50% { transform: translateX(-4px); } 100% { transform: translateX(-8px); } }
@keyframes myt-ship { 0%, 100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } }
@keyframes myt-mast { 0%, 100% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } }
@keyframes myt-drift-a { 0% { transform: translateX(0); } 100% { transform: translateX(-150vw); } }
@keyframes myt-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(150vw); } }

.scn-gower-chorus { background: linear-gradient(180deg, #4a3020 0%, #7a5040 30%, #3a2a2a 100%), radial-gradient(ellipse at 50% 70%, #7a5040 0%, transparent 70%); }
.scn-gower-chorus .scn-gower-bg { position:absolute; inset: 5% 10% 15% 10%; background: radial-gradient(ellipse at 50% 40%, #b8a080 0%, #7a5040 100%); border-radius: 20px; animation: gow-bg 12s ease-in-out infinite alternate; }
.scn-gower-chorus .scn-gower-stage { position:absolute; bottom:25%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, #c8a858 0%, #8a6838 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.3); }
.scn-gower-chorus .scn-gower-curtain-l { position:absolute; top:5%; left:10%; width:20%; height:70%; background: linear-gradient(135deg, #a0462a 0%, #6a2a1a 100%); border-radius: 0 0 60% 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.4); animation: gow-curtain 8s ease-in-out infinite alternate; }
.scn-gower-chorus .scn-gower-curtain-r { position:absolute; top:5%; right:10%; width:20%; height:70%; background: linear-gradient(225deg, #a0462a 0%, #6a2a1a 100%); border-radius: 0 0 0 60%; box-shadow: inset 4px 0 8px rgba(0,0,0,.4); animation: gow-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-gower-chorus .scn-gower-figure { position:absolute; bottom:28%; left:50%; transform: translateX(-50%); width:28px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: gow-fig 4s ease-in-out infinite; }
.scn-gower-chorus .scn-gower-sand { position:absolute; bottom:38%; left:50%; transform: translateX(-50%); width:16px; height:30px; background: linear-gradient(180deg, #f0d8a0 50%, transparent 50%); border: 1px solid #c8a858; border-radius: 4px; animation: gow-sand 6s ease-in-out infinite; }
.scn-gower-chorus .scn-gower-ray { position:absolute; top:10%; left:30%; width:40%; height:60%; background: linear-gradient(135deg, rgba(255,255,200,.15) 0%, transparent 100%); animation: gow-ray 8s ease-in-out infinite alternate; }
.scn-gower-chorus .scn-gower-dust { position:absolute; top:20%; left:40%; width:6px; height:6px; background: rgba(255,255,200,.8); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,255,200,.5); animation: gow-dust 5s ease-in-out infinite; }
@keyframes gow-bg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes gow-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes gow-fig { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes gow-sand { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(.8); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes gow-ray { 0% { transform: rotate(-5deg); opacity: .5; } 50% { transform: rotate(0deg); opacity: .75; } 100% { transform: rotate(5deg); opacity: 1; } }
@keyframes gow-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; } 50% { transform: translateY(-20px) translateX(10px) scale(1.5); opacity: 1; } 100% { transform: translateY(-40px) translateX(-5px) scale(.5); opacity: 0; } }

.scn-ephesus-temple { background: linear-gradient(180deg, #c8d8e0 0%, #e8f0f4 40%, #a8b8c8 100%), radial-gradient(ellipse at 50% 0%, #e8f0f4 0%, transparent 70%); }
.scn-ephesus-temple .scn-ephes-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, #f4f8fc 0%, #c8d8e0 80%); animation: eph-bg 15s ease-in-out infinite alternate; }
.scn-ephesus-temple .scn-ephes-col-l { position:absolute; top:5%; left:12%; width:12%; height:85%; background: linear-gradient(180deg, #e8f0f4 0%, #b8c8d0 50%, #889898 100%); border-radius: 10px 10px 0 0; box-shadow: 4px 0 15px rgba(0,0,0,.1); animation: eph-col 10s ease-in-out infinite alternate; }
.scn-ephesus-temple .scn-ephes-col-r { position:absolute; top:5%; right:12%; width:12%; height:85%; background: linear-gradient(180deg, #e8f0f4 0%, #b8c8d0 50%, #889898 100%); border-radius: 10px 10px 0 0; box-shadow: -4px 0 15px rgba(0,0,0,.1); animation: eph-col 10s ease-in-out infinite alternate-reverse; }
.scn-ephesus-temple .scn-ephes-altar { position:absolute; bottom:25%; left:50%; transform: translateX(-50%); width:60px; height:40px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 0 30px 5px #c8783a; animation: eph-altar 3s ease-in-out infinite alternate; }
.scn-ephesus-temple .scn-ephes-beam { position:absolute; top:0; left:35%; width:30%; height:60%; background: linear-gradient(180deg, rgba(255,255,240,.4) 0%, transparent 100%); animation: eph-beam 6s ease-in-out infinite alternate; }
.scn-ephesus-temple .scn-ephes-fig { position:absolute; bottom:28%; left:38%; width:20px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: eph-fig 4s ease-in-out infinite; }
.scn-ephesus-temple .scn-ephes-glow { position:absolute; bottom:30%; left:50%; transform: translateX(-50%); width:100px; height:100px; background: radial-gradient(circle, rgba(200,120,58,.6) 0%, transparent 70%); animation: eph-glow 4s ease-in-out infinite alternate; }
.scn-ephesus-temple .scn-ephes-wisp { position:absolute; bottom:35%; left:50%; width:8px; height:8px; background: rgba(255,200,150,.8); border-radius: 50%; box-shadow: 0 0 10px 3px rgba(255,200,150,.4); animation: eph-wisp 6s ease-in-out infinite; }
@keyframes eph-bg { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .95; } }
@keyframes eph-col { 0% { transform: scaleY(.98); } 50% { transform: scaleY(1); } 100% { transform: scaleY(.99); } }
@keyframes eph-altar { 0% { box-shadow: 0 0 20px 3px #c8783a; } 50% { box-shadow: 0 0 30px 6px #c8783a; } 100% { box-shadow: 0 0 40px 10px #c8783a; } }
@keyframes eph-beam { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: 1; } }
@keyframes eph-fig { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes eph-glow { 0% { transform: translateX(-50%) scale(.95); opacity: .8; } 50% { transform: translateX(-50%) scale(1.05); opacity: .9; } 100% { transform: translateX(-50%) scale(1.1); opacity: 1; } }
@keyframes eph-wisp { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; } 30% { opacity: 1; } 100% { transform: translateY(-80px) translateX(20px) scale(.5); opacity: 0; } }

.scn-item-coffin-jewels { background: linear-gradient(135deg, #1a181a 0%, #3a2a2a 50%, #1a181a 100%), radial-gradient(circle at 50% 50%, #4a3a3a 0%, #0a080a 100%); }
.scn-item-coffin-jewels .scn-jewel-outer { position:absolute; top:10%; left:10%; width:80%; height:80%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 12px; box-shadow: inset 0 0 30px rgba(0,0,0,.8); }
.scn-item-coffin-jewels .scn-jewel-inner { position:absolute; top:15%; left:15%; width:70%; height:70%; background: radial-gradient(circle at 50% 50%, #6a2a4a 0%, #4a153a 100%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-item-coffin-jewels .scn-jewel-glow { position:absolute; top:50%; left:50%; transform: translate(-50%, -50%); width:40%; height:40%; background: radial-gradient(circle, #fce8a0 0%, #c8a040 60%, transparent 100%); animation: jwl-glow 3s ease-in-out infinite alternate; }
.scn-item-coffin-jewels .scn-jewel-gem-a { position:absolute; top:35%; left:35%; width:12%; height:12%; background: radial-gradient(circle, #80e8c0 0%, #208050 100%); border-radius: 50%; box-shadow: 0 0 15px 3px rgba(128,232,192,.6); animation: jwl-gem-a 5s ease-in-out infinite; }
.scn-item-coffin-jewels .scn-jewel-gem-b { position:absolute; bottom:35%; right:35%; width:10%; height:10%; background: radial-gradient(circle, #80c0e8 0%, #205080 100%); border-radius: 50%; box-shadow: 0 0 15px 3px rgba(128,192,232,.6); animation: jwl-gem-b 5s ease-in-out infinite reverse; }
.scn-item-coffin-jewels .scn-jewel-gem-c { position:absolute; top:55%; left:55%; width:8%; height:8%; background: radial-gradient(circle, #fce8a0 0%, #c8a040 100%); border-radius: 50%; box-shadow: 0 0 15px 3px rgba(252,232,160,.6); animation: jwl-gem-c 4s ease-in-out infinite alternate; }
.scn-item-coffin-jewels .scn-jewel-hand { position:absolute; top:15%; left:50%; transform: translateX(-50%); width:25%; height:35%; background: linear-gradient(180deg, #d4a878 0%, #b8845a 40%, transparent 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; mask-image: linear-gradient(180deg, #000 60%, transparent 100%); -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent 100%); animation: jwl-hand 6s ease-in-out infinite; }
.scn-item-coffin-jewels .scn-jewel-sparkle-a { position:absolute; top:30%; left:30%; width:6px; height:6px; background: #fff; border-radius: 50%; box-shadow: 0 0 8px 2px rgba(255,255,255,.8); animation: jwl-sparkle 2s ease-in-out infinite; }
.scn-item-coffin-jewels .scn-jewel-sparkle-b { position:absolute; bottom:35%; left:45%; width:4px; height:4px; background: #fff; border-radius: 50%; box-shadow: 0 0 6px 1px rgba(255,255,255,.8); animation: jwl-sparkle 2s ease-in-out infinite .5s; }
@keyframes jwl-glow { 0% { transform: translate(-50%, -50%) scale(.95); opacity: .7; } 50% { transform: translate(-50%, -50%) scale(1.05); opacity: .85; } 100% { transform: translate(-50%, -50%) scale(1.1); opacity: 1; } }
@keyframes jwl-gem-a { 0% { transform: translate(0, 0); } 50% { transform: translate(5px, -5px); } 100% { transform: translate(-2px, 2px); } }
@keyframes jwl-gem-b { 0% { transform: translate(0, 0); } 50% { transform: translate(-5px, 5px); } 100% { transform: translate(2px, -2px); } }
@keyframes jwl-gem-c { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1.2); } }
@keyframes jwl-hand { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-8px); } }
@keyframes jwl-sparkle { 0%, 100% { opacity: 0; transform: scale(.5); } 50% { opacity: 1; transform: scale(1.5); } }

.scn-leonine-relief,
.scn-brothel-bawds-plan,
.scn-pandar-fresh-ones,
.scn-bawd-consent {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

/* ── Scene: leonine-relief (calm, dim-interior) ── */
.scn-leonine-relief {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2d2d44 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 0%, #4a4a6a 0%, transparent 100%);
}
.scn-leonine-relief .sr-wall   { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a44 0%, #1c1c32 100%); }
.scn-leonine-relief .sr-floor  { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); }
.scn-leonine-relief .sr-window { position:absolute; top:15%; left:60%; width:25%; height:40%; background:#1a1a3a; border:4px solid #3a3a5a; border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.8); overflow:hidden; }
.scn-leonine-relief .sr-drape  { position:absolute; top:5%; left:55%; width:35%; height:50%; background: linear-gradient(180deg, #4a2a3a 0%, #2a1a2a 100%); border-radius:0 0 10px 10px; animation:sr-drape 12s ease-in-out infinite alternate; }
.scn-leonine-relief .sr-moon   { position:absolute; top:18%; left:68%; width:40px; height:40px; background: radial-gradient(circle, #e4e4f0 0%, #a0a0c0 100%); border-radius:50%; filter:blur(4px); opacity:0.8; animation:sr-moon 8s ease-in-out infinite alternate; }
.scn-leonine-relief .sr-figure { position:absolute; bottom:35%; left:28%; width:24px; height:50px; background: linear-gradient(180deg, #0e0e1a 0%, #05050a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:sr-fig 6s ease-in-out infinite; }
.scn-leonine-relief .sr-table  { position:absolute; bottom:25%; left:18%; width:35%; height:18%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius:6px; box-shadow:0 4px 8px rgba(0,0,0,.6); }
.scn-leonine-relief .sr-candle { position:absolute; bottom:40%; left:25%; width:4px; height:12px; background: linear-gradient(180deg, #e8d4b0 0%, #b09070 100%); border-radius:2px; }
.scn-leonine-relief .sr-glow   { position:absolute; bottom:35%; left:18%; width:15%; height:25%; background: radial-gradient(circle, rgba(200,160,80,0.4) 0%, transparent 100%); animation:sr-glow 4s ease-in-out infinite alternate; }
@keyframes sr-moon  { 0% { opacity:0.6; transform:translateX(0); } 50% { opacity:0.9; transform:translateX(10px); } 100% { opacity:0.5; transform:translateX(-5px); } }
@keyframes sr-fig   { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-4px) rotate(2deg); } 100% { transform:translateY(2px) rotate(-1deg); } }
@keyframes sr-glow  { 0% { opacity:0.5; transform:scale(1); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.6; transform:scale(0.9); } }
@keyframes sr-drape { 0% { transform:scaleY(1) translateX(0); } 50% { transform:scaleY(1.05) translateX(4px); } 100% { transform:scaleY(0.95) translateX(-3px); } }

/* ── Scene: brothel-bawds-plan (tense, dim-interior) ── */
.scn-brothel-bawds-plan {
  background:
    linear-gradient(135deg, #1a0a05 0%, #2d1410 50%, #1a0a05 100%),
    radial-gradient(ellipse at 20% 80%, #4a2018 0%, transparent 100%);
}
.scn-brothel-bawds-plan .bb-wall   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1410 0%, #1a0a05 100%); }
.scn-brothel-bawds-plan .bb-floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a0a05 0%, #0d0502 100%); }
.scn-brothel-bawds-plan .bb-table  { position:absolute; bottom:20%; left:15%; width:70%; height:15%; background: linear-gradient(180deg, #3a1a12 0%, #24100a 100%); border-radius:8px; box-shadow:inset 0 4px 8px rgba(0,0,0,.6); }
.scn-brothel-bawds-plan .bb-pandar{ position:absolute; bottom:28%; left:20%; width:30px; height:45px; background: linear-gradient(180deg, #0a0505 0%, #050202 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bb-fig 3s ease-in-out infinite; }
.scn-brothel-bawds-plan .bb-bawd  { position:absolute; bottom:32%; left:42%; width:28px; height:48px; background: linear-gradient(180deg, #120a08 0%, #080403 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bb-fig 3.5s ease-in-out infinite -0.5s; }
.scn-brothel-bawds-plan .bb-boult { position:absolute; bottom:30%; left:62%; width:26px; height:42px; background: linear-gradient(180deg, #0e0806 0%, #060302 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bb-fig 4s ease-in-out infinite -1s; }
.scn-brothel-bawds-plan .bb-candle{ position:absolute; bottom:35%; left:46%; width:6px; height:14px; background: linear-gradient(180deg, #e0c8a0 0%, #a08060 100%); border-radius:2px; transform:translateX(-50%); animation:bb-flicker 2s ease-in-out infinite alternate; }
.scn-brothel-bawds-plan .bb-glow  { position:absolute; bottom:30%; left:35%; width:30%; height:35%; background: radial-gradient(circle, rgba(200,120,40,0.5) 0%, transparent 100%); animation:bb-glow 2s ease-in-out infinite alternate; }
.scn-brothel-bawds-plan .bb-shadow{ position:absolute; bottom:15%; left:15%; width:70%; height:15%; background:#000; filter:blur(10px); opacity:0.5; animation:bb-shad 4s ease-in-out infinite alternate; }
@keyframes bb-fig    { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-6px) rotate(3deg); } 100% { transform:translateY(3px) rotate(-1deg); } }
@keyframes bb-glow   { 0% { opacity:0.5; transform:scale(0.8); } 50% { opacity:1; transform:scale(1.15); } 100% { opacity:0.4; transform:scale(0.7); } }
@keyframes bb-shad   { 0% { transform:scaleX(1) scaleY(1); opacity:0.3; } 50% { transform:scaleX(1.1) scaleY(1.2); opacity:0.6; } 100% { transform:scaleX(0.9) scaleY(0.8); opacity:0.2; } }
@keyframes bb-flicker{ 0% { opacity:0.8; transform:scaleY(1) translateX(-50%); } 50% { opacity:1; transform:scaleY(1.1) translateX(-50%); } 100% { opacity:0.7; transform:scaleY(0.9) translateX(-50%); } }

/* ── Scene: pandar-fresh-ones (tense, dim-interior) ── */
.scn-pandar-fresh-ones {
  background:
    linear-gradient(180deg, #12100e 0%, #24201c 50%, #12100e 100%),
    radial-gradient(ellipse at 80% 50%, #4a3a2a 0%, transparent 100%);
}
.scn-pandar-fresh-ones .pf-wall  { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1c1814 0%, #12100e 100%); }
.scn-pandar-fresh-ones .pf-desk  { position:absolute; bottom:25%; left:15%; width:70%; height:20%; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); border-radius:4px; transform:perspective(200px) rotateX(10deg); }
.scn-pandar-fresh-ones .pf-pandar{ position:absolute; bottom:30%; left:20%; width:32px; height:46px; background: linear-gradient(180deg, #0a0806 0%, #040302 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pf-fig 3.2s ease-in-out infinite; }
.scn-pandar-fresh-ones .pf-bawd  { position:absolute; bottom:34%; left:45%; width:28px; height:50px; background: linear-gradient(180deg, #120e0a 0%, #080604 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pf-fig 3.7s ease-in-out infinite -0.8s; }
.scn-pandar-fresh-ones .pf-boult { position:absolute; bottom:32%; left:65%; width:26px; height:44px; background: linear-gradient(180deg, #0e0a08 0%, #060402 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pf-fig 4.1s ease-in-out infinite -1.5s; }
.scn-pandar-fresh-ones .pf-lamp  { position:absolute; top:15%; left:70%; width:20px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #2a221c 100%); border-radius:50% 50% 20% 20%; box-shadow:inset 0 -4px 6px rgba(0,0,0,.6); animation:pf-swing 5s ease-in-out infinite alternate; }
.scn-pandar-fresh-ones .pf-light { position:absolute; top:25%; left:65%; width:10%; height:15%; background: radial-gradient(circle, rgba(200,160,80,0.5) 0%, transparent 100%); animation:pf-light 3s ease-in-out infinite alternate; }
.scn-pandar-fresh-ones .pf-coin  { position:absolute; bottom:32%; left:30%; width:8px; height:4px; background:#c8a84a; border-radius:50%; box-shadow:0 0 4px #c8a84a; animation:pf-coin 2s ease-in-out infinite; }
@keyframes pf-fig   { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-4px) rotate(3deg); } 100% { transform:translateY(3px) rotate(-2deg); } }
@keyframes pf-swing { 0% { transform:rotate(-10deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-8deg); } }
@keyframes pf-light { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.7; transform:scale(0.9); } }
@keyframes pf-coin  { 0% { opacity:0.5; transform:translateY(0) scale(1); } 50% { opacity:1; transform:translateY(-10px) scale(1.5); } 100% { opacity:0.5; transform:translateY(0) scale(1); } }

/* ── Scene: bawd-consent (tense, dim-interior) ── */
.scn-bawd-consent {
  background:
    linear-gradient(90deg, #0d0d0a 0%, #1a1410 50%, #0d0d0a 100%),
    radial-gradient(ellipse at 50% 50%, #2a201a 0%, transparent 100%);
}
.scn-bawd-consent .bc-wall   { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #14100c 0%, #0d0a08 100%); }
.scn-bawd-consent .bc-floor  { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #0d0a08 0%, #050302 100%); }
.scn-bawd-consent .bc-bed    { position:absolute; bottom:15%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #2a1c14 0%, #1a100c 100%); border-radius:20px 20px 10px 10px; box-shadow:inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-bawd-consent .bc-bawd   { position:absolute; bottom:35%; left:20%; width:30px; height:50px; background: linear-gradient(180deg, #120a08 0%, #080403 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bc-fig 3.5s ease-in-out infinite; }
.scn-bawd-consent .bc-boult  { position:absolute; bottom:38%; left:45%; width:28px; height:46px; background: linear-gradient(180deg, #0e0806 0%, #060302 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bc-fig 4s ease-in-out infinite -0.7s; }
.scn-bawd-consent .bc-pandar { position:absolute; bottom:36%; left:65%; width:32px; height:48px; background: linear-gradient(180deg, #140c0a 0%, #0a0604 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bc-fig 3.8s ease-in-out infinite -1.2s; }
.scn-bawd-consent .bc-candle { position:absolute; bottom:40%; left:35%; width:6px; height:12px; background: linear-gradient(180deg, #d4b08a 0%, #a08060 100%); border-radius:2px; animation:bc-flicker 3s ease-in-out infinite alternate; }
.scn-bawd-consent .bc-glow   { position:absolute; bottom:35%; left:25%; width:20%; height:30%; background: radial-gradient(circle, rgba(180,120,60,0.4) 0%, transparent 100%); animation:bc-glow 2.5s ease-in-out infinite alternate; }
.scn-bawd-consent .bc-shadow { position:absolute; bottom:10%; left:10%; width:80%; height:15%; background:#000; filter:blur(12px); opacity:0.4; animation:bc-shad 5s ease-in-out infinite alternate; }
@keyframes bc-fig    { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-6px) rotate(2deg); } 100% { transform:translateY(2px) rotate(-1deg); } }
@keyframes bc-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 bc-shad   { 0% { transform:scaleX(1) scaleY(1); opacity:0.3; } 50% { transform:scaleX(1.2) scaleY(1.1); opacity:0.5; } 100% { transform:scaleX(0.9) scaleY(0.95); opacity:0.2; } }
@keyframes bc-flicker{ 0% { opacity:0.7; transform:scaleY(1) translateX(0); } 50% { opacity:1; transform:scaleY(1.15) translateX(1px); } 100% { opacity:0.6; transform:scaleY(0.9) translateX(-1px); } }

.scn-item-chest-caulk {
  background: linear-gradient(180deg, #f9d9b0 0%, #e8b88a 30%, #b38a6e 60%, #5a3e2a 100%),
              radial-gradient(ellipse at 30% 50%, #f9d9b0 0%, transparent 70%);
}
.scn-item-chest-caulk .sky {
  position: absolute;
  inset: 0 0 60% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #d4af7a 60%, transparent);
  animation: icc-sky 12s ease-in-out infinite alternate;
}
.scn-item-chest-caulk .sea {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #7a9ea8 0%, #4a6a70 50%, #2a3a3a 100%);
  border-radius: 60% 40% 0 0 / 50% 60% 0 0;
  animation: icc-sea 15s ease-in-out infinite alternate;
}
.scn-item-chest-caulk .sand {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #c8a87a 0%, #8a6a4a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-item-chest-caulk .chest {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 120px;
  height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: icc-chest 8s ease-in-out infinite alternate;
}
.scn-item-chest-caulk .caulk {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 130px;
  height: 6px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.8);
  animation: icc-caulk 5s ease-in-out infinite;
}
.scn-item-chest-caulk .figure {
  position: absolute;
  bottom: 24%;
  left: 38%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: icc-figure 6s ease-in-out infinite;
}
.scn-item-chest-caulk .mist {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 200px;
  height: 40px;
  background: linear-gradient(180deg, rgba(255,240,220,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: icc-mist 20s linear infinite alternate;
}
.scn-item-chest-caulk .light-ray {
  position: absolute;
  top: 10%;
  left: 30%;
  width: 60px;
  height: 200px;
  background: linear-gradient(180deg, rgba(255,200,100,0.3) 0%, transparent 80%);
  transform: rotate(15deg);
  filter: blur(8px);
  animation: icc-ray 6s ease-in-out infinite alternate;
}
@keyframes icc-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes icc-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes icc-chest {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-0.5deg); }
}
@keyframes icc-caulk {
  0% { opacity: 0.8; transform: translateX(-50%) scaleX(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleX(1.05); }
  100% { opacity: 0.7; transform: translateX(-50%) scaleX(0.95); }
}
@keyframes icc-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(24px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes icc-mist {
  0% { transform: translateX(-20px); opacity: 0.3; }
  50% { transform: translateX(20px); opacity: 0.5; }
  100% { transform: translateX(-10px); opacity: 0.2; }
}
@keyframes icc-ray {
  0% { opacity: 0.2; transform: rotate(15deg) scaleY(1); }
  100% { opacity: 0.6; transform: rotate(20deg) scaleY(1.3); }
}

.scn-chest-reveals-queen {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #4a3a2a 80%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 30%, #6a4a3a 0%, transparent 70%);
}
.scn-chest-reveals-queen .chest-interior {
  position: absolute;
  top: 20%;
  left: 50%;
  width: 180px;
  height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8), 0 10px 30px rgba(0,0,0,0.7);
}
.scn-chest-reveals-queen .shroud {
  position: absolute;
  top: 25%;
  left: 50%;
  width: 140px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 60%, #4a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: crq-shroud 4s ease-in-out infinite alternate;
}
.scn-chest-reveals-queen .queen-silhouette {
  position: absolute;
  top: 26%;
  left: 50%;
  width: 60px;
  height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.9);
  animation: crq-queen 6s ease-in-out infinite;
}
.scn-chest-reveals-queen .spices {
  position: absolute;
  top: 35%;
  left: 42%;
  width: 80px;
  height: 30px;
  background: radial-gradient(circle, #8a6a2a 0%, transparent 70%),
              radial-gradient(circle, #6a4a1a 0%, transparent 60%);
  filter: blur(4px);
  animation: crq-spices 3s ease-in-out infinite alternate;
}
.scn-chest-reveals-queen .scroll {
  position: absolute;
  top: 20%;
  left: 55%;
  width: 10px;
  height: 30px;
  background: linear-gradient(180deg, #c8a87a 0%, #8a6a4a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(15deg);
  animation: crq-scroll 5s ease-in-out infinite alternate;
}
.scn-chest-reveals-queen .beam {
  position: absolute;
  top: 5%;
  left: 30%;
  width: 100px;
  height: 250px;
  background: linear-gradient(180deg, rgba(255,200,100,0.3) 0%, transparent 80%);
  transform: rotate(10deg);
  filter: blur(10px);
  animation: crq-beam 2s ease-in-out infinite alternate;
}
.scn-chest-reveals-queen .shadow-vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,0.6) 100%);
  animation: crq-vignette 8s ease-in-out infinite alternate;
}
@keyframes crq-shroud {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); opacity: 0.8; }
  50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); opacity: 1; }
  100% { transform: translateX(-50%) translateY(0) rotate(2deg); opacity: 0.7; }
}
@keyframes crq-queen {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  33% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  66% { transform: translateX(-50%) translateY(1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes crq-spices {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.2; transform: scale(1); }
}
@keyframes crq-scroll {
  0% { transform: rotate(15deg) translateY(0); opacity: 0.6; }
  50% { transform: rotate(20deg) translateY(-4px); opacity: 1; }
  100% { transform: rotate(10deg) translateY(0); opacity: 0.5; }
}
@keyframes crq-beam {
  0% { opacity: 0.2; transform: rotate(10deg) scaleX(1); }
  50% { opacity: 0.6; transform: rotate(12deg) scaleX(1.2); }
  100% { opacity: 0.1; transform: rotate(8deg) scaleX(0.9); }
}
@keyframes crq-vignette {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}

.scn-cerimon-physic {
  background:
    linear-gradient(180deg, #f9e0b0 0%, #e8c080 30%, #b89060 70%, #5a3a2a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-cerimon-physic .dawn-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #f0c080 50%, #d09050 100%);
  animation: cp-dawn 15s ease-in-out infinite alternate;
}
.scn-cerimon-physic .window-frame {
  position: absolute; top: 8%; left: 20%; width: 40%; height: 50%;
  border: 6px solid #4a3020; border-radius: 4px;
  background: transparent;
  animation: cp-window 10s ease-in-out infinite;
}
.scn-cerimon-physic .desk {
  position: absolute; bottom: 18%; left: 15%; width: 55%; height: 12%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2a10 100%);
  border-radius: 2% 2% 6% 6% / 20% 20% 30% 30%;
}
.scn-cerimon-physic .figure {
  position: absolute; bottom: 22%; left: 32%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e06 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-figure 4s ease-in-out infinite;
}
.scn-cerimon-physic .candle {
  position: absolute; bottom: 25%; left: 60%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #f0c080 0%, #c08040 80%, #4a2a10 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-cerimon-physic .glow {
  position: absolute; bottom: 22%; left: 58%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffd090 0%, #f0a050 40%, transparent 70%);
  animation: cp-glow 2s ease-in-out infinite alternate;
}
.scn-cerimon-physic .shadow {
  position: absolute; bottom: 16%; left: 28%; width: 25%; height: 6%;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(6px);
  animation: cp-shadow 4s ease-in-out infinite;
}
@keyframes cp-dawn {
  0% { opacity: 0.7; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.8; filter: brightness(0.95); }
}
@keyframes cp-window {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.01); }
  100% { transform: scaleX(1); }
}
@keyframes cp-figure {
  0% { transform: translateY(0) rotate(-0.5deg); }
  25% { transform: translateY(-1px) rotate(0.5deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes cp-glow {
  0% { transform: scale(0.9); opacity: 0.7; box-shadow: 0 0 20px 5px #f0a050; }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 40px 12px #ffc070; }
  100% { transform: scale(0.95); opacity: 0.8; box-shadow: 0 0 25px 8px #f0a050; }
}
@keyframes cp-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.05); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

.scn-charity-praised {
  background:
    linear-gradient(180deg, #ffcc80 0%, #e8a050 30%, #c08040 60%, #6a3a1a 100%),
    radial-gradient(ellipse at 50% 100%, #ffe0a0 0%, transparent 70%);
}
.scn-charity-praised .bg-buildings {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a6040 0%, #5a3820 50%, #3a2010 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  animation: chp-bg 20s linear infinite alternate;
}
.scn-charity-praised .fountain-base {
  position: absolute; bottom: 30%; left: 38%; width: 24%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #7a5a3a 0%, #4a2a10 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  animation: chp-pulse 8s ease-in-out infinite;
}
.scn-charity-praised .water-arc {
  position: absolute; bottom: 42%; left: 46%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #b8e0e8 0%, #80b8d0 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: chp-water 3s ease-in-out infinite alternate;
}
.scn-charity-praised .figure-cerimon {
  position: absolute; bottom: 40%; left: 45%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1508 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chp-figure 6s ease-in-out infinite;
}
.scn-charity-praised .figure-small-1 {
  position: absolute; bottom: 38%; left: 30%; width: 5%; height: 12%;
  background: #5a3a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: chp-small1 4s ease-in-out infinite;
}
.scn-charity-praised .figure-small-2 {
  position: absolute; bottom: 38%; left: 60%; width: 5%; height: 12%;
  background: #5a3a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: chp-small2 5s ease-in-out infinite;
}
@keyframes chp-bg {
  0% { opacity: 0.6; filter: brightness(0.8); }
  50% { opacity: 0.8; filter: brightness(1); }
  100% { opacity: 0.7; filter: brightness(0.9); }
}
@keyframes chp-pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(1); }
}
@keyframes chp-water {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(0deg) scaleY(1.1); }
  100% { transform: rotate(5deg) scaleY(1); }
}
@keyframes chp-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes chp-small1 {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes chp-small2 {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

.scn-charity-praised { background: linear-gradient(180deg, #f9d29d 0%, #ffb56b 30%, #e6824f 70%, #8a4a2a 100%); }

.scn-charity-praised .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffcf9a 0%, #f5a56b 40%, transparent 100%);
  animation: chp-sky 20s ease-in-out infinite alternate;
}
.scn-charity-praised .sun {
  position: absolute; bottom: 38%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff3b0 0%, #ffb347 60%, #e07b2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255, 179, 71, 0.6);
  animation: chp-sunrise 30s ease-in-out infinite alternate;
}
.scn-charity-praised .buildings {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, #4a2e1a 0%, #3a2210 50%, #4a2e1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: chp-buildings 10s ease-in-out infinite;
}
.scn-charity-praised .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  animation: chp-ground 8s ease-in-out infinite alternate;
}
.scn-charity-praised .figure-a {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chp-bow 6s ease-in-out infinite;
}
.scn-charity-praised .figure-b {
  position: absolute; bottom: 22%; right: 40%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2210 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chp-kneel 6s ease-in-out infinite;
}
.scn-charity-praised .light-rays {
  position: absolute; bottom: 40%; left: 15%; width: 200px; height: 120px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255, 220, 150, 0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: chp-rays 4s ease-in-out infinite alternate;
}
.scn-charity-praised .purse {
  position: absolute; bottom: 26%; left: 48%; width: 18px; height: 14px;
  background: radial-gradient(circle, #c08040 0%, #8a6020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 16px 4px rgba(192,128,64,0.6);
  animation: chp-purse 2s ease-in-out infinite alternate;
}

@keyframes chp-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes chp-sunrise {
  0% { transform: translateY(10px) scale(0.95); box-shadow: 0 0 50px 20px rgba(255,179,71,0.4); }
  50% { transform: translateY(0) scale(1.05); box-shadow: 0 0 100px 40px rgba(255,179,71,0.7); }
  100% { transform: translateY(-8px) scale(1); box-shadow: 0 0 80px 30px rgba(255,179,71,0.6); }
}
@keyframes chp-buildings {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
}
@keyframes chp-ground {
  0% { background-position: 0% 0%; }
  100% { background-position: 10% 0%; }
}
@keyframes chp-bow {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(-3deg) translateX(-2px); }
  50% { transform: rotate(0deg) translateX(-4px); }
  75% { transform: rotate(3deg) translateX(-2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes chp-kneel {
  0% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-2px) scaleY(0.97); }
  50% { transform: translateY(0) scaleY(1); }
  75% { transform: translateY(-1px) scaleY(0.98); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes chp-rays {
  0% { opacity: 0.5; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.1); }
}
@keyframes chp-purse {
  0% { transform: translateY(0) rotate(-5deg); box-shadow: 0 0 12px 3px rgba(192,128,64,0.5); }
  100% { transform: translateY(-3px) rotate(5deg); box-shadow: 0 0 20px 6px rgba(255,200,100,0.8); }
}

.scn-cerimon-physic {
  background:
    linear-gradient(180deg, #d4a574 0%, #b0805a 40%, #6b4d3a 100%),
    radial-gradient(ellipse at 20% 30%, rgba(255,210,140,0.3) 0%, transparent 60%);
}
.scn-cerimon-physic .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8cfa0 0%, #c8a87a 100%);
  animation: cp-wall 18s ease-in-out infinite alternate;
}
.scn-cerimon-physic .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6b4d3a 0%, #3f2a1c 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.4);
}
.scn-cerimon-physic .window-frame {
  position: absolute; bottom: 35%; left: 10%; width: 120px; height: 150px;
  background: #5a3f2d;
  border: 6px solid #4a3221;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-cerimon-physic .window-glass {
  position: absolute; bottom: 38%; left: 13%; width: 106px; height: 130px;
  background: linear-gradient(135deg, #ffe8c0 0%, #ffd090 30%, #a0c0d0 100%);
  border-radius: 2px;
  animation: cp-glass 6s ease-in-out infinite alternate;
}
.scn-cerimon-physic .dawn-beam {
  position: absolute; bottom: 30%; left: 20%; width: 200px; height: 120px;
  background: linear-gradient(135deg, rgba(255,210,140,0.25) 0%, transparent 60%);
  transform: skewX(-15deg);
  filter: blur(8px);
  animation: cp-beam 20s ease-in-out infinite alternate;
}
.scn-cerimon-physic .curtain-left,
.scn-cerimon-physic .curtain-right {
  position: absolute; bottom: 35%; width: 30px; height: 155px;
  background: linear-gradient(180deg, #a06848 0%, #704830 100%);
  border-radius: 0 6px 6px 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
}
.scn-cerimon-physic .curtain-left { left: 6%; transform-origin: top left; animation: cp-curtain-l 10s ease-in-out infinite alternate; }
.scn-cerimon-physic .curtain-right { right: 78%; transform-origin: top right; animation: cp-curtain-r 10s ease-in-out infinite alternate; }
.scn-cerimon-physic .figure {
  position: absolute; bottom: 33%; left: 45%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a1f14 0%, #120c06 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: cp-figure 4s ease-in-out infinite;
}
.scn-cerimon-physic .chair {
  position: absolute; bottom: 31%; left: 40%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #804e30 0%, #5a3320 100%);
  border-radius: 10% 10% 20% 20% / 15% 15% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: cp-chair 6s ease-in-out infinite;
}
@keyframes cp-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes cp-glass {
  0% { opacity: 0.7; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1); }
  100% { opacity: 0.8; filter: brightness(0.95); }
}
@keyframes cp-beam {
  0% { transform: skewX(-15deg) translateX(0); opacity: 0.3; }
  50% { transform: skewX(-15deg) translateX(12px); opacity: 0.6; }
  100% { transform: skewX(-15deg) translateX(-8px); opacity: 0.4; }
}
@keyframes cp-curtain-l {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes cp-curtain-r {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes cp-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cp-chair {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}

.scn-item-chest-caulk {
  background: 
    linear-gradient(180deg, #f9d6a0 0%, #f7b977 30%, #d4834a 60%, #6b4c3a 100%),
    radial-gradient(circle at 70% 20%, #ffe494 0%, transparent 60%);
}
.scn-item-chest-caulk .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b4d4f0 0%, #e2c8a0 60%, transparent 100%);
}
.scn-item-chest-caulk .sea {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a6b8a 0%, #1e3d5e 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: cc-wave 6s ease-in-out infinite alternate;
}
.scn-item-chest-caulk .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #c9a96e 0%, #a4845a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
}
.scn-item-chest-caulk .cloud {
  position: absolute; top: 12%; left: -15%; width: 120px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,240,0.7) 0%, rgba(255,255,240,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: cc-cloud 40s linear infinite;
}
.scn-item-chest-caulk .chest {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 25%;
  background: linear-gradient(180deg, #5a3e2a 0%, #3e2a18 50%, #2a1e0e 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 12px 24px rgba(0,0,0,0.5), inset 0 2px 4px rgba(255,200,100,0.2);
  animation: cc-bob 4s ease-in-out infinite;
}
.scn-item-chest-caulk .lid {
  position: absolute; bottom: 32%; left: 30.5%; width: 39%; height: 8%;
  background: linear-gradient(180deg, #6b4a32 0%, #4a3220 100%);
  border-radius: 20% 20% 0 0 / 60% 60% 0 0;
  transform-origin: bottom center;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: cc-lid 8s ease-in-out infinite;
}
.scn-item-chest-caulk .lock {
  position: absolute; bottom: 30%; left: 48%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #c0a070 0%, #8a6a40 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-item-chest-caulk .gleam {
  position: absolute; bottom: 28%; left: 49%; width: 4%; height: 5%;
  background: radial-gradient(circle, #fff8e0 0%, transparent 70%);
  border-radius: 50%;
  animation: cc-gleam 3s ease-in-out infinite;
}
@keyframes cc-wave {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}
@keyframes cc-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(130vw); }
}
@keyframes cc-bob {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cc-lid {
  0% { transform: rotateX(0deg); }
  50% { transform: rotateX(-5deg); }
  100% { transform: rotateX(0deg); }
}
@keyframes cc-gleam {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.3; transform: scale(0.8); }
}

.scn-chest-reveals-queen {
  background: linear-gradient(180deg, #2a1548 0%, #5e2a44 40%, #c65a3a 70%, #f0b86a 100%), radial-gradient(ellipse at 70% 15%, #ffd088 0%, transparent 50%);
  perspective: 800px;
  overflow: hidden;
}
.scn-chest-reveals-queen::before {
  content: '';
  position: absolute;
  top: 5%;
  left: 60%;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, #ffe49e 0%, rgba(255,200,100,0.4) 50%, transparent 70%);
  border-radius: 50%;
  animation: crq-sun 6s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-chest-reveals-queen .sky {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, rgba(42,21,72,0.5) 0%, transparent 100%);
  animation: crq-sky 12s ease-in-out infinite alternate;
}
.scn-chest-reveals-queen .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2a1d1a 0%, #1a0f0a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-chest-reveals-queen .chest {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 140px;
  height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a452a 0%, #3d2418 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.7);
  border: 2px solid #b67a45;
}
.scn-chest-reveals-queen .lid {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 140px;
  height: 20px;
  transform: translateX(-50%) translateY(-80px);
  background: linear-gradient(180deg, #7a5038 0%, #4a2e1e 100%);
  border-radius: 4% 4% 0 0;
  transform-origin: bottom center;
  animation: crq-lid 8s ease-in-out infinite;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.4);
}
.scn-chest-reveals-queen .cloth {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 100px;
  height: 50px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0f0f 100%);
  border-radius: 10% 10% 40% 40%;
  opacity: 0.8;
  transform: skewX(-5deg);
  animation: crq-cloth 10s ease-in-out infinite;
  filter: blur(1px);
}
.scn-chest-reveals-queen .figure {
  position: absolute;
  bottom: 12%;
  left: 32%;
  width: 50px;
  height: 90px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crq-figure 4s ease-in-out infinite;
  box-shadow: 0 8px 15px rgba(0,0,0,0.5);
}
.scn-chest-reveals-queen .scroll {
  position: absolute;
  bottom: 32%;
  left: 48%;
  width: 30px;
  height: 18px;
  background: linear-gradient(90deg, #d6c8a0 0%, #b8a88a 50%, #d6c8a0 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-10deg);
  animation: crq-scroll 7s ease-in-out infinite;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-chest-reveals-queen .spice-a {
  position: absolute;
  bottom: 35%;
  left: 55%;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #eebb55 0%, #c9882a 60%);
  border-radius: 50%;
  animation: crq-spice 5s ease-in-out infinite;
  box-shadow: 0 0 4px #eebb55;
}
.scn-chest-reveals-queen .spice-b {
  position: absolute;
  bottom: 40%;
  left: 52%;
  width: 6px;
  height: 6px;
  background: radial-gradient(circle, #eeb044 0%, #c07a20 60%);
  border-radius: 50%;
  animation: crq-spice 5s ease-in-out infinite 2.5s;
  box-shadow: 0 0 3px #eeb044;
}
@keyframes crq-sun {
  0% { opacity:0.6; transform: scale(1); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.7; transform: scale(0.95); }
}
@keyframes crq-sky {
  0% { opacity:0.5; }
  50% { opacity:0.8; }
  100% { opacity:0.4; }
}
@keyframes crq-lid {
  0%, 100% { transform: translateX(-50%) translateY(-80px) rotateX(0deg); }
  25% { transform: translateX(-50%) translateY(-80px) rotateX(-70deg); }
  50% { transform: translateX(-50%) translateY(-80px) rotateX(-90deg); }
  75% { transform: translateX(-50%) translateY(-80px) rotateX(-70deg); }
}
@keyframes crq-cloth {
  0%, 100% { transform: skewX(-5deg) translateY(0); opacity:0.7; }
  50% { transform: skewX(-8deg) translateY(-3px); opacity:0.9; }
}
@keyframes crq-figure {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
}
@keyframes crq-scroll {
  0%, 100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-4px); }
}
@keyframes crq-spice {
  0%, 100% { transform: translate(0,0) rotate(0deg); opacity:0.5; }
  25% { transform: translate(8px,-6px) rotate(20deg); opacity:0.8; }
  50% { transform: translate(15px,-10px) rotate(45deg); opacity:1; }
  75% { transform: translate(8px,-6px) rotate(20deg); opacity:0.8; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.bright { position: absolute; pointer-events: none; }
.halberd { position: absolute; pointer-events: none; }
.jar { position: absolute; pointer-events: none; }
.particle { position: absolute; pointer-events: none; }
.raven { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* Scene 1: pentapolis-armor-recovery */
.scn-pentapolis-armor-recovery {
  background: linear-gradient(180deg, #f7d98a 0%, #e8b85f 40%, #cc9644 100%),
              radial-gradient(ellipse at 50% 100%, #c8903a 0%, transparent 70%);
}
.scn-pentapolis-armor-recovery .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fff5d6 0%, #f2d58f 100%);
  animation: pa-sky 12s ease-in-out infinite alternate;
}
.scn-pentapolis-armor-recovery .sea {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2d6b8a 0%, #1b4b67 100%);
  border-radius: 0 0 60% 60% / 0 0 30% 30%;
  animation: pa-sea 10s ease-in-out infinite alternate;
}
.scn-pentapolis-armor-recovery .sand {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 32%;
  background: linear-gradient(180deg, #dbbb7a 0%, #b8924f 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: pa-sand 8s ease-in-out infinite;
}
.scn-pentapolis-armor-recovery .net {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 30%;
  height: 25%;
  background: radial-gradient(ellipse at 50% 20%, #a07a4a 0%, #5a3a1a 80%);
  border-radius: 40%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: pa-net 6s ease-in-out infinite;
}
.scn-pentapolis-armor-recovery .armor {
  position: absolute;
  bottom: 32%;
  left: 42%;
  width: 16%;
  height: 18%;
  background: linear-gradient(135deg, #b0874a 0%, #7a5e30 50%, #4a3a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px #e8b85f, 0 0 60px 20px rgba(232,184,95,0.5);
  animation: pa-armor 4s ease-in-out infinite alternate;
}
.scn-pentapolis-armor-recovery .fisher {
  position: absolute;
  bottom: 25%;
  left: 25%;
  width: 12%;
  height: 22%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: pa-fisher 3s ease-in-out infinite;
}
.scn-pentapolis-armor-recovery .sunburst {
  position: absolute;
  top: 8%;
  left: 45%;
  width: 20%;
  height: 20%;
  background: radial-gradient(circle, rgba(255,230,180,0.9) 0%, rgba(255,200,120,0.3) 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: pa-sun 20s linear infinite;
}
@keyframes pa-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pa-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pa-sand { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98) translateY(1px); } 100% { transform: scaleY(1); } }
@keyframes pa-net { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-10px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pa-armor { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1) rotate(2deg); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes pa-fisher { 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(-2deg); } }
@keyframes pa-sun { 0% { transform: translateX(-10px) scale(1); } 50% { transform: translateX(10px) scale(1.1); } 100% { transform: translateX(-10px) scale(1); } }

/* Scene 2: tournament-six-knights */
.scn-tournament-six-knights {
  background: linear-gradient(180deg, #b8d4f0 0%, #8fb8d8 40%, #6a98b8 100%),
              radial-gradient(ellipse at 50% 60%, #d8e8f8 0%, transparent 70%);
}
.scn-tournament-six-knights .sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d0e4f8 0%, #a8c8e0 100%);
  animation: ts-sky 15s ease-in-out infinite alternate;
}
.scn-tournament-six-knights .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(180deg, #7a9a7a 0%, #4e6a4e 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
}
.scn-tournament-six-knights .dais {
  position: absolute;
  bottom: 40%;
  left: 30%;
  width: 40%;
  height: 12%;
  background: linear-gradient(180deg, #c8b898 0%, #a08a6a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ts-dais 8s ease-in-out infinite;
}
.scn-tournament-six-knights .knight {
  position: absolute;
  bottom: 20%;
  width: 8%;
  height: 25%;
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: ts-knight 4s ease-in-out infinite;
}
.scn-tournament-six-knights .k1 { left: 10%; animation-delay: 0s; }
.scn-tournament-six-knights .k2 { left: 20%; animation-delay: 0.3s; }
.scn-tournament-six-knights .k3 { left: 36%; animation-delay: 0.6s; }
.scn-tournament-six-knights .k4 { left: 56%; animation-delay: 0.2s; }
.scn-tournament-six-knights .k5 { left: 70%; animation-delay: 0.4s; }
.scn-tournament-six-knights .k6 { left: 82%; animation-delay: 0.5s; }
.scn-tournament-six-knights .branch {
  position: absolute;
  bottom: 22%;
  left: 36%;
  width: 6%;
  height: 20%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 10% 10% 30% 30% / 10% 10% 60% 60%;
  animation: ts-branch 3s ease-in-out infinite;
}
@keyframes ts-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ts-dais { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ts-knight { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ts-branch { 0% { transform: rotate(0deg) scale(1); } 33% { transform: rotate(-5deg) scale(1.05); } 66% { transform: rotate(5deg) scale(0.95); } 100% { transform: rotate(0deg) scale(1); } }

/* Scene 3: feast-thaisa-letter */
.scn-feast-thaisa-letter {
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 40%, #2a1a10 100%),
              radial-gradient(ellipse at 50% 70%, #8a6a4a 0%, transparent 70%);
}
.scn-feast-thaisa-letter .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #8a7050 0%, #5a4028 100%);
  border-radius: 0 0 20% 20%;
}
.scn-feast-thaisa-letter .table {
  position: absolute;
  bottom: 25%;
  left: 20%;
  width: 60%;
  height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ft-table 6s ease-in-out infinite;
}
.scn-feast-thaisa-letter .pericles {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 10%;
  height: 22%;
  background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%;
  animation: ft-peri 4s ease-in-out infinite;
}
.scn-feast-thaisa-letter .thaisa {
  position: absolute;
  bottom: 30%;
  left: 60%;
  width: 10%;
  height: 22%;
  background: linear-gradient(180deg, #5a3020 0%, #2a1808 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%;
  animation: ft-thai 5s ease-in-out infinite;
}
.scn-feast-thaisa-letter .letter {
  position: absolute;
  bottom: 35%;
  left: 45%;
  width: 8%;
  height: 6%;
  background: linear-gradient(135deg, #f0d8a8 0%, #d8b878 100%);
  border-radius: 10%;
  box-shadow: 0 0 20px 8px #e8c878, 0 0 40px 16px rgba(232,200,120,0.4);
  animation: ft-letter 3s ease-in-out infinite alternate;
}
.scn-feast-thaisa-letter .lantern {
  position: absolute;
  top: 15%;
  left: 50%;
  width: 6%;
  height: 8%;
  background: radial-gradient(circle, #f0c860 0%, #d0a040 70%);
  border-radius: 50%;
  filter: blur(4px);
  box-shadow: 0 0 40px 20px #e8b858, 0 0 80px 40px rgba(232,184,88,0.3);
  animation: ft-lantern 8s ease-in-out infinite alternate;
}
@keyframes ft-table { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ft-peri { 0% { transform: translateX(0) rotate(-2deg); } 33% { transform: translateX(8px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ft-thai { 0% { transform: translateX(0) rotate(1deg); } 33% { transform: translateX(-6px) rotate(-2deg); } 66% { transform: translateX(4px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ft-letter { 0% { opacity: 0.6; transform: translateY(0) rotate(0deg) scale(0.9); } 50% { opacity: 1; transform: translateY(-10px) rotate(-3deg) scale(1.1); } 100% { opacity: 0.8; transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes ft-lantern { 0% { opacity: 0.8; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.9; transform: scale(1); } }

/* Scene 4: pentapolis-marriage-news */
.scn-pentapolis-marriage-news {
  background: linear-gradient(180deg, #e0d8c8 0%, #c8b8a0 40%, #a89878 100%),
              radial-gradient(ellipse at 50% 20%, #f0e8d8 0%, transparent 60%);
}
.scn-pentapolis-marriage-news .bg-columns {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(90deg, #c8b8a0 0%, #c8b8a0 6%, transparent 6%, transparent 14%);
  opacity: 0.3;
  animation: pm-columns 30s linear infinite;
}
.scn-pentapolis-marriage-news .throne {
  position: absolute;
  bottom: 20%;
  left: 42%;
  width: 16%;
  height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-pentapolis-marriage-news .hel-hel {
  position: absolute;
  bottom: 18%;
  left: 38%;
  width: 10%;
  height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: pm-hel 5s ease-in-out infinite;
}
.scn-pentapolis-marriage-news .lord {
  position: absolute;
  bottom: 15%;
  width: 8%;
  height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 20% 20%;
  animation: pm-lord 4s ease-in-out infinite;
}
.scn-pentapolis-marriage-news .lord-a { left: 55%; animation-delay: 0s; }
.scn-pentapolis-marriage-news .lord-b { left: 65%; animation-delay: 0.5s; }
.scn-pentapolis-marriage-news .lightray {
  position: absolute;
  top: 0;
  left: 45%;
  width: 10%;
  height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.6) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: pm-ray 12s ease-in-out infinite alternate;
}
@keyframes pm-columns { 0% { background-position: 0 0; } 100% { background-position: 100% 0; } }
@keyframes pm-hel { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-6px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes pm-lord { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes pm-ray { 0% { opacity: 0.5; transform: scaleY(0.9); } 50% { opacity: 0.8; transform: scaleY(1.1); } 100% { opacity: 0.6; transform: scaleY(1); } }

/* Scene: ship-recognition-joy */
.scn-ship-recognition-joy {
  background: 
    linear-gradient(180deg, #0b1a2e 0%, #1a3a5a 40%, #2a4a6a 100%),
    radial-gradient(ellipse at 50% 0%, #3a6a8a 0%, transparent 70%);
}
.scn-ship-recognition-joy .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0b1a2e 0%, #1a3a5a 80%);
  animation: sh-sky 12s ease-in-out infinite alternate;
}
.scn-ship-recognition-joy .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a3a5a 0%, #0a1a2e 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: sh-sea 8s ease-in-out infinite alternate;
}
.scn-ship-recognition-joy .moon {
  position: absolute; top: 8%; left: 28%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d0e0f0 0%, #a0b8d0 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(160,184,208,.4), 0 0 100px 40px rgba(160,184,208,.2);
  animation: sh-moon 6s ease-in-out infinite alternate;
}
.scn-ship-recognition-joy .ship-hull {
  position: absolute; bottom: 42%; left: 50%; width: 120px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 0 0 40% 40% / 0 0 80% 80%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-ship-recognition-joy .mast {
  position: absolute; bottom: 68%; left: 50%; width: 6px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(0deg, #1a0a00 0%, #2a1a0a 100%);
  border-radius: 2px;
}
.scn-ship-recognition-joy .sail-left {
  position: absolute; bottom: 60%; left: 44%; width: 50px; height: 40px;
  transform: rotate(-10deg);
  background: linear-gradient(180deg, rgba(200,190,170,.7) 0%, rgba(150,140,120,.5) 100%);
  border-radius: 30% 10% 50% 20% / 40% 20% 60% 30%;
  animation: sh-sail 10s ease-in-out infinite alternate;
}
.scn-ship-recognition-joy .sail-right {
  position: absolute; bottom: 58%; left: 54%; width: 55px; height: 45px;
  transform: rotate(5deg);
  background: linear-gradient(180deg, rgba(200,190,170,.7) 0%, rgba(150,140,120,.5) 100%);
  border-radius: 10% 30% 20% 50% / 20% 40% 30% 60%;
  animation: sh-sail 12s ease-in-out infinite alternate-reverse;
}
.scn-ship-recognition-joy .figures-embrace {
  position: absolute; bottom: 38%; left: 48%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 4px 6px rgba(255,255,255,.1);
  animation: sh-figures 4s ease-in-out infinite alternate;
}
.scn-ship-recognition-joy .lantern-glow {
  position: absolute; bottom: 44%; left: 38%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0c060 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(240,192,96,.6), 0 0 40px 16px rgba(240,192,96,.3);
  animation: sh-lantern 3s ease-in-out infinite alternate;
}
@keyframes sh-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes sh-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes sh-moon { 0% { box-shadow: 0 0 50px 15px rgba(160,184,208,.3); opacity:.9 } 50% { box-shadow: 0 0 80px 25px rgba(160,184,208,.6); opacity:1 } 100% { box-shadow: 0 0 60px 20px rgba(160,184,208,.4); opacity:.95 } }
@keyframes sh-sail { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(-5deg) scale(1.02) } 100% { transform: rotate(-12deg) scale(0.98) } }
@keyframes sh-figures { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } 100% { transform: translateX(-50%) translateY(1px) rotate(-1deg) } }
@keyframes sh-lantern { 0% { opacity:.7; box-shadow: 0 0 15px 5px rgba(240,192,96,.4) } 50% { opacity:1; box-shadow: 0 0 30px 12px rgba(240,192,96,.7) } 100% { opacity:.8; box-shadow: 0 0 20px 8px rgba(240,192,96,.5) } }

/* Scene: ephesus-temple-reunion */
.scn-ephesus-temple-reunion {
  background: 
    linear-gradient(180deg, #f5efe0 0%, #e8dcc8 50%, #d0c4a8 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e8 0%, transparent 70%);
}
.scn-ephesus-temple-reunion .temple-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #d4c8b0 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.1);
  animation: et-bg 20s ease-in-out infinite alternate;
}
.scn-ephesus-temple-reunion .temple-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #b8ac98 0%, #d0c4b0 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.2);
}
.scn-ephesus-temple-reunion .column-left {
  position: absolute; bottom: 20%; left: 10%; width: 30px; height: 120px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d8ccb0 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 0 0 2px #c0b498, 2px 0 8px rgba(0,0,0,.15);
  animation: et-column 8s ease-in-out infinite alternate;
}
.scn-ephesus-temple-reunion .column-right {
  position: absolute; bottom: 20%; right: 10%; width: 30px; height: 120px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d8ccb0 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 0 0 2px #c0b498, -2px 0 8px rgba(0,0,0,.15);
  animation: et-column 8s ease-in-out infinite alternate-reverse;
}
.scn-ephesus-temple-reunion .altar {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f5edd0 0%, #d8c8a0 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%;
  box-shadow: 0 4px 12px rgba(0,0,0,.2), inset 0 2px 4px #fff;
  animation: et-altar 6s ease-in-out infinite alternate;
}
.scn-ephesus-temple-reunion .figures-group {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  box-shadow: inset 0 4px 8px rgba(255,255,200,.1);
  animation: et-figures 4s ease-in-out infinite alternate;
}
.scn-ephesus-temple-reunion .sunbeam {
  position: absolute; top: 0; left: 40%; width: 60px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,220,.3) 0%, transparent 100%);
  transform: skewX(-15deg);
  filter: blur(12px);
  animation: et-sunbeam 10s ease-in-out infinite alternate;
}
.scn-ephesus-temple-reunion .diana-statue {
  position: absolute; bottom: 40%; left: 50%; width: 20px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8dcc0 0%, #c0b498 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 25% 25%;
  box-shadow: 0 0 0 2px #a89c88;
  animation: et-statue 12s ease-in-out infinite alternate;
}
@keyframes et-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes et-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(0.995) } }
@keyframes et-altar { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(1px) } }
@keyframes et-figures { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(1px) rotate(-1deg) } }
@keyframes et-sunbeam { 0% { opacity:.4; transform: skewX(-15deg) scaleX(1) } 50% { opacity:.7; transform: skewX(-12deg) scaleX(1.1) } 100% { opacity:.5; transform: skewX(-18deg) scaleX(0.95) } }
@keyframes et-statue { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }

/* Scene: ephesus-familys-future */
.scn-ephesus-familys-future {
  background: 
    linear-gradient(180deg, #f8f0e0 0%, #e0d4c0 50%, #c8bca8 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%);
}
.scn-ephesus-familys-future .temple-interior {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #efe6d5 0%, #d8ccb8 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.08);
}
.scn-ephesus-familys-future .window-arch {
  position: absolute; top: 5%; left: 35%; width: 100px; height: 140px;
  background: radial-gradient(ellipse at 50% 0%, #c0b8a8 0%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: inset 0 0 0 6px #a89c88, 0 0 40px 20px rgba(255,220,180,.3);
  animation: ef-window 10s ease-in-out infinite alternate;
}
.scn-ephesus-familys-future .light-rays {
  position: absolute; top: -5%; left: 30%; width: 160px; height: 200%;
  background: linear-gradient(180deg, rgba(255,240,210,.25) 0%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%);
  filter: blur(20px);
  animation: ef-rays 12s ease-in-out infinite alternate;
}
.scn-ephesus-familys-future .figure-pericles {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 55px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  animation: ef-figures 5s ease-in-out infinite alternate;
}
.scn-ephesus-familys-future .figure-thaisa {
  position: absolute; bottom: 20%; left: 45%; width: 26px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  animation: ef-figures 6s ease-in-out infinite alternate-reverse;
}
.scn-ephesus-familys-future .figure-marina {
  position: absolute; bottom: 16%; left: 55%; width: 24px; height: 48px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  animation: ef-figures 4.5s ease-in-out infinite alternate;
}
.scn-ephesus-familys-future .figure-lysimachus {
  position: absolute; bottom: 20%; left: 65%; width: 28px; height: 52px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  animation: ef-figures 6.5s ease-in-out infinite alternate-reverse;
}
.scn-ephesus-familys-future .dust-motes {
  position: absolute; top: 10%; left: 20%; width: 100%; height: 80%;
  background: radial-gradient(circle at 30% 40%, rgba(255,240,210,.15) 0%, transparent 50%);
  background-size: 30px 30px;
  animation: ef-dust 30s linear infinite;
}
@keyframes ef-window { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ef-rays { 0% { opacity:.4; transform: rotate(0deg) } 50% { opacity:.7; transform: rotate(2deg) } 100% { opacity:.5; transform: rotate(-1deg) } }
@keyframes ef-figures { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(1px) rotate(-1deg) } }
@keyframes ef-dust { 0% { background-position: 0 0 } 100% { background-position: 100px 100px } }

.scn-tyre-regency-tarsus-plan {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #3a2a22 40%, #4a3a32 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a32 0%, transparent 60%);
}
.scn-tyre-regency-tarsus-plan .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1f1a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  animation: trp-wall 20s ease-in-out infinite alternate;
}
.scn-tyre-regency-tarsus-plan .bg-floor {
  position: absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1f1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: trp-floor 25s ease-in-out infinite alternate;
}
.scn-tyre-regency-tarsus-plan .table {
  position: absolute; bottom:20%; left:30%; width:150px; height:60px;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2a1a 100%);
  border-radius: 5% 5% 3% 3%;
  transform: perspective(200px) rotateX(10deg);
  box-shadow: 0 10px 20px rgba(0,0,0,.6);
  animation: trp-table 15s ease-in-out infinite;
}
.scn-tyre-regency-tarsus-plan .scroll {
  position: absolute; bottom:32%; left:40%; width:80px; height:10px;
  background: linear-gradient(90deg, #c8b090 0%, #e0d0b0 50%, #c8b090 100%);
  border-radius: 5px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: trp-scroll 8s ease-in-out infinite;
}
.scn-tyre-regency-tarsus-plan .pericles {
  position: absolute; bottom:22%; left:45%; width:30px; height:70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: trp-figure-1 6s ease-in-out infinite;
}
.scn-tyre-regency-tarsus-plan .helikanus {
  position: absolute; bottom:22%; left:30%; width:28px; height:68px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: trp-figure-2 7s ease-in-out infinite 0.5s;
}
.scn-tyre-regency-tarsus-plan .lantern {
  position: absolute; bottom:45%; left:25%; width:12px; height:16px;
  background: radial-gradient(circle, #e0b060 0%, #a08040 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(200,160,80,.5), 0 0 60px 15px rgba(200,160,80,.3);
  animation: trp-lantern 4s ease-in-out infinite alternate;
}
.scn-tyre-regency-tarsus-plan .shadow-pool {
  position: absolute; bottom:10%; left:25%; width:200px; height:40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: trp-shadow 12s ease-in-out infinite;
}

@keyframes trp-wall {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes trp-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes trp-table {
  0%, 100% { transform: perspective(200px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(10deg) translateY(-1px); }
}
@keyframes trp-scroll {
  0%, 100% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(3px); }
}
@keyframes trp-figure-1 {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes trp-figure-2 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes trp-lantern {
  0% { box-shadow: 0 0 20px 5px rgba(200,160,80,.4), 0 0 40px 10px rgba(200,160,80,.2); opacity: .8; }
  50% { box-shadow: 0 0 40px 12px rgba(220,180,100,.6), 0 0 80px 20px rgba(220,180,100,.3); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px rgba(200,160,80,.5), 0 0 50px 12px rgba(200,160,80,.25); opacity: .85; }
}
@keyframes trp-shadow {
  0% { transform: scaleX(1); opacity: .5; }
  50% { transform: scaleX(1.1); opacity: .6; }
  100% { transform: scaleX(1); opacity: .5; }
}

/* Scene 2: tyre-thaliard-deflected – tense, window-lit */
.scn-tyre-thaliard-deflected {
  background: 
    linear-gradient(180deg, #3a2a2a 0%, #4a3a3a 40%, #5a4a4a 100%),
    radial-gradient(ellipse at 60% 20%, #6a5a5a 0%, transparent 60%);
}
.scn-tyre-thaliard-deflected .bg-wall-td {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.7);
  animation: ttd-wall 15s ease-in-out infinite alternate;
}
.scn-tyre-thaliard-deflected .bg-floor-td {
  position: absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: ttd-floor 20s ease-in-out infinite alternate;
}
.scn-tyre-thaliard-deflected .window-td {
  position: absolute; top:20%; right:15%; width:60px; height:80px;
  background: radial-gradient(ellipse at 50% 50%, #f0e0c0 0%, #d0b090 70%);
  border: 6px solid #5a4a3a;
  border-radius: 5%;
  box-shadow: inset 0 0 20px rgba(255,255,200,.6), 0 0 40px 10px rgba(255,200,150,.4);
  animation: ttd-window 8s ease-in-out infinite alternate;
}
.scn-tyre-thaliard-deflected .helikanus-td {
  position: absolute; bottom:22%; left:20%; width:30px; height:70px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: ttd-helikanus 4s ease-in-out infinite;
}
.scn-tyre-thaliard-deflected .thaliard-td {
  position: absolute; bottom:22%; right:35%; width:30px; height:70px;
  background: linear-gradient(180deg, #5a3a3a 0%, #3a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: ttd-thaliard 3.5s ease-in-out infinite 0.5s;
}
.scn-tyre-thaliard-deflected .spear-td {
  position: absolute; bottom:25%; right:38%; width:4px; height:50px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: ttd-spear 2s ease-in-out infinite alternate;
}
.scn-tyre-thaliard-deflected .shadow-td {
  position: absolute; bottom:10%; left:15%; width:250px; height:30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: ttd-shadow 10s ease-in-out infinite;
}

@keyframes ttd-wall {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes ttd-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes ttd-window {
  0% { box-shadow: inset 0 0 15px rgba(255,255,200,.4), 0 0 25px 5px rgba(255,200,150,.3); }
  50% { box-shadow: inset 0 0 25px rgba(255,255,200,.8), 0 0 50px 15px rgba(255,200,150,.5); }
  100% { box-shadow: inset 0 0 20px rgba(255,255,200,.5), 0 0 30px 8px rgba(255,200,150,.35); }
}
@keyframes ttd-helikanus {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes ttd-thaliard {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes ttd-spear {
  0% { transform: rotate(8deg); }
  50% { transform: rotate(12deg); }
  100% { transform: rotate(8deg); }
}
@keyframes ttd-shadow {
  0% { transform: scaleX(1); opacity: .5; }
  50% { transform: scaleX(1.2); opacity: .7; }
  100% { transform: scaleX(1); opacity: .5; }
}

/* Scene 3: tarsus-famine-gratitude – dark, overcast */
.scn-tarsus-famine-gratitude {
  background: 
    linear-gradient(180deg, #3a3a3a 0%, #4a4a3a 40%, #5a5a4a 100%),
    radial-gradient(ellipse at 50% 100%, #5a5a4a 0%, transparent 60%);
}
.scn-tarsus-famine-gratitude .sky-tg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 100%);
  filter: blur(2px);
  animation: tfg-sky 30s ease-in-out infinite alternate;
}
.scn-tarsus-famine-gratitude .ground-tg {
  position: absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a3a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  animation: tfg-ground 25s ease-in-out infinite alternate;
}
.scn-tarsus-famine-gratitude .city-wall-tg {
  position: absolute; bottom:38%; left:10%; right:10%; height:15%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.5);
  animation: tfg-wall 20s ease-in-out infinite;
}
.scn-tarsus-famine-gratitude .cleon-tg {
  position: absolute; bottom:25%; left:30%; width:28px; height:65px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: tfg-cleon 8s ease-in-out infinite;
}
.scn-tarsus-famine-gratitude .dionyza-tg {
  position: absolute; bottom:25%; left:40%; width:26px; height:62px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: tfg-dionyza 9s ease-in-out infinite 0.5s;
}
.scn-tarsus-famine-gratitude .ship-tg {
  position: absolute; bottom:50%; left:5%; width:80px; height:30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: rotate(-5deg);
  animation: tfg-ship 40s linear infinite;
}
.scn-tarsus-famine-gratitude .flag-tg {
  position: absolute; bottom:70%; left:12%; width:12px; height:20px;
  background: #a08060;
  border-radius: 0 0 20% 20%;
  transform: rotate(10deg);
  animation: tfg-flag 6s ease-in-out infinite;
}
.scn-tarsus-famine-gratitude .dust-tg {
  position: absolute; bottom:30%; left:20%; width:200px; height:60px;
  background: radial-gradient(ellipse at 30% 50%, rgba(100,80,40,.3) 0%, transparent 70%);
  filter: blur(20px);
  animation: tfg-dust 15s ease-in-out infinite alternate;
}

@keyframes tfg-sky {
  0% { opacity: .7; }
  50% { opacity: .85; }
  100% { opacity: .7; }
}
@keyframes tfg-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes tfg-wall {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes tfg-cleon {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tfg-dionyza {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes tfg-ship {
  0% { transform: rotate(-5deg) translateX(0); opacity: .6; }
  25% { transform: rotate(-3deg) translateX(10px); opacity: .8; }
  50% { transform: rotate(-5deg) translateX(20px); opacity: .6; }
  75% { transform: rotate(-4deg) translateX(30px); opacity: .7; }
  100% { transform: rotate(-5deg) translateX(40px); opacity: .6; }
}
@keyframes tfg-flag {
  0% { transform: rotate(5deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(5deg); }
}
@keyframes tfg-dust {
  0% { transform: translateX(0); opacity: .3; }
  50% { transform: translateX(20px); opacity: .5; }
  100% { transform: translateX(0); opacity: .3; }
}

/* Scene 4: item-armor-washed-ashore – warm, dawn */
.scn-item-armor-washed-ashore {
  background: 
    linear-gradient(180deg, #f0d0a0 0%, #d0b080 40%, #a08060 100%),
    radial-gradient(ellipse at 50% 100%, #c09870 0%, transparent 70%);
}
.scn-item-armor-washed-ashore .sky-ia {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0d8c0 0%, #e0c0a0 40%, #d0b090 100%);
  animation: ia-sky 30s ease-in-out infinite alternate;
}
.scn-item-armor-washed-ashore .sea-ia {
  position: absolute; bottom:20%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #b0a090 0%, #a08070 40%, #907060 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: ia-sea 20s ease-in-out infinite alternate;
}
.scn-item-armor-washed-ashore .sand-ia {
  position: absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #c8b090 0%, #b8a080 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 5px 10px rgba(0,0,0,.2);
  animation: ia-sand 25s ease-in-out infinite alternate;
}
.scn-item-armor-washed-ashore .armor-ia {
  position: absolute; bottom:20%; left:30%; width:40px; height:50px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4), inset 0 2px 4px rgba(255,200,150,.4);
  transform: rotate(-15deg);
  animation: ia-armor 10s ease-in-out infinite;
}
.scn-item-armor-washed-ashore .pericles-ia {
  position: absolute; bottom:15%; left:50%; width:35px; height:70px;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: ia-pericles 8s ease-in-out infinite;
}
.scn-item-armor-washed-ashore .wreckage-ia {
  position: absolute; bottom:18%; left:15%; width:60px; height:20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 50% 30% 10%;
  transform: rotate(30deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: ia-wreck 15s ease-in-out infinite alternate;
}
.scn-item-armor-washed-ashore .dawn-glow-ia {
  position: absolute; top:10%; left:20%; right:20%; height:30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,100,.4) 0%, transparent 70%);
  filter: blur(20px);
  animation: ia-glow 12s ease-in-out infinite alternate;
}
.scn-item-armor-washed-ashore .foam-ia {
  position: absolute; bottom:20%; left:0; right:0; height:10%;
  background: radial-gradient(ellipse at 30% 50%, rgba(240,230,210,.5) 0%, transparent 50%);
  filter: blur(10px);
  animation: ia-foam 8s ease-in-out infinite alternate;
}

@keyframes ia-sky {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes ia-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ia-sand {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ia-armor {
  0%, 100% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-13deg) translateY(-2px); }
}
@keyframes ia-pericles {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ia-wreck {
  0% { transform: rotate(28deg) translateX(0); }
  50% { transform: rotate(32deg) translateX(5px); }
  100% { transform: rotate(28deg) translateX(0); }
}
@keyframes ia-glow {
  0% { opacity: .4; }
  50% { opacity: .7; }
  100% { opacity: .4; }
}
@keyframes ia-foam {
  0% { opacity: .3; transform: scaleX(1); }
  50% { opacity: .6; transform: scaleX(1.1); }
  100% { opacity: .3; transform: scaleX(1); }
}

.scn-antioch-palace-riddle { background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 30%, #b8a080 60%, #8a7050 100%), radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 70%); }
.scn-antioch-palace-riddle .bg-columns { position:absolute; inset:0 0 0 0; background: repeating-linear-gradient(90deg, transparent 0, transparent 60px, #c8b898 60px, #c8b898 62px, transparent 62px, transparent 140px); opacity:.35; }
.scn-antioch-palace-riddle .bg-throne-wall { position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:120px; height:60%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius:4px; box-shadow: inset 0 0 40px rgba(0,0,0,.3); }
.scn-antioch-palace-riddle .throne { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:70px; height:90px; background: linear-gradient(135deg, #c8a060 0%, #a08040 50%, #806030 100%); border-radius:30% 30% 10% 10%; box-shadow: 8px 8px 20px rgba(0,0,0,.4), inset 0 0 20px rgba(255,215,140,.2); }
.scn-antioch-palace-riddle .daughter { position:absolute; bottom:22%; left:46%; transform:translateX(-50%); width:22px; height:50px; background: linear-gradient(180deg, #f0d8c0 0%, #c8a888 40%, #8a6050 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(255,220,180,.3); animation: ap1-figure 6s ease-in-out infinite; }
.scn-antioch-palace-riddle .king { position:absolute; bottom:20%; left:52%; transform:translateX(-50%); width:30px; height:65px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 2px 0 8px rgba(0,0,0,.5); animation: ap1-king 8s ease-in-out infinite; }
.scn-antioch-palace-riddle .pericles { position:absolute; bottom:18%; left:30%; width:20px; height:52px; background: linear-gradient(180deg, #4a6a8a 0%, #2a3a5a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap1-bow 10s ease-in-out infinite; }
.scn-antioch-palace-riddle .torch { position:absolute; bottom:50%; width:6px; height:40px; background: linear-gradient(0deg, #5a3a1a 0%, #8a5a2a 50%, #c08040 100%); border-radius:2px; }
.scn-antioch-palace-riddle .torch-l { left:20%; animation: ap1-flicker 3s ease-in-out infinite; }
.scn-antioch-palace-riddle .torch-r { right:20%; animation: ap1-flicker 3.5s ease-in-out infinite 1.5s; }
.scn-antioch-palace-riddle .torch::after { content:''; position:absolute; top:-10px; left:50%; transform:translateX(-50%); width:14px; height:16px; background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, transparent 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 24px 8px rgba(255,160,64,.5), 0 0 48px 16px rgba(255,160,64,.2); animation: ap1-flame 2s ease-in-out infinite alternate; }
.scn-antioch-palace-riddle .dust { position:absolute; inset:0; background: radial-gradient(circle at 40% 40%, rgba(255,240,220,.15) 0%, transparent 50%), radial-gradient(circle at 70% 30%, rgba(255,240,220,.1) 0%, transparent 40%); animation: ap1-dust 30s ease-in-out infinite alternate; }
@keyframes ap1-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } }
@keyframes ap1-king { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0); } 30% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 70% { transform: translateX(-50%) translateY(0) rotate(1deg); } }
@keyframes ap1-bow { 0%,100% { transform: translateX(0) translateY(0) rotate(-5deg); } 40% { transform: translateX(4px) translateY(-2px) rotate(-2deg); } 80% { transform: translateX(-2px) translateY(0) rotate(2deg); } }
@keyframes ap1-flicker { 0%,100% { opacity:.9; } 50% { opacity:1; } 25%,75% { opacity:.85; } }
@keyframes ap1-flame { 0% { transform: translateX(-50%) scale(1) rotate(0); } 50% { transform: translateX(-50%) scale(1.15,1.05) rotate(6deg); } 100% { transform: translateX(-50%) scale(.9,1.1) rotate(-4deg); } }
@keyframes ap1-dust { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.5; transform: scale(1.05); } 100% { opacity:.4; transform: scale(.98); } }

.scn-riddle-horror-discovery { background: linear-gradient(180deg, #1a1828 0%, #2a2030 30%, #1a1020 60%, #0a0810 100%), radial-gradient(ellipse at 50% 50%, #2a2030 0%, transparent 70%); }
.scn-riddle-horror-discovery .bg-vault { position:absolute; inset:10% 5% 10% 5%; background: repeating-linear-gradient(0deg, transparent 0, transparent 60px, #2a1a20 60px, #2a1a20 62px, transparent 62px, transparent 80px); border-radius:8px; opacity:.4; box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-riddle-horror-discovery .scroll { position:absolute; top:40%; left:50%; transform:translate(-50%,-50%); width:80px; height:100px; background: linear-gradient(135deg, #c8b080 0%, #a08860 40%, #806040 100%); border-radius:4px 4px 40px 40px; box-shadow: 0 0 30px rgba(200,176,128,.5), inset 0 0 20px rgba(0,0,0,.3); animation: rh1-scroll 12s ease-in-out infinite; }
.scn-riddle-horror-discovery .pericles-recoil { position:absolute; bottom:20%; left:35%; width:24px; height:56px; background: linear-gradient(180deg, #3a4a6a 0%, #1a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: rh1-recoil 8s ease-in-out infinite; }
.scn-riddle-horror-discovery .shadow-king { position:absolute; bottom:20%; left:58%; width:34px; height:68px; background: linear-gradient(180deg, #0a0a12 0%, #000000 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; opacity:.8; animation: rh1-shadow 10s ease-in-out infinite; }
.scn-riddle-horror-discovery .shadow-daughter { position:absolute; bottom:22%; left:52%; width:20px; height:48px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.7; animation: rh1-shadow 10s ease-in-out infinite 2s; }
.scn-riddle-horror-discovery .candle { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:6px; height:30px; background: linear-gradient(0deg, #3a2a1a 0%, #5a3a2a 100%); border-radius:2px; }
.scn-riddle-horror-discovery .candle::after { content:''; position:absolute; top:-8px; left:50%; transform:translateX(-50%); width:10px; height:12px; background: radial-gradient(circle, #ffc060 0%, #ff8030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(255,128,48,.6), 0 0 40px 12px rgba(255,128,48,.3); animation: rh1-flame 2.5s ease-in-out infinite alternate; }
.scn-riddle-horror-discovery .drip { position:absolute; width:4px; height:6px; background: linear-gradient(180deg, #604020 0%, #402010 100%); border-radius:50%; opacity:.7; }
.scn-riddle-horror-discovery .drip-l { bottom:18%; left:46%; animation: rh1-drip 6s ease-in-out infinite; }
.scn-riddle-horror-discovery .drip-r { bottom:16%; right:44%; animation: rh1-drip 6s ease-in-out infinite 3s; }
@keyframes rh1-scroll { 0%,100% { transform: translate(-50%,-50%) scale(1) rotate(0); } 30% { transform: translate(-50%,-50%) scale(1.02) rotate(1deg); } 70% { transform: translate(-50%,-50%) scale(.98) rotate(-1deg); } }
@keyframes rh1-recoil { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 20% { transform: translateX(-8px) translateY(-4px) rotate(-10deg); } 40% { transform: translateX(-4px) translateY(-2px) rotate(-5deg); } 60% { transform: translateX(2px) translateY(0) rotate(2deg); } 80% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } }
@keyframes rh1-shadow { 0%,100% { transform: translateX(0) translateY(0) scale(1); opacity:.8; } 30% { transform: translateX(2px) translateY(-2px) scale(1.02); opacity:.9; } 70% { transform: translateX(-1px) translateY(0) scale(.98); opacity:.7; } }
@keyframes rh1-flame { 0% { transform: translateX(-50%) scale(1) rotate(-3deg); } 50% { transform: translateX(-50%) scale(1.2,1.1) rotate(0); } 100% { transform: translateX(-50%) scale(.9,1.05) rotate(4deg); } }
@keyframes rh1-drip { 0% { transform: translateY(0) scale(1); opacity:.7; } 30% { transform: translateY(8px) scale(.8); opacity:.2; } 100% { transform: translateY(20px) scale(.5); opacity:0; } }

.scn-antioch-flight-orders { background: linear-gradient(180deg, #1a1820 0%, #2a2030 30%, #1a1820 60%, #0a0810 100%), radial-gradient(ellipse at 50% 30%, #3a2840 0%, transparent 70%); }
.scn-antioch-flight-orders .bg-chamber { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0, transparent 100px, #1a1020 100px, #1a1020 102px, transparent 102px, transparent 120px); opacity:.3; }
.scn-antioch-flight-orders .king-thaliard { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:30px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: af1-king 8s ease-in-out infinite; }
.scn-antioch-flight-orders .pericles-figure { position:absolute; bottom:18%; left:30%; width:22px; height:54px; background: linear-gradient(180deg, #2a3a5a 0%, #0a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: af1-pericles 10s ease-in-out infinite; }
.scn-antioch-flight-orders .table { position:absolute; bottom:14%; left:50%; transform:translateX(-50%); width:100px; height:12px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-antioch-flight-orders .scroll-riddle { position:absolute; bottom:18%; left:50%; transform:translateX(-50%); width:50px; height:18px; background: linear-gradient(90deg, #c8b080 0%, #a08860 50%, #c8b080 100%); border-radius:2px; box-shadow: 0 0 12px rgba(200,176,128,.3); animation: af1-scroll 6s ease-in-out infinite; }
.scn-antioch-flight-orders .brazier { position:absolute; bottom:10%; left:20%; width:24px; height:30px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2212 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 20px rgba(255,128,32,.3); }
.scn-antioch-flight-orders .brazier::before { content:''; position:absolute; top:-14px; left:50%; transform:translateX(-50%); width:20px; height:20px; background: radial-gradient(circle, #ff9040 0%, #ff6020 40%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,96,32,.5), 0 0 60px 20px rgba(255,96,32,.2); animation: af1-brazier 3s ease-in-out infinite alternate; }
.scn-antioch-flight-orders .smoke { position:absolute; bottom:32%; width:20px; height:12px; background: linear-gradient(180deg, rgba(180,160,140,.2) 0%, transparent 100%); border-radius:50%; filter:blur(6px); }
.scn-antioch-flight-orders .smoke-a { left:18%; animation: af1-smoke 12s ease-in-out infinite; }
.scn-antioch-flight-orders .smoke-b { left:22%; animation: af1-smoke 12s ease-in-out infinite 6s; }
@keyframes af1-king { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0); } 30% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); } 70% { transform: translateX(-50%) translateY(0) rotate(2deg); } }
@keyframes af1-pericles { 0%,100% { transform: translateX(0) translateY(0) rotate(5deg); } 40% { transform: translateX(-6px) translateY(-3px) rotate(8deg); } 80% { transform: translateX(3px) translateY(0) rotate(-2deg); } }
@keyframes af1-scroll { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05,1.02); } }
@keyframes af1-brazier { 0% { transform: translateX(-50%) scale(1) rotate(-2deg); } 50% { transform: translateX(-50%) scale(1.1,1.05) rotate(0); } 100% { transform: translateX(-50%) scale(.95,1.02) rotate(3deg); } }
@keyframes af1-smoke { 0% { transform: translateY(0) scale(1); opacity:.5; } 50% { transform: translateY(-30px) scale(1.5); opacity:.2; } 100% { transform: translateY(-60px) scale(2); opacity:0; } }

.scn-tyre-pericles-council { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 30%, #1a1a2a 60%, #0a0a1a 100%), radial-gradient(ellipse at 50% 40%, #2a2a4a 0%, transparent 70%); }
.scn-tyre-pericles-council .bg-hall { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0, transparent 80px, #1a1a2e 80px, #1a1a2e 82px, transparent 82px, transparent 100px); opacity:.25; }
.scn-tyre-pericles-council .pericles-seated { position:absolute; bottom:22%; left:38%; transform:translateX(-50%); width:26px; height:50px; background: linear-gradient(180deg, #2a3a5a 0%, #0a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 12px rgba(0,0,0,.4); animation: tp1-pericles 10s ease-in-out infinite; }
.scn-tyre-pericles-council .hellicanus { position:absolute; bottom:22%; left:55%; transform:translateX(-50%); width:24px; height:48px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 12px rgba(0,0,0,.4); animation: tp1-hellicanus 10s ease-in-out infinite 2s; }
.scn-tyre-pericles-council .table-map { position:absolute; bottom:16%; left:50%; transform:translateX(-50%); width:110px; height:14px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-tyre-pericles-council .table-map::after { content:''; position:absolute; top:2px; left:15px; right:15px; bottom:2px; background: linear-gradient(135deg, #6a5a3a 0%, #5a4a2a 50%, #6a5a3a 100%); border-radius:1px; opacity:.6; }
.scn-tyre-pericles-council .candle-pair { position:absolute; bottom:16%; left:50%; transform:translateX(-50%); width:4px; height:20px; background: linear-gradient(0deg, #3a2a1a 0%, #5a3a2a 100%); border-radius:1px; box-shadow: 8px 0 0 #3a2a1a, -8px 0 0 #3a2a1a; }
.scn-tyre-pericles-council .candle-pair::after { content:''; position:absolute; top:-6px; left:50%; transform:translateX(-50%); width:8px; height:10px; background: radial-gradient(circle, #ffc060 0%, #ff8030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 16px 4px rgba(255,128,48,.4), 0 0 32px 8px rgba(255,128,48,.2), 8px -2px 0 4px rgba(255,128,48,.15), -8px -2px 0 4px rgba(255,128,48,.15); animation: tp1-candle 3s ease-in-out infinite alternate; }
.scn-tyre-pericles-council .window-arch { position:absolute; top:10%; right:12%; width:50px; height:70px; border:2px solid #3a3a5a; border-radius:50% 50% 4px 4% / 60% 60% 4px 4%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 100%); box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-tyre-pericles-council .window-arch::before { content:''; position:absolute; top:8px; left:8px; right:8px; bottom:8px; border:1px solid #2a2a4a; border-radius:50% 50% 2px 2px / 60% 60% 2px 2px; background: linear-gradient(135deg, #0a0a1a 40%, #1a2a4a 60%, #0a0a1a 80%); animation: tp1-stars 8s ease-in-out infinite alternate; }
.scn-tyre-pericles-council .shadow-move { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 40%, rgba(0,0,0,.15) 0%, transparent 50%), radial-gradient(ellipse at 20% 70%, rgba(0,0,0,.1) 0%, transparent 40%); animation: tp1-shadow 20s ease-in-out infinite alternate; }
.scn-tyre-pericles-council .dust-mote { position:absolute; top:30%; left:40%; width:4px; height:4px; background: rgba(255,240,200,.2); border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,240,200,.1); animation: tp1-mote 15s ease-in-out infinite; }
@keyframes tp1-pericles { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 40% { transform: translateX(-50%) translateY(-2px) rotate(0); } 80% { transform: translateX(-50%) translateY(0) rotate(3deg); } }
@keyframes tp1-hellicanus { 0%,100% { transform: translateX(-50%) translateY(0) rotate(2deg); } 30% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } 70% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes tp1-candle { 0% { transform: translateX(-50%) scale(1) rotate(-3deg); } 50% { transform: translateX(-50%) scale(1.1,1.05) rotate(0); } 100% { transform: translateX(-50%) scale(.95,1.02) rotate(2deg); } }
@keyframes tp1-stars { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }
@keyframes tp1-shadow { 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.4; } }
@keyframes tp1-mote { 0% { transform: translate(0,0) scale(1); opacity:.3; } 25% { transform: translate(10px,-8px) scale(1.2); opacity:.5; } 50% { transform: translate(5px,-15px) scale(.8); opacity:.2; } 75% { transform: translate(-8px,-5px) scale(1.1); opacity:.4; } 100% { transform: translate(0,0) scale(1); opacity:.3; } }

/* storm-marina-birth */
.scn-storm-marina-birth {
  background: linear-gradient(180deg, #0b0d2a 0%, #1a1c4e 40%, #2a2c5e 70%, #14163a 100%), radial-gradient(ellipse at 50% 0%, #3a4a7a 0%, transparent 70%);
}
.scn-storm-marina-birth .sky-storm {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1a1c4e 0%, #0b0d2a 50%, #2a2c5e 100%);
  animation: s1-skydark 12s ease-in-out infinite alternate;
}
.scn-storm-marina-birth .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 50%, #050e1a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: s1-wave 8s ease-in-out infinite alternate;
}
.scn-storm-marina-birth .ship {
  position: absolute; bottom: 30%; left: 35%; width: 120px; height: 50px;
  background: linear-gradient(90deg, #2a1a1a 0%, #4a2a2a 50%, #2a1a1a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
  transform-origin: bottom center;
  animation: s1-rock 6s ease-in-out infinite;
}
.scn-storm-marina-birth .mast {
  position: absolute; bottom: 40%; left: 55%; width: 6px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a0a);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: s1-sway 5s ease-in-out infinite;
}
.scn-storm-marina-birth .sail {
  position: absolute; bottom: 44%; left: 48%; width: 40px; height: 60px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  transform-origin: bottom left;
  animation: s1-billow 7s ease-in-out infinite alternate;
}
.scn-storm-marina-birth .lightning {
  position: absolute; top: 15%; left: 20%; width: 3px; height: 80px;
  background: linear-gradient(180deg, rgba(200,220,255,1) 0%, rgba(200,220,255,.8) 20%, transparent 100%);
  filter: blur(1px);
  animation: s1-flash 4s ease-in-out infinite;
}
.scn-storm-marina-birth .figure-captain {
  position: absolute; bottom: 30%; left: 48%; width: 14px; 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: s1-brace 3s ease-in-out infinite;
}
.scn-storm-marina-birth .wave-spray {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(180,200,220,.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: s1-spray 2s ease-in-out infinite;
}
@keyframes s1-skydark { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes s1-wave { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes s1-rock { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes s1-sway { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1.5deg) } 100% { transform: rotate(-1deg) } }
@keyframes s1-billow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-3px) scaleX(1.1) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes s1-flash { 0% { opacity: 0 } 10% { opacity: 1 } 20% { opacity: 0 } 100% { opacity: 0 } }
@keyframes s1-brace { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes s1-spray { 0% { transform: translate(0,0) scale(1); opacity: .5 } 100% { transform: translate(-10px, -10px) scale(2); opacity: 0 } }

/* item-chest-marinas-name */
.scn-item-chest-marinas-name {
  background: linear-gradient(180deg, #0e0f2b 0%, #1c1e4a 30%, #252756 70%, #0b0c22 100%), radial-gradient(ellipse at 50% 100%, #2a2c5e 0%, transparent 60%);
}
.scn-item-chest-marinas-name .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0b0d2a 0%, #1a1c4e 60%, #0e0f2b 100%);
  animation: s2-nightsky 15s ease-in-out infinite alternate;
}
.scn-item-chest-marinas-name .ocean-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #0a1a2a 0%, #050e1a 100%);
  border-radius: 40% 60% 0 0 / 60% 40% 0 0;
  animation: s2-ocean 10s ease-in-out infinite alternate;
}
.scn-item-chest-marinas-name .chest {
  position: absolute; bottom: 32%; left: 40%; width: 80px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 12% 12% 8% 8%;
  box-shadow: 0 6px 12px rgba(0,0,0,.7);
  transform-origin: center bottom;
  animation: s2-chestbob 6s ease-in-out infinite;
}
.scn-item-chest-marinas-name .jewel-glow {
  position: absolute; bottom: 36%; left: 52%; width: 16px; height: 16px;
  background: radial-gradient(circle, #7a5a3a 0%, #4a2a1a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #5a3a2a;
  animation: s2-glowpulse 4s ease-in-out infinite alternate;
}
.scn-item-chest-marinas-name .letter-scroll {
  position: absolute; bottom: 32%; left: 44%; width: 20px; height: 8px;
  background: linear-gradient(90deg, #5a4a3a, #3a2a1a);
  border-radius: 4px;
  transform: rotate(15deg);
  animation: s2-scroll 7s ease-in-out infinite;
}
.scn-item-chest-marinas-name .hand-shadow {
  position: absolute; bottom: 30%; left: 30%; width: 12px; height: 18px;
  background: rgba(10,10,20,.5);
  border-radius: 40% 20% 30% 50% / 50% 40% 60% 50%;
  animation: s2-hand 5s ease-in-out infinite alternate;
}
.scn-item-chest-marinas-name .moon {
  position: absolute; top: 12%; right: 15%; width: 30px; height: 30px;
  background: radial-gradient(circle, #8a9aaa 0%, #4a5a6a 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(100,120,140,.4);
  animation: s2-moon 20s linear infinite alternate;
}
.scn-item-chest-marinas-name .star {
  position: absolute; top: 8%; left: 20%; width: 4px; height: 4px;
  background: #aab8cc;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(170,184,204,.6);
}
.scn-item-chest-marinas-name .twinkle {
  animation: s2-twinkle 3s ease-in-out infinite alternate;
}
@keyframes s2-nightsky { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes s2-ocean { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes s2-chestbob { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes s2-glowpulse { 0% { transform: scale(1); opacity: .6 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(1); opacity: .7 } }
@keyframes s2-scroll { 0% { transform: rotate(15deg) translate(0,0) } 50% { transform: rotate(12deg) translate(1px,-1px) } 100% { transform: rotate(15deg) translate(0,0) } }
@keyframes s2-hand { 0% { transform: translateX(0) scaleY(1) } 100% { transform: translateX(8px) scaleY(1.05) } }
@keyframes s2-moon { 0% { transform: translateX(0) } 100% { transform: translateX(-20px) } }
@keyframes s2-twinkle { 0% { opacity: .3; transform: scale(.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .5; transform: scale(.9) } }

/* ephesus-cerimon-revival */
.scn-ephesus-cerimon-revival {
  background: linear-gradient(180deg, #1a0e0a 0%, #2a1a10 30%, #3a2a1a 60%, #1a0e0a 100%), radial-gradient(ellipse at 50% 70%, #4a2a1a 0%, transparent 60%);
}
.scn-ephesus-cerimon-revival .wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a1a10 0%, #3a2a1a 50%, #2a1a10 100%);
  opacity: .8;
  animation: s3-wall 12s ease-in-out infinite alternate;
}
.scn-ephesus-cerimon-revival .fire {
  position: absolute; bottom: 10%; left: 20%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #cc5500 50%, #8a3a00 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  box-shadow: 0 0 50px 20px rgba(255,140,66,.5);
  filter: blur(2px);
  animation: s3-flame 3s ease-in-out infinite alternate;
}
.scn-ephesus-cerimon-revival .chest-open {
  position: absolute; bottom: 18%; left: 45%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: rotate(5deg);
  animation: s3-chestlid 8s ease-in-out infinite;
}
.scn-ephesus-cerimon-revival .figure-cerimon {
  position: absolute; bottom: 20%; left: 30%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-cerimon 5s ease-in-out infinite;
}
.scn-ephesus-cerimon-revival .figure-thaisa {
  position: absolute; bottom: 18%; left: 50%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  opacity: .9;
  animation: s3-thaisa 7s ease-in-out infinite alternate;
}
.scn-ephesus-cerimon-revival .lyre {
  position: absolute; bottom: 35%; left: 36%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: s3-lyre 4s ease-in-out infinite;
}
.scn-ephesus-cerimon-revival .sparkle {
  position: absolute; bottom: 25%; left: 48%; width: 6px; height: 6px;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,208,128,.6);
  animation: s3-spark 2s ease-in-out infinite alternate;
}
@keyframes s3-wall { 0% { opacity: .7 } 50% { opacity: .85 } 100% { opacity: .75 } }
@keyframes s3-flame { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.08) translateY(-3px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes s3-chestlid { 0% { transform: rotate(5deg) scaleY(1) } 50% { transform: rotate(6deg) scaleY(1.02) } 100% { transform: rotate(5deg) scaleY(1) } }
@keyframes s3-cerimon { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes s3-thaisa { 0% { transform: translateY(0) scaleY(1); opacity: .8 } 50% { transform: translateY(-2px) scaleY(1.02); opacity: .95 } 100% { transform: translateY(0) scaleY(1); opacity: .85 } }
@keyframes s3-lyre { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(-9deg) scale(1.02) } 100% { transform: rotate(-10deg) scale(1) } }
@keyframes s3-spark { 0% { opacity: .4; transform: scale(.8) } 100% { opacity: 1; transform: scale(1.3) } }

/* tarsus-marina-pirates */
.scn-tarsus-marina-pirates {
  background: linear-gradient(180deg, #7a9eb8 0%, #b0c8d0 30%, #d4e0e0 60%, #b8c8c8 100%), radial-gradient(ellipse at 70% 20%, #f0d090 0%, transparent 60%);
}
.scn-tarsus-marina-pirates .sky-sun {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d4e0e0 0%, #b0c8d0 50%, #8aa8b8 100%);
  animation: s4-skylight 14s ease-in-out infinite alternate;
}
.scn-tarsus-marina-pirates .sea-bright {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #9ab8c8 0%, #7a9eb8 50%, #5a7a8a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: s4-seawave 8s ease-in-out infinite alternate;
}
.scn-tarsus-marina-pirates .cliff {
  position: absolute; bottom: 20%; left: 0; width: 25%; height: 60%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 0 20% 0 0 / 0 30% 0 0;
  box-shadow: inset -4px 0 12px rgba(0,0,0,.3);
  animation: s4-cliff 12s ease-in-out infinite;
}
.scn-tarsus-marina-pirates .figure-marina {
  position: absolute; bottom: 22%; left: 40%; width: 14px; 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: s4-marina 4s ease-in-out infinite;
}
.scn-tarsus-marina-pirates .figure-leonine {
  position: absolute; bottom: 22%; left: 46%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-leonine 3.5s ease-in-out infinite alternate;
}
.scn-tarsus-marina-pirates .pirateship {
  position: absolute; bottom: 25%; right: 10%; width: 100px; height: 40px;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 50%, #3a2a1a 100%);
  border-radius: 20% 40% 20% 20% / 40% 50% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
  transform-origin: bottom center;
  animation: s4-ship 6s ease-in-out infinite;
}
.scn-tarsus-marina-pirates .sand {
  position: absolute; bottom: 18%; left: 15%; right: 60%; height: 8%;
  background: linear-gradient(180deg, #c8b88a 0%, #a89868 100%);
  border-radius: 40% 60% 20% 40% / 30% 50% 10% 20%;
  animation: s4-sand 9s ease-in-out infinite alternate;
}
.scn-tarsus-marina-pirates .sun-cloud {
  position: absolute; top: 8%; left: 65%; width: 50px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.8) 0%, rgba(255,255,255,.2) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: s4-cloud 30s linear infinite;
}
@keyframes s4-skylight { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes s4-seawave { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes s4-cliff { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes s4-marina { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes s4-leonine { 0% { transform: translateX(0) scaleY(1) } 100% { transform: translateX(5px) scaleY(1.03) } }
@keyframes s4-ship { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes s4-sand { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes s4-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-60vw) } }

.scn-mytilene-brothel-virtue {
  background: linear-gradient(180deg, #1e1410 0%, #2c1c14 40%, #1a0e0a 100%),
              radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-mytilene-brothel-virtue .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #2c1c14 0%, #1a0e0a 100%); }
.scn-mytilene-brothel-virtue .lamp-glow { position:absolute; top:30%; left:45%; width:20px; height:20px; background: radial-gradient(circle, #f0c070 0%, #e0a050 40%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px #e0a050; animation: mbv-lamp 4s ease-in-out infinite alternate; }
.scn-mytilene-brothel-virtue .curtain-left { position:absolute; top:10%; left:5%; width:15%; height:80%; background: linear-gradient(90deg, #4a2a1a 0%, #2a1810 100%); border-radius: 0 30% 30% 0 / 0 50% 50% 0; box-shadow: 4px 0 8px rgba(0,0,0,0.5); }
.scn-mytilene-brothel-virtue .curtain-right { position:absolute; top:10%; right:5%; width:15%; height:80%; background: linear-gradient(270deg, #4a2a1a 0%, #2a1810 100%); border-radius: 30% 0 0 30% / 50% 0 0 50%; box-shadow: -4px 0 8px rgba(0,0,0,0.5); }
.scn-mytilene-brothel-virtue .bawd-figure { position:absolute; bottom:25%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #7a4a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mbv-bawd 6s ease-in-out infinite; }
.scn-mytilene-brothel-virtue .pandar-figure { position:absolute; bottom:28%; right:30%; width:22px; height:46px; background: linear-gradient(180deg, #6a3a2a 0%, #3a1e12 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mbv-pandar 5s ease-in-out infinite; }
.scn-mytilene-brothel-virtue .marina-figure { position:absolute; bottom:22%; left:50%; width:20px; height:48px; background: linear-gradient(180deg, #8a6a5a 0%, #5a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mbv-marina 7s ease-in-out infinite; }
@keyframes mbv-lamp { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes mbv-bawd { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(0); } }
@keyframes mbv-pandar { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(2px) rotate(0); } }
@keyframes mbv-marina { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }

.scn-tarsus-monument-grief {
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 50%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 0%, #5a6a7a 0%, transparent 70%);
}
.scn-tarsus-monument-grief .sky-clouds { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); animation: tmg-sky 20s ease-in-out infinite alternate; }
.scn-tarsus-monument-grief .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-tarsus-monument-grief .monument { position:absolute; bottom:35%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #7a8a9a 0%, #4a5a6a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: tmg-monument 15s ease-in-out infinite; }
.scn-tarsus-monument-grief .cleon-figure { position:absolute; bottom:30%; left:30%; width:20px; height:44px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tmg-cleon 8s ease-in-out infinite; }
.scn-tarsus-monument-grief .dionyza-figure { position:absolute; bottom:32%; right:30%; width:18px; height:42px; background: linear-gradient(180deg, #5a4a5a 0%, #2a2a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tmg-dionyza 9s ease-in-out infinite; }
.scn-tarsus-monument-grief .rain-drop-1 { position:absolute; top:10%; left:30%; width:2px; height:8px; background: rgba(180,200,220,0.4); animation: tmg-rain1 1.5s linear infinite; }
.scn-tarsus-monument-grief .rain-drop-2 { position:absolute; top:20%; left:60%; width:2px; height:8px; background: rgba(180,200,220,0.4); animation: tmg-rain2 2s linear infinite 0.5s; }
@keyframes tmg-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes tmg-monument { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(0.98); } }
@keyframes tmg-cleon { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(-2px) rotate(1deg); } }
@keyframes tmg-dionyza { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(2px) rotate(-1deg); } }
@keyframes tmg-rain1 { 0% { transform: translateY(-10px); opacity:0; } 50% { transform: translateY(50px); opacity:0.6; } 100% { transform: translateY(110px); opacity:0; } }
@keyframes tmg-rain2 { 0% { transform: translateY(-10px); opacity:0; } 50% { transform: translateY(60px); opacity:0.5; } 100% { transform: translateY(120px); opacity:0; } }

.scn-mytilene-marina-teaching {
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 50%, #c8b898 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 70%);
}
.scn-mytilene-marina-teaching .wall { position:absolute; inset:0; background: linear-gradient(135deg, #f0e8d8 0%, #e0d0b8 100%); }
.scn-mytilene-marina-teaching .window-light { position:absolute; top:15%; left:10%; width:40%; height:50%; background: linear-gradient(180deg, rgba(255,255,220,0.6) 0%, transparent 100%); border-radius: 10% 10% 20% 20%; animation: mmt-window 8s ease-in-out infinite alternate; }
.scn-mytilene-marina-teaching .desk-wood { position:absolute; bottom:20%; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #b89878 0%, #8a7050 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,0.1); }
.scn-mytilene-marina-teaching .marina-teacher { position:absolute; bottom:25%; left:45%; width:22px; height:50px; background: linear-gradient(180deg, #c8a888 0%, #a08068 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mmt-marina 4s ease-in-out infinite; }
.scn-mytilene-marina-teaching .pupil-figure { position:absolute; bottom:28%; left:30%; width:18px; height:40px; background: linear-gradient(180deg, #d0b898 0%, #b09878 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mmt-pupil 5s ease-in-out infinite; }
.scn-mytilene-marina-teaching .book-stack { position:absolute; bottom:20%; left:50%; width:30px; height:15px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 3px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); transform: translateX(-50%); animation: mmt-book 10s ease-in-out infinite; }
@keyframes mmt-window { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes mmt-marina { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(0); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes mmt-pupil { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-2px); } }
@keyframes mmt-book { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(0.95); } }

.scn-ship-pericles-awakening {
  background: linear-gradient(180deg, #0a0a2a 0%, #14143a 40%, #1a1a4a 100%),
              radial-gradient(ellipse at 50% 10%, #2a2a5a 0%, transparent 70%);
}
.scn-ship-pericles-awakening .night-sky { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a2a 0%, #14143a 100%); }
.scn-ship-pericles-awakening .moon-glowing { position:absolute; top:15%; left:70%; width:30px; height:30px; background: radial-gradient(circle, #e0e0ff 0%, #a0a0d0 40%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px #a0a0d0; animation: spa-moon 12s ease-in-out infinite alternate; }
.scn-ship-pericles-awakening .ship-deck { position:absolute; bottom:20%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); animation: spa-deck 8s ease-in-out infinite; }
.scn-ship-pericles-awakening .mast-rigging { position:absolute; bottom:45%; left:50%; width:4px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); transform: translateX(-50%); border-radius: 2px; }
.scn-ship-pericles-awakening .pericles-figure { position:absolute; bottom:25%; left:35%; width:22px; 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: spa-pericles 6s ease-in-out infinite; }
.scn-ship-pericles-awakening .marina-singer { position:absolute; bottom:30%; left:55%; width:20px; height:46px; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: spa-marina 5s ease-in-out infinite; }
@keyframes spa-moon { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes spa-deck { 0% { transform: rotate(0); } 50% { transform: rotate(0.5deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes spa-pericles { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes spa-marina { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
/* end per-scene blocks */
